From 12d3ea3029854b48b302459226fc88415e78630c Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 28 Mar 2012 02:51:34 +0100 Subject: Add "friends show cache " command for debugging purposes. This adds a reverse lookup (name -> ID) to IUserManagement instead of hitting the UserAccountService directly. --- .../UserManagement/UserManagementModule.cs | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs') diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs index 0397478..f4ed67b 100644 --- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs +++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs @@ -297,6 +297,35 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement #region IUserManagement + public UUID GetUserIdByName(string name) + { + string[] parts = name.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); + if (parts.Length < 2) + throw new Exception("Name must have 2 components"); + + return GetUserIdByName(parts[0], parts[1]); + } + + public UUID GetUserIdByName(string firstName, string lastName) + { + // TODO: Optimize for reverse lookup if this gets used by non-console commands. + lock (m_UserCache) + { + foreach (UserData user in m_UserCache.Values) + { + if (user.FirstName == firstName && user.LastName == lastName) + return user.Id; + } + } + + UserAccount account = m_Scenes[0].UserAccountService.GetUserAccount(UUID.Zero, firstName, lastName); + + if (account != null) + return account.PrincipalID; + + return UUID.Zero; + } + public string GetUserName(UUID uuid) { string[] names = GetUserNames(uuid); -- cgit v1.1