Refactored: ExternalRepresentationUtils should be the only place where the "CreatorData" field is calculated, to ensure uniformity

Resolves http://opensimulator.org/mantis/view.php?id=6933
0.8.0.3
Oren Hurvitz 2013-10-31 13:02:57 +02:00
parent edc04d4184
commit 89945f8829
4 changed files with 24 additions and 8 deletions

View File

@ -1,4 +1,4 @@
/* /*
* Copyright (c) Contributors, http://opensimulator.org/ * Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders. * See CONTRIBUTORS.TXT for a full list of copyright holders.
* *
@ -161,7 +161,7 @@ namespace OpenSim.Framework.Serialization.External
if (!hasCreatorData && creator != null) if (!hasCreatorData && creator != null)
{ {
XmlElement creatorData = doc.CreateElement("CreatorData"); XmlElement creatorData = doc.CreateElement("CreatorData");
creatorData.InnerText = homeURL + ";" + creator.FirstName + " " + creator.LastName; creatorData.InnerText = CalcCreatorData(homeURL, creator.FirstName + " " + creator.LastName);
sop.AppendChild(creatorData); sop.AppendChild(creatorData);
} }
} }
@ -172,5 +172,15 @@ namespace OpenSim.Framework.Serialization.External
return wr.ToString(); return wr.ToString();
} }
} }
public static string CalcCreatorData(string homeURL, string name)
{
return homeURL + ";" + name;
}
internal static string CalcCreatorData(string homeURL, UUID uuid, string name)
{
return homeURL + "/" + uuid + ";" + name;
}
} }
} }

View File

@ -286,7 +286,8 @@ namespace OpenSim.Framework.Serialization.External
UserAccount account = userAccountService.GetUserAccount(UUID.Zero, inventoryItem.CreatorIdAsUuid); UserAccount account = userAccountService.GetUserAccount(UUID.Zero, inventoryItem.CreatorIdAsUuid);
if (account != null) if (account != null)
{ {
writer.WriteElementString("CreatorData", (string)options["home"] + "/" + inventoryItem.CreatorIdAsUuid + ";" + account.FirstName + " " + account.LastName); string creatorData = ExternalRepresentationUtils.CalcCreatorData((string)options["home"], inventoryItem.CreatorIdAsUuid, account.FirstName + " " + account.LastName);
writer.WriteElementString("CreatorData", creatorData);
} }
writer.WriteElementString("CreatorID", inventoryItem.CreatorId); writer.WriteElementString("CreatorID", inventoryItem.CreatorId);
} }

View File

@ -2250,10 +2250,15 @@ namespace OpenSim.Framework
{ {
string[] parts = firstName.Split(new char[] { '.' }); string[] parts = firstName.Split(new char[] { '.' });
if (parts.Length == 2) if (parts.Length == 2)
return id.ToString() + ";" + agentsURI + ";" + parts[0] + " " + parts[1]; return CalcUniversalIdentifier(id, agentsURI, parts[0] + " " + parts[1]);
} }
return id.ToString() + ";" + agentsURI + ";" + firstName + " " + lastName;
return CalcUniversalIdentifier(id, agentsURI, firstName + " " + lastName);
}
private static string CalcUniversalIdentifier(UUID id, string agentsURI, string name)
{
return id.ToString() + ";" + agentsURI + ";" + name;
} }
/// <summary> /// <summary>

View File

@ -1230,7 +1230,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
if (m_UserManagement == null) if (m_UserManagement == null)
m_UserManagement = sop.ParentGroup.Scene.RequestModuleInterface<IUserManagement>(); m_UserManagement = sop.ParentGroup.Scene.RequestModuleInterface<IUserManagement>();
string name = m_UserManagement.GetUserName(sop.CreatorID); string name = m_UserManagement.GetUserName(sop.CreatorID);
writer.WriteElementString("CreatorData", (string)options["home"] + ";" + name); writer.WriteElementString("CreatorData", ExternalRepresentationUtils.CalcCreatorData((string)options["home"], name));
} }
WriteUUID(writer, "FolderID", sop.FolderID, options); WriteUUID(writer, "FolderID", sop.FolderID, options);
@ -1403,7 +1403,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
if (m_UserManagement == null) if (m_UserManagement == null)
m_UserManagement = scene.RequestModuleInterface<IUserManagement>(); m_UserManagement = scene.RequestModuleInterface<IUserManagement>();
string name = m_UserManagement.GetUserName(item.CreatorID); string name = m_UserManagement.GetUserName(item.CreatorID);
writer.WriteElementString("CreatorData", (string)options["home"] + ";" + name); writer.WriteElementString("CreatorData", ExternalRepresentationUtils.CalcCreatorData((string)options["home"], name));
} }
writer.WriteElementString("Description", item.Description); writer.WriteElementString("Description", item.Description);