* refactor: move CreateUser into UserServiceAdmin
							parent
							
								
									27d9e715c0
								
							
						
					
					
						commit
						0862627b34
					
				|  | @ -474,7 +474,9 @@ namespace OpenSim.ApplicationPlugins.RemoteController | ||||||
|                     { |                     { | ||||||
|                         m_log.InfoFormat("master avatar does not exist, creating it"); |                         m_log.InfoFormat("master avatar does not exist, creating it"); | ||||||
|                         // ...or create new user |                         // ...or create new user | ||||||
|                         userID = m_app.CreateUser(masterFirst, masterLast, masterPassword, "", region.RegionLocX, region.RegionLocY); |                         userID = m_app.CommunicationsManager.UserServiceAdmin.AddUser( | ||||||
|  |                             masterFirst, masterLast, masterPassword, "", region.RegionLocX, region.RegionLocY); | ||||||
|  |                          | ||||||
|                         if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", |                         if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", | ||||||
|                                                                                    masterFirst, masterLast)); |                                                                                    masterFirst, masterLast)); | ||||||
|                     } |                     } | ||||||
|  | @ -668,7 +670,9 @@ namespace OpenSim.ApplicationPlugins.RemoteController | ||||||
|                 if (null != userProfile) |                 if (null != userProfile) | ||||||
|                     throw new Exception(String.Format("avatar {0} {1} already exists", firstname, lastname)); |                     throw new Exception(String.Format("avatar {0} {1} already exists", firstname, lastname)); | ||||||
| 
 | 
 | ||||||
|                 UUID userID = m_app.CreateUser(firstname, lastname, passwd, email, regX, regY); |                 UUID userID  | ||||||
|  |                     = m_app.CommunicationsManager.UserServiceAdmin.AddUser( | ||||||
|  |                         firstname, lastname, passwd, email, regX, regY); | ||||||
| 
 | 
 | ||||||
|                 if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", |                 if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", | ||||||
|                                                                              firstname, lastname)); |                                                                              firstname, lastname)); | ||||||
|  | @ -764,7 +768,9 @@ namespace OpenSim.ApplicationPlugins.RemoteController | ||||||
|                 if (null != userProfile) |                 if (null != userProfile) | ||||||
|                     throw new Exception(String.Format("avatar {0} {1} already exists", firstname, lastname)); |                     throw new Exception(String.Format("avatar {0} {1} already exists", firstname, lastname)); | ||||||
| 
 | 
 | ||||||
|                 UUID userID = m_app.CreateUser(firstname, lastname, passwd, email, regX, regY); |                 UUID userID | ||||||
|  |                     = m_app.CommunicationsManager.UserServiceAdmin.AddUser( | ||||||
|  |                         firstname, lastname, passwd, email, regX, regY); | ||||||
| 
 | 
 | ||||||
|                 if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", |                 if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", | ||||||
|                                                                              firstname, lastname)); |                                                                              firstname, lastname)); | ||||||
|  |  | ||||||
|  | @ -106,8 +106,12 @@ namespace OpenSim.Framework.Communications | ||||||
|         protected NetworkServersInfo m_networkServersInfo; |         protected NetworkServersInfo m_networkServersInfo; | ||||||
|               |               | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Interface to administrative user service calls. |         /// Interface to user service for administrating users. | ||||||
|         /// </summary> |         /// </summary> | ||||||
|  |         public IUserServiceAdmin UserServiceAdmin | ||||||
|  |         { | ||||||
|  |             get { return m_userServiceAdmin; } | ||||||
|  |         }         | ||||||
|         protected IUserServiceAdmin m_userServiceAdmin;         |         protected IUserServiceAdmin m_userServiceAdmin;         | ||||||
| 
 | 
 | ||||||
|         public BaseHttpServer HttpServer |         public BaseHttpServer HttpServer | ||||||
|  | @ -248,63 +252,6 @@ namespace OpenSim.Framework.Communications | ||||||
| 
 | 
 | ||||||
|         #endregion |         #endregion | ||||||
|          |          | ||||||
|         /// <summary> |  | ||||||
|         /// Persistently adds a user to OpenSim. |  | ||||||
|         /// </summary> |  | ||||||
|         /// <param name="firstName"></param> |  | ||||||
|         /// <param name="lastName"></param> |  | ||||||
|         /// <param name="password"></param> |  | ||||||
|         /// <param name="email"></param> |  | ||||||
|         /// <param name="regX"></param> |  | ||||||
|         /// <param name="regY"></param> |  | ||||||
|         /// <returns>The UUID of the added user.  Returns UUID.Zero if the add was unsuccessful</returns> |  | ||||||
|         public UUID AddUser(string firstName, string lastName, string password, string email, uint regX, uint regY) |  | ||||||
|         { |  | ||||||
|             string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty); |  | ||||||
| 
 |  | ||||||
