fix: allowing explicit setting of UUID for master avatar in

CreateRegion (and documenting it).
0.6.0-stable
Dr Scofield 2008-10-23 12:10:58 +00:00
parent dc7e3ddc3e
commit 44052a1423
1 changed files with 18 additions and 7 deletions

View File

@ -448,17 +448,28 @@ namespace OpenSim.ApplicationPlugins.RemoteController
string masterPassword = (string)requestData["region_master_password"]; string masterPassword = (string)requestData["region_master_password"];
UUID userID = UUID.Zero; UUID userID = UUID.Zero;
UserProfileData userProfile = m_app.CommunicationsManager.UserService.GetUserProfile(masterFirst, masterLast); if (requestData.ContainsKey("region_master_uuid"))
if (null == userProfile)
{ {
m_log.InfoFormat("master avatar does not exist, creating it"); // ok, client wants us to use an explicit UUID
userID = m_app.CreateUser(masterFirst, masterLast, masterPassword, region.RegionLocX, region.RegionLocY); // regardless of what the avatar name provided
if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", userID = new UUID((string)requestData["region_master_uuid"]);
masterFirst, masterLast));
} }
else else
{ {
userID = userProfile.ID; // no client supplied UUID: look it up...
UserProfileData userProfile = m_app.CommunicationsManager.UserService.GetUserProfile(masterFirst, masterLast);
if (null == userProfile)
{
m_log.InfoFormat("master avatar does not exist, creating it");
// ...or create new user
userID = m_app.CreateUser(masterFirst, masterLast, masterPassword, region.RegionLocX, region.RegionLocY);
if (userID == UUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}",
masterFirst, masterLast));
}
else
{
userID = userProfile.ID;
}
} }
region.MasterAvatarFirstName = masterFirst; region.MasterAvatarFirstName = masterFirst;