|             m_userServiceAdmin.AddUserProfile(firstName, lastName, md5PasswdHash, email, regX, regY); |  | ||||||
|             UserProfileData userProf = UserService.GetUserProfile(firstName, lastName); |  | ||||||
|             if (userProf == null) |  | ||||||
|             { |  | ||||||
|                 return UUID.Zero; |  | ||||||
|             } |  | ||||||
|             else |  | ||||||
|             { |  | ||||||
|                 InterServiceInventoryService.CreateNewUserInventory(userProf.ID); |  | ||||||
|                 m_log.Info("[USERS]: Created new inventory set for " + firstName + " " + lastName); |  | ||||||
|                 return userProf.ID; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         /// <summary> |  | ||||||
|         /// Adds the user. |  | ||||||
|         /// </summary> |  | ||||||
|         /// <param name="firstName">The first name.</param> |  | ||||||
|         /// <param name="lastName">The last name.</param> |  | ||||||
|         /// <param name="password">The password.</param> |  | ||||||
|         /// <param name="email">The email.</param> |  | ||||||
|         /// <param name="regX">The reg X.</param> |  | ||||||
|         /// <param name="regY">The reg Y.</param> |  | ||||||
|         /// <param name="SetUUID">The set UUID.</param> |  | ||||||
|         /// <returns></returns> |  | ||||||
|         public UUID AddUser(string firstName, string lastName, string password, string email, uint regX, uint regY, UUID SetUUID) |  | ||||||
|         { |  | ||||||
|             string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty); |  | ||||||
| 
 |  | ||||||
|             m_userServiceAdmin.AddUserProfile(firstName, lastName, md5PasswdHash, email, regX, regY, SetUUID); |  | ||||||
|             UserProfileData userProf = UserService.GetUserProfile(firstName, lastName); |  | ||||||
|             if (userProf == null) |  | ||||||
|             { |  | ||||||
|                 return UUID.Zero; |  | ||||||
|             } |  | ||||||
|             else |  | ||||||
|             { |  | ||||||
|                 InterServiceInventoryService.CreateNewUserInventory(userProf.ID); |  | ||||||
|                 m_log.Info("[USERS]: Created new inventory set for " + firstName + " " + lastName); |  | ||||||
|                 return userProf.ID; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|          |  | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Reset a user password |         /// Reset a user password | ||||||
|         /// </summary> |         /// </summary> | ||||||
|  |  | ||||||
|  | @ -32,29 +32,29 @@ namespace OpenSim.Framework.Communications | ||||||
|     public interface IUserServiceAdmin |     public interface IUserServiceAdmin | ||||||
|     { |     { | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Add a new user profile |         /// Add a new user | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         /// <param name="firstName">The first name.</param> |         /// <param name="firstName">The first name</param> | ||||||
|         /// <param name="lastName">The last name.</param> |         /// <param name="lastName">The last name</param> | ||||||
|         /// <param name="pass">password of avatar</param> |         /// <param name="pass">password of avatar</param> | ||||||
|         /// <param name="email">email of user</param> |         /// <param name="email">email of user</param> | ||||||
|         /// <param name="regX">region X.</param> |         /// <param name="regX">region X</param> | ||||||
|         /// <param name="regY">region Y.</param> |         /// <param name="regY">region Y</param> | ||||||
|         /// <returns></returns> |         /// <returns>The UUID of the created user profile.  On failure, returns UUID.Zero</returns> | ||||||
|         UUID AddUserProfile(string firstName, string lastName, string pass, string email, uint regX, uint regY); |         UUID AddUser(string firstName, string lastName, string pass, string email, uint regX, uint regY); | ||||||
| 
 | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Adds one for allowing setting of the UUID from modules..   SHOULD ONLY BE USED in very special circumstances! |         /// Add a new user with a specified UUID.   SHOULD ONLY BE USED in very special circumstances from modules! | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         /// <param name="firstName">The first name.</param> |         /// <param name="firstName">The first name</param> | ||||||
|         /// <param name="lastName">The last name.</param> |         /// <param name="lastName">The last name</param> | ||||||
|         /// <param name="pass">password of avatar</param> |         /// <param name="pass">password of avatar</param> | ||||||
|         /// <param name="email">email of user</param> |         /// <param name="email">email of user</param> | ||||||
|         /// <param name="regX">region X.</param> |         /// <param name="regX">region X</param> | ||||||
|         /// <param name="regY">region Y.</param> |         /// <param name="regY">region Y</param> | ||||||
|         /// <param name="setUUID">The set UUID.</param> |         /// <param name="setUUID">The set UUID</param> | ||||||
|         /// <returns></returns> |         /// <returns>The UUID of the created user profile.  On failure, returns UUID.Zero</returns> | ||||||
|         UUID AddUserProfile(string firstName, string lastName, string pass, string email, uint regX, uint regY, UUID setUUID); |         UUID AddUser(string firstName, string lastName, string pass, string email, uint regX, uint regY, UUID setUUID); | ||||||
| 
 | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Reset a user password |         /// Reset a user password | ||||||
|  |  | ||||||
|  | @ -82,7 +82,6 @@ namespace OpenSim.Framework.Communications | ||||||
|             get { return "default"; } |             get { return "default"; } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         // See IInventoryServices |  | ||||||
|         public List<InventoryFolderBase> GetInventorySkeleton(UUID userId) |         public List<InventoryFolderBase> GetInventorySkeleton(UUID userId) | ||||||
|         { |         { | ||||||
| //            m_log.DebugFormat("[AGENT INVENTORY]: Getting inventory skeleton for {0}", userId); | //            m_log.DebugFormat("[AGENT INVENTORY]: Getting inventory skeleton for {0}", userId); | ||||||
|  |  | ||||||
|  | @ -53,6 +53,17 @@ namespace OpenSim.Framework.Communications | ||||||
|         /// </value> |         /// </value> | ||||||
|         private List<IUserDataPlugin> _plugins = new List<IUserDataPlugin>(); |         private List<IUserDataPlugin> _plugins = new List<IUserDataPlugin>(); | ||||||
|          |          | ||||||
|  |         private IInterServiceInventoryServices m_interServiceInventoryService; | ||||||
|  |          | ||||||
|  |         /// <summary> | ||||||
|  |         /// Constructor | ||||||
|  |         /// </summary> | ||||||
|  |         /// <param name="interServiceInventoryService"></param> | ||||||
|  |         public UserManagerBase(IInterServiceInventoryServices interServiceInventoryService) | ||||||
|  |         { | ||||||
|  |             m_interServiceInventoryService = interServiceInventoryService;             | ||||||
|  |         }         | ||||||
|  |                  | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Add a new user data plugin - plugins will be requested in the order they were added. |         /// Add a new user data plugin - plugins will be requested in the order they were added. | ||||||
|         /// </summary> |         /// </summary> | ||||||
|  | @ -586,39 +597,42 @@ namespace OpenSim.Framework.Communications | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Add a new user profile |         /// Add a new user | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         /// <param name="firstName">first name.</param> |         /// <param name="firstName">first name</param> | ||||||
|         /// <param name="lastName">last name.</param> |         /// <param name="lastName">last name</param> | ||||||
|         /// <param name="pass">password</param> |         /// <param name="password">password</param> | ||||||
|         /// <param name="email">email.</param> |         /// <param name="email">email</param> | ||||||
|         /// <param name="regX">location X.</param> |         /// <param name="regX">location X</param> | ||||||
|         /// <param name="regY">location Y.</param> |         /// <param name="regY">location Y</param> | ||||||
|         /// <returns></returns> |         /// <returns>The UUID of the created user profile.  On failure, returns UUID.Zero</returns> | ||||||
|         public UUID AddUserProfile(string firstName, string lastName, string pass, string email, uint regX, uint regY) |         public UUID AddUser(string firstName, string lastName, string password, string email, uint regX, uint regY) | ||||||
|         { |         { | ||||||
|             return AddUserProfile(firstName, lastName, pass, email, regX, regY, UUID.Random()); |             return AddUser(firstName, lastName, password, email, regX, regY, UUID.Random()); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Adds the user profile. |         /// Add a new user | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         /// <param name="firstName">first name.</param> |         /// <param name="firstName">first name</param> | ||||||
|         /// <param name="lastName">last name.</param> |         /// <param name="lastName">last name</param> | ||||||
|         /// <param name="pass">password</param> |         /// <param name="password">password</param> | ||||||
|         /// <param name="email">email.</param> |         /// <param name="email">email</param> | ||||||
|         /// <param name="regX">location X.</param> |         /// <param name="regX">location X</param> | ||||||
|         /// <param name="regY">location Y.</param> |         /// <param name="regY">location Y</param> | ||||||
|         /// <param name="SetUUID">UUID of avatar.</param> |         /// <param name="SetUUID">UUID of avatar.</param> | ||||||
|         /// <returns></returns> |         /// <returns>The UUID of the created user profile.  On failure, returns UUID.Zero</returns> | ||||||
|         public UUID AddUserProfile(string firstName, string lastName, string pass, string email, uint regX, uint regY, UUID SetUUID) |         public UUID AddUser( | ||||||
|  |             string firstName, string lastName, string password, string email, uint regX, uint regY, UUID SetUUID) | ||||||
|         { |         { | ||||||
|  |             string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty); | ||||||
|  |              | ||||||
|             UserProfileData user = new UserProfileData(); |             UserProfileData user = new UserProfileData(); | ||||||
|             user.HomeLocation = new Vector3(128, 128, 100); |             user.HomeLocation = new Vector3(128, 128, 100); | ||||||
|             user.ID = SetUUID; |             user.ID = SetUUID; | ||||||
|             user.FirstName = firstName; |             user.FirstName = firstName; | ||||||
|             user.SurName = lastName; |             user.SurName = lastName; | ||||||
|             user.PasswordHash = pass; |             user.PasswordHash = md5PasswdHash; | ||||||
|             user.PasswordSalt = String.Empty; |             user.PasswordSalt = String.Empty; | ||||||
|             user.Created = Util.UnixTimeSinceEpoch(); |             user.Created = Util.UnixTimeSinceEpoch(); | ||||||
|             user.HomeLookAt = new Vector3(100, 100, 100); |             user.HomeLookAt = new Vector3(100, 100, 100); | ||||||
|  | @ -638,7 +652,17 @@ namespace OpenSim.Framework.Communications | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             return user.ID; |             UserProfileData userProf = GetUserProfile(firstName, lastName); | ||||||
|  |             if (userProf == null) | ||||||
|  |             { | ||||||
|  |                 return UUID.Zero; | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 m_interServiceInventoryService.CreateNewUserInventory(userProf.ID); | ||||||
|  |                  | ||||||
|  |                 return userProf.ID; | ||||||
|  |             }             | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|  |  | ||||||
|  | @ -41,6 +41,15 @@ namespace OpenSim.Grid.MessagingServer | ||||||
| { | { | ||||||
|     class UserManager : UserManagerBase |     class UserManager : UserManagerBase | ||||||
|     { |     { | ||||||
|  |         /// <summary> | ||||||
|  |         /// Constructor. | ||||||
|  |         /// </summary> | ||||||
|  |         /// Passing null to parent because we never use any function that requires an interservice inventory call. | ||||||
|  |         public UserManager() | ||||||
|  |             : base(null) | ||||||
|  |         { | ||||||
|  |         } | ||||||
|  |          | ||||||
|         public UserAgentData GetUserAgentData(UUID AgentID) |         public UserAgentData GetUserAgentData(UUID AgentID) | ||||||
|         { |         { | ||||||
|             UserProfileData userProfile = GetUserProfile(AgentID); |             UserProfileData userProfile = GetUserProfile(AgentID); | ||||||
|  | @ -53,8 +62,6 @@ namespace OpenSim.Grid.MessagingServer | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|         public override UserProfileData SetupMasterUser(string firstName, string lastName) |         public override UserProfileData SetupMasterUser(string firstName, string lastName) | ||||||
|         { |         { | ||||||
|             //throw new Exception("The method or operation is not implemented."); |             //throw new Exception("The method or operation is not implemented."); | ||||||
|  |  | ||||||
|  | @ -56,7 +56,6 @@ namespace OpenSim.Grid.UserServer | ||||||
|         public UserLoginService m_loginService; |         public UserLoginService m_loginService; | ||||||
|         public GridInfoService m_gridInfoService; |         public GridInfoService m_gridInfoService; | ||||||
|         public MessageServersConnector m_messagesService; |         public MessageServersConnector m_messagesService; | ||||||
|         protected IInterServiceInventoryServices m_interServiceInventoryService; |  | ||||||
| 
 | 
 | ||||||
|         private UUID m_lastCreatedUser = UUID.Random(); |         private UUID m_lastCreatedUser = UUID.Random(); | ||||||
| 
 | 
 | ||||||
|  | @ -94,17 +93,16 @@ namespace OpenSim.Grid.UserServer | ||||||
| 
 | 
 | ||||||
|             m_stats = StatsManager.StartCollectingUserStats(); |             m_stats = StatsManager.StartCollectingUserStats(); | ||||||
| 
 | 
 | ||||||
|             m_log.Info("[REGION]: Establishing data connection"); |             m_log.Info("[STARTUP]: Establishing data connection"); | ||||||
|              |              | ||||||
|             StartupUserManager(); |             IInterServiceInventoryServices inventoryService = new OGS1InterServiceInventoryService(Cfg.InventoryUrl); | ||||||
| 
 | 
 | ||||||
|  |             StartupUserManager(inventoryService); | ||||||
|             m_userManager.AddPlugin(Cfg.DatabaseProvider, Cfg.DatabaseConnect); |             m_userManager.AddPlugin(Cfg.DatabaseProvider, Cfg.DatabaseConnect); | ||||||
| 
 | 
 | ||||||
|             m_gridInfoService = new GridInfoService(); |             m_gridInfoService = new GridInfoService(); | ||||||
| 
 | 
 | ||||||
|             m_interServiceInventoryService = new OGS1InterServiceInventoryService(Cfg.InventoryUrl); |             StartupLoginService(inventoryService); | ||||||
| 
 |  | ||||||
|             StartupLoginService(); |  | ||||||
| 
 | 
 | ||||||
|             m_messagesService = new MessageServersConnector(); |             m_messagesService = new MessageServersConnector(); | ||||||
| 
 | 
 | ||||||
|  | @ -116,22 +114,30 @@ namespace OpenSim.Grid.UserServer | ||||||
|             m_messagesService.OnRegionStartup += HandleRegionStartup; |             m_messagesService.OnRegionStartup += HandleRegionStartup; | ||||||
|             m_messagesService.OnRegionShutdown += HandleRegionShutdown; |             m_messagesService.OnRegionShutdown += HandleRegionShutdown; | ||||||
| 
 | 
 | ||||||
|             m_log.Info("[REGION]: Starting HTTP process"); |             m_log.Info("[STARTUP]: Starting HTTP process"); | ||||||
| 
 | 
 | ||||||
|             m_httpServer = new BaseHttpServer(Cfg.HttpPort); |             m_httpServer = new BaseHttpServer(Cfg.HttpPort); | ||||||
|             AddHttpHandlers(); |             AddHttpHandlers(); | ||||||
|             m_httpServer.Start(); |             m_httpServer.Start(); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         protected virtual void StartupUserManager() |         /// <summary> | ||||||
|  |         /// Start up the user manager | ||||||
|  |         /// </summary> | ||||||
|  |         /// <param name="inventoryService"></param> | ||||||
|  |         protected virtual void StartupUserManager(IInterServiceInventoryServices inventoryService) | ||||||
|         { |         { | ||||||
|             m_userManager = new UserManager(); |             m_userManager = new UserManager(new OGS1InterServiceInventoryService(Cfg.InventoryUrl)); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         protected virtual void StartupLoginService() |         /// <summary> | ||||||
|  |         /// Start up the login service | ||||||
|  |         /// </summary> | ||||||
|  |         /// <param name="inventoryService"></param> | ||||||
|  |         protected virtual void StartupLoginService(IInterServiceInventoryServices inventoryService) | ||||||
|         { |         { | ||||||
|             m_loginService = new UserLoginService( |             m_loginService = new UserLoginService( | ||||||
|                 m_userManager, m_interServiceInventoryService, new LibraryRootFolder(), Cfg, Cfg.DefaultStartupMsg); |                 m_userManager, inventoryService, new LibraryRootFolder(), Cfg, Cfg.DefaultStartupMsg); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         protected virtual void AddHttpHandlers() |         protected virtual void AddHttpHandlers() | ||||||
|  | @ -256,39 +262,7 @@ namespace OpenSim.Grid.UserServer | ||||||
| 
 | 
 | ||||||
|             if (null == m_userManager.GetUserProfile(firstName, lastName)) |             if (null == m_userManager.GetUserProfile(firstName, lastName)) | ||||||
|             { |             { | ||||||
|                 password = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty); |                 m_lastCreatedUser = m_userManager.AddUser(firstName, lastName, password, email, regX, regY); | ||||||
| 
 |  | ||||||
|                 UUID userID = new UUID(); |  | ||||||
| 
 |  | ||||||
|                 try |  | ||||||
|                 { |  | ||||||
|                     userID = m_userManager.AddUserProfile(firstName, lastName, password, email, regX, regY); |  | ||||||
|                 } |  | ||||||
|                 catch (Exception ex) |  | ||||||
|                 { |  | ||||||
|                     m_log.ErrorFormat("[USERS]: Error creating user: {0}", ex.ToString()); |  | ||||||
|                 } |  | ||||||
| 
 |  | ||||||
|                 try |  | ||||||
|                 { |  | ||||||
|                     if (!m_interServiceInventoryService.CreateNewUserInventory(userID)) |  | ||||||
|                     { |  | ||||||
|                         throw new Exception( |  | ||||||
|                             String.Format("The inventory creation request for user {0} did not succeed." |  | ||||||
|                                 + "  Please contact your inventory service provider for more information.", userID)); |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|                 catch (WebException) |  | ||||||
|                 { |  | ||||||
|                     m_log.ErrorFormat("[USERS]: Could not contact the inventory service at {0} to create an inventory for {1}", |  | ||||||
|                         Cfg.InventoryUrl + "CreateInventory/", userID); |  | ||||||
|                 } |  | ||||||
|                 catch (Exception e) |  | ||||||
|                 { |  | ||||||
|                     m_log.ErrorFormat("[USERS]: Error creating inventory for user: {0}", e); |  | ||||||
|                 } |  | ||||||
| 
 |  | ||||||
|                 m_lastCreatedUser = userID; |  | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|  |  | ||||||
|  | @ -44,6 +44,9 @@ namespace OpenSim.Grid.UserServer | ||||||
|                                                 ulong regionhandle, float positionX, float positionY, float positionZ, |                                                 ulong regionhandle, float positionX, float positionY, float positionZ, | ||||||
|                                                 string firstname, string lastname); |                                                 string firstname, string lastname); | ||||||
| 
 | 
 | ||||||
|  |     /// <summary> | ||||||
|  |     /// Login service used in grid mode. | ||||||
|  |     /// </summary>      | ||||||
|     public class UserLoginService : LoginService |     public class UserLoginService : LoginService | ||||||
|     { |     { | ||||||
|         protected static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |         protected static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||||||
|  | @ -65,17 +68,16 @@ namespace OpenSim.Grid.UserServer | ||||||
|             m_config = config; |             m_config = config; | ||||||
|             m_inventoryService = inventoryService; |             m_inventoryService = inventoryService; | ||||||
|         } |         } | ||||||
|  |          | ||||||
|         public  void  setloginlevel(int level) |         public  void  setloginlevel(int level) | ||||||
|         { |         { | ||||||
|               m_minLoginLevel = level; |               m_minLoginLevel = level; | ||||||
|               m_log.InfoFormat("[GRID] Login Level set to {0} ", level); |               m_log.InfoFormat("[GRID] Login Level set to {0} ", level); | ||||||
| 
 |  | ||||||
|         } |         } | ||||||
|         public void setwelcometext(string text) |         public void setwelcometext(string text) | ||||||
|         { |         { | ||||||
|             m_welcomeMessage = text; |             m_welcomeMessage = text; | ||||||
|             m_log.InfoFormat("[GRID] Login text  set to {0} ", text); |             m_log.InfoFormat("[GRID] Login text  set to {0} ", text); | ||||||
| 
 |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public override void LogOffUser(UserProfileData theUser, string message) |         public override void LogOffUser(UserProfileData theUser, string message) | ||||||
|  |  | ||||||
|  | @ -47,6 +47,14 @@ namespace OpenSim.Grid.UserServer | ||||||
|         public event logOffUser OnLogOffUser; |         public event logOffUser OnLogOffUser; | ||||||
|         private logOffUser handlerLogOffUser; |         private logOffUser handlerLogOffUser; | ||||||
|          |          | ||||||
|  |         /// <summary> | ||||||
|  |         /// Constructor | ||||||
|  |         /// </summary> | ||||||
|  |         /// <param name="interServiceInventoryService"></param> | ||||||
|  |         public UserManager(IInterServiceInventoryServices interServiceInventoryService) | ||||||
|  |             : base(interServiceInventoryService) | ||||||
|  |         {} | ||||||
|  | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// Deletes an active agent session |         /// Deletes an active agent session | ||||||
|         /// </summary> |         /// </summary> | ||||||
|  |  | ||||||
|  | @ -535,7 +535,7 @@ namespace OpenSim | ||||||
|                     } |                     } | ||||||
|                     else |                     else | ||||||
|                     { |                     { | ||||||
|                         m_console.Notice("Create user is not available in grid mode, use the user-server."); |                         m_console.Notice("Create user is not available in grid mode, use the user server."); | ||||||
|                     } |                     } | ||||||
|                     break; |                     break; | ||||||
|             } |             } | ||||||
|  | @ -800,7 +800,7 @@ namespace OpenSim | ||||||
| 
 | 
 | ||||||
|             if (null == m_commsManager.UserService.GetUserProfile(firstName, lastName)) |             if (null == m_commsManager.UserService.GetUserProfile(firstName, lastName)) | ||||||
|             { |             { | ||||||
|                 CreateUser(firstName, lastName, password, email, regX, regY); |                 m_commsManager.UserServiceAdmin.AddUser(firstName, lastName, password, email, regX, regY); | ||||||
|             } |             } | ||||||
|             else |             else | ||||||
|             { |             { | ||||||
|  |  | ||||||
|  | @ -298,11 +298,6 @@ namespace OpenSim | ||||||
|             m_assetCache = new AssetCache(assetServer); |             m_assetCache = new AssetCache(assetServer); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public UUID CreateUser(string tempfirstname, string templastname, string tempPasswd, string email, uint regX, uint regY) |  | ||||||
|         { |  | ||||||
|             return m_commsManager.AddUser(tempfirstname, templastname, tempPasswd, email, regX, regY); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public void ProcessLogin(bool LoginEnabled) |         public void ProcessLogin(bool LoginEnabled) | ||||||
|         { |         { | ||||||
|             if (LoginEnabled) |             if (LoginEnabled) | ||||||
|  | @ -315,7 +310,6 @@ namespace OpenSim | ||||||
|                 m_log.Info("[Login] Login are now disabled "); |                 m_log.Info("[Login] Login are now disabled "); | ||||||
|                 m_commsManager.GridService.RegionLoginsEnabled = false;   |                 m_commsManager.GridService.RegionLoginsEnabled = false;   | ||||||
|             }            |             }            | ||||||
|             |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|  |  | ||||||
|  | @ -94,16 +94,11 @@ namespace OpenSim.Region.Communications.Local | ||||||
|                 //no current user account so make one |                 //no current user account so make one | ||||||
|                 m_log.Info("[LOGIN]: No user account found so creating a new one."); |                 m_log.Info("[LOGIN]: No user account found so creating a new one."); | ||||||
| 
 | 
 | ||||||
|                 m_userManager.AddUserProfile(firstname, lastname, "test", "", defaultHomeX, defaultHomeY); |                 m_userManager.AddUser(firstname, lastname, "test", "", defaultHomeX, defaultHomeY); | ||||||
| 
 | 
 | ||||||
|                 profile = m_userManager.GetUserProfile(firstname, lastname); |                 return m_userManager.GetUserProfile(firstname, lastname); | ||||||
|                 if (profile != null) |  | ||||||
|                 { |  | ||||||
|                     m_interServiceInventoryService.CreateNewUserInventory(profile.ID); |  | ||||||
|             } |             } | ||||||
|              |              | ||||||
|                 return profile; |  | ||||||
|             } |  | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -34,13 +34,11 @@ namespace OpenSim.Region.Communications.Local | ||||||
| { | { | ||||||
|     public class LocalUserServices : UserManagerBase |     public class LocalUserServices : UserManagerBase | ||||||
|     { |     { | ||||||
|         // private readonly NetworkServersInfo m_serversInfo; |  | ||||||
|         private readonly uint m_defaultHomeX; |         private readonly uint m_defaultHomeX; | ||||||
|         private readonly uint m_defaultHomeY; |         private readonly uint m_defaultHomeY; | ||||||
|         private IInterServiceInventoryServices m_interServiceInventoryService; |  | ||||||
| 
 | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// |         /// User services used when OpenSim is running in standalone mode. | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         /// <param name="serversInfo"></param> |         /// <param name="serversInfo"></param> | ||||||
|         /// <param name="defaultHomeLocX"></param> |         /// <param name="defaultHomeLocX"></param> | ||||||
|  | @ -49,13 +47,12 @@ namespace OpenSim.Region.Communications.Local | ||||||
|         /// <param name="statsCollector">Can be null if stats collection is not required.</param> |         /// <param name="statsCollector">Can be null if stats collection is not required.</param> | ||||||
|         public LocalUserServices(NetworkServersInfo serversInfo, uint defaultHomeLocX, uint defaultHomeLocY, |         public LocalUserServices(NetworkServersInfo serversInfo, uint defaultHomeLocX, uint defaultHomeLocY, | ||||||
|                                  IInterServiceInventoryServices interServiceInventoryService) |                                  IInterServiceInventoryServices interServiceInventoryService) | ||||||
|  |             : base(interServiceInventoryService) | ||||||
|         { |         { | ||||||
|             // m_serversInfo = serversInfo; |             // m_serversInfo = serversInfo; | ||||||
| 
 | 
 | ||||||
|             m_defaultHomeX = defaultHomeLocX; |             m_defaultHomeX = defaultHomeLocX; | ||||||
|             m_defaultHomeY = defaultHomeLocY; |             m_defaultHomeY = defaultHomeLocY; | ||||||
| 
 |  | ||||||
|             m_interServiceInventoryService = interServiceInventoryService; |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public override UserProfileData SetupMasterUser(string firstName, string lastName) |         public override UserProfileData SetupMasterUser(string firstName, string lastName) | ||||||
|  | @ -72,20 +69,8 @@ namespace OpenSim.Region.Communications.Local | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             Console.WriteLine("Unknown Master User. Sandbox Mode: Creating Account"); |             Console.WriteLine("Unknown Master User. Sandbox Mode: Creating Account"); | ||||||
|             AddUserProfile(firstName, lastName, password, "", m_defaultHomeX, m_defaultHomeY); |             AddUser(firstName, lastName, password, "", m_defaultHomeX, m_defaultHomeY); | ||||||
| 
 |             return GetUserProfile(firstName, lastName); | ||||||
|             profile = GetUserProfile(firstName, lastName); |  | ||||||
| 
 |  | ||||||
|             if (profile == null) |  | ||||||
|             { |  | ||||||
|                 Console.WriteLine("[LOCAL USER SERVICES]: Unknown Master User after creation attempt. No clue what to do here."); |  | ||||||
|             } |  | ||||||
|             else |  | ||||||
|             { |  | ||||||
|                 m_interServiceInventoryService.CreateNewUserInventory(profile.ID); |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             return profile; |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public override UserProfileData SetupMasterUser(UUID uuid) |         public override UserProfileData SetupMasterUser(UUID uuid) | ||||||
|  |  | ||||||
|  | @ -530,7 +530,10 @@ namespace OpenSim.Region.Environment.Modules.InterGrid | ||||||
|             // get seed capagentData.firstname = FirstName;agentData.lastname = LastName; |             // get seed capagentData.firstname = FirstName;agentData.lastname = LastName; | ||||||
|             if (homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID) == null && !GridMode) |             if (homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID) == null && !GridMode) | ||||||
|             { |             { | ||||||
|                 homeScene.CommsManager.AddUser(agentData.firstname, agentData.lastname, CreateRandomStr(7), "", homeScene.RegionInfo.RegionLocX, homeScene.RegionInfo.RegionLocY, agentData.AgentID); |                 homeScene.CommsManager.UserServiceAdmin.AddUser( | ||||||
|  |                     agentData.firstname, agentData.lastname, CreateRandomStr(7), "",  | ||||||
|  |                     homeScene.RegionInfo.RegionLocX, homeScene.RegionInfo.RegionLocY, agentData.AgentID); | ||||||
|  |                  | ||||||
|                 UserProfileData userProfile2 = homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID); |                 UserProfileData userProfile2 = homeScene.CommsManager.UserService.GetUserProfile(agentData.AgentID); | ||||||
|                 if (userProfile2 != null) |                 if (userProfile2 != null) | ||||||
|                 { |                 { | ||||||
|  | @ -539,7 +542,6 @@ namespace OpenSim.Region.Environment.Modules.InterGrid | ||||||
|                     userProfile.FirstLifeAboutText = "OGP USER"; |                     userProfile.FirstLifeAboutText = "OGP USER"; | ||||||
|                     homeScene.CommsManager.UserService.UpdateUserProfile(userProfile); |                     homeScene.CommsManager.UserService.UpdateUserProfile(userProfile); | ||||||
|                 } |                 } | ||||||
| 
 |  | ||||||
|             } |             } | ||||||
|              |              | ||||||
|             // Stick our data in the cache so the region will know something about us |             // Stick our data in the cache so the region will know something about us | ||||||
|  |  | ||||||
|  | @ -105,7 +105,8 @@ namespace OpenSim.Region.Environment.Scenes.Tests | ||||||
|             ((LocalInventoryService)scene.CommsManager.InventoryService).AddPlugin(new TestInventoryDataPlugin()); |             ((LocalInventoryService)scene.CommsManager.InventoryService).AddPlugin(new TestInventoryDataPlugin()); | ||||||
|              |              | ||||||
|             Assert.That( |             Assert.That( | ||||||
|                 scene.CommsManager.AddUser("Bob", "Hoskins", "test", "test@test.com", 1000, 1000, agentId), |                 scene.CommsManager.UserServiceAdmin.AddUser( | ||||||
|  |                     "Bob", "Hoskins", "test", "test@test.com", 1000, 1000, agentId), | ||||||
|                 Is.EqualTo(agentId));   |                 Is.EqualTo(agentId));   | ||||||
|              |              | ||||||
|             IClientAPI client = SceneTestUtils.AddRootAgent(scene, agentId); |             IClientAPI client = SceneTestUtils.AddRootAgent(scene, agentId); | ||||||
|  |  | ||||||
|  | @ -38,13 +38,13 @@ namespace OpenSim.Region.Environment.Scenes.Tests | ||||||
|         public TestCommunicationsManager() |         public TestCommunicationsManager() | ||||||
|             : base(null, null, null, false, null) |             : base(null, null, null, false, null) | ||||||
|         { |         { | ||||||
|             LocalUserServices lus = new LocalUserServices(null, 991, 992, null); |  | ||||||
|             m_userService = lus; |  | ||||||
|             m_userServiceAdmin = lus; |  | ||||||
|              |  | ||||||
|             LocalInventoryService lis = new LocalInventoryService(); |             LocalInventoryService lis = new LocalInventoryService(); | ||||||
|             m_interServiceInventoryService = lis; |             m_interServiceInventoryService = lis; | ||||||
|             AddInventoryService(lis); |             AddInventoryService(lis); | ||||||
|  |              | ||||||
|  |             LocalUserServices lus = new LocalUserServices(null, 991, 992, lis); | ||||||
|  |             m_userService = lus; | ||||||
|  |             m_userServiceAdmin = lus;            | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Justin Clarke Casey
						Justin Clarke Casey