Merge branch 'master' into careminster
commit
4492bc1bcd
|
@ -44,13 +44,13 @@ namespace OpenSim.Framework.Serialization.External
|
|||
/// with creator data added to it.
|
||||
/// </summary>
|
||||
/// <param name="xml">The SceneObjectPart represented in XML2</param>
|
||||
/// <param name="profileURL">The URL of the profile service for the creator</param>
|
||||
/// <param name="homeURL">The URL of the user agents service (home) for the creator</param>
|
||||
/// <param name="userService">The service for retrieving user account information</param>
|
||||
/// <param name="scopeID">The scope of the user account information (Grid ID)</param>
|
||||
/// <returns>The SceneObjectPart represented in XML2</returns>
|
||||
public static string RewriteSOP(string xml, string profileURL, IUserAccountService userService, UUID scopeID)
|
||||
public static string RewriteSOP(string xml, string homeURL, IUserAccountService userService, UUID scopeID)
|
||||
{
|
||||
if (xml == string.Empty || profileURL == string.Empty || userService == null)
|
||||
if (xml == string.Empty || homeURL == string.Empty || userService == null)
|
||||
return xml;
|
||||
|
||||
XmlDocument doc = new XmlDocument();
|
||||
|
@ -83,7 +83,7 @@ namespace OpenSim.Framework.Serialization.External
|
|||
if (!hasCreatorData && creator != null)
|
||||
{
|
||||
XmlElement creatorData = doc.CreateElement("CreatorData");
|
||||
creatorData.InnerText = profileURL + "/" + creator.PrincipalID + ";" + creator.FirstName + " " + creator.LastName;
|
||||
creatorData.InnerText = homeURL + ";" + creator.FirstName + " " + creator.LastName;
|
||||
sop.AppendChild(creatorData);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -493,7 +493,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
|||
}
|
||||
else
|
||||
{
|
||||
sceneObjects.Add(SceneObjectSerializer.FromOriginalXmlFormat(xmlData));
|
||||
SceneObjectGroup deserializedObject = SceneObjectSerializer.FromOriginalXmlFormat(xmlData);
|
||||
|
||||
if (deserializedObject != null)
|
||||
sceneObjects.Add(deserializedObject);
|
||||
}
|
||||
|
||||
foreach (SceneObjectGroup sog in sceneObjects)
|
||||
|
|
|
@ -55,16 +55,16 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
|||
// private Dictionary<string, InventoryClient> m_inventoryServers = new Dictionary<string, InventoryClient>();
|
||||
|
||||
private Scene m_scene;
|
||||
private string m_ProfileServerURI;
|
||||
private string m_HomeURI;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
|
||||
public HGAssetMapper(Scene scene, string profileURL)
|
||||
public HGAssetMapper(Scene scene, string homeURL)
|
||||
{
|
||||
m_scene = scene;
|
||||
m_ProfileServerURI = profileURL;
|
||||
m_HomeURI = homeURL;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -150,7 +150,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
|||
UUID.TryParse(meta.CreatorID, out uuid);
|
||||
UserAccount creator = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, uuid);
|
||||
if (creator != null)
|
||||
meta.CreatorID = m_ProfileServerURI + "/" + meta.CreatorID + ";" + creator.FirstName + " " + creator.LastName;
|
||||
meta.CreatorID = m_HomeURI + ";" + creator.FirstName + " " + creator.LastName;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -193,7 +193,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
|||
if (!hasCreatorData && creator != null)
|
||||
{
|
||||
XmlElement creatorData = doc.CreateElement("CreatorData");
|
||||
creatorData.InnerText = m_ProfileServerURI + "/" + creator.PrincipalID + ";" + creator.FirstName + " " + creator.LastName;
|
||||
creatorData.InnerText = m_HomeURI + ";" + creator.FirstName + " " + creator.LastName;
|
||||
sop.AppendChild(creatorData);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
|||
get { return m_assMapper; }
|
||||
}
|
||||
|
||||
private string m_ProfileServerURI;
|
||||
private string m_HomeURI;
|
||||
private bool m_OutboundPermission;
|
||||
private string m_ThisGatekeeper;
|
||||
|
||||
|
@ -84,7 +84,10 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
|||
IConfig thisModuleConfig = source.Configs["HGInventoryAccessModule"];
|
||||
if (thisModuleConfig != null)
|
||||
{
|
||||
m_ProfileServerURI = thisModuleConfig.GetString("ProfileServerURI", string.Empty);
|
||||
// legacy configuration [obsolete]
|
||||
m_HomeURI = thisModuleConfig.GetString("ProfileServerURI", string.Empty);
|
||||
// preferred
|
||||
m_HomeURI = thisModuleConfig.GetString("HomeURI", m_HomeURI);
|
||||
m_OutboundPermission = thisModuleConfig.GetBoolean("OutboundPermission", true);
|
||||
m_ThisGatekeeper = thisModuleConfig.GetString("Gatekeeper", string.Empty);
|
||||
}
|
||||
|
@ -100,7 +103,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
|||
return;
|
||||
|
||||
base.AddRegion(scene);
|
||||
m_assMapper = new HGAssetMapper(scene, m_ProfileServerURI);
|
||||
m_assMapper = new HGAssetMapper(scene, m_HomeURI);
|
||||
scene.EventManager.OnNewInventoryItemUploadComplete += UploadInventoryItem;
|
||||
|
||||
}
|
||||
|
|
|
@ -423,58 +423,62 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
|
|||
AddUser(uuid, profileURL + ";" + first + " " + last);
|
||||
}
|
||||
|
||||
public void AddUser(UUID id, string creatorData)
|
||||
public void AddUser (UUID id, string creatorData)
|
||||
{
|
||||
lock (m_UserCache)
|
||||
{
|
||||
if (m_UserCache.ContainsKey(id))
|
||||
return;
|
||||
}
|
||||
|
||||
// m_log.DebugFormat("[USER MANAGEMENT MODULE]: Adding user with id {0}, craetorData {1}", id, creatorData);
|
||||
|
||||
UserAccount account = m_Scenes[0].UserAccountService.GetUserAccount(m_Scenes[0].RegionInfo.ScopeID, id);
|
||||
|
||||
if (account != null)
|
||||
{
|
||||
AddUser(id, account.FirstName, account.LastName);
|
||||
}
|
||||
else
|
||||
{
|
||||
UserData user = new UserData();
|
||||
user.Id = id;
|
||||
user.Flags = -1;
|
||||
user.Created = -1;
|
||||
|
||||
if (creatorData != null && creatorData != string.Empty)
|
||||
{
|
||||
//creatorData = <endpoint>;<name>
|
||||
|
||||
string[] parts = creatorData.Split(';');
|
||||
if (parts.Length >= 1)
|
||||
{
|
||||
user.HomeURL = parts[0];
|
||||
try
|
||||
{
|
||||
Uri uri = new Uri(parts[0]);
|
||||
user.LastName = "@" + uri.Authority;
|
||||
}
|
||||
catch (UriFormatException)
|
||||
{
|
||||
m_log.DebugFormat("[SCENE]: Unable to parse Uri {0}", parts[0]);
|
||||
user.LastName = "@unknown";
|
||||
}
|
||||
UserData oldUser;
|
||||
//lock the whole block - prevent concurrent update
|
||||
lock (m_UserCache) {
|
||||
m_UserCache.TryGetValue (id, out oldUser);
|
||||
if (oldUser != null) {
|
||||
if (creatorData == null || creatorData == String.Empty) {
|
||||
//ignore updates without creator data
|
||||
return;
|
||||
}
|
||||
//try update unknown users
|
||||
//and creator's home URL's
|
||||
if ((oldUser.FirstName == "Unknown" && !creatorData.Contains ("Unknown")) || (oldUser.HomeURL != null && !creatorData.StartsWith (oldUser.HomeURL))) {
|
||||
m_UserCache.Remove (id);
|
||||
// m_log.DebugFormat("[USER MANAGEMENT MODULE]: Re-adding user with id {0}, creatorData [{1}] and old HomeURL {2}", id, creatorData,oldUser.HomeURL);
|
||||
} else {
|
||||
//we have already a valid user within the cache
|
||||
return;
|
||||
}
|
||||
if (parts.Length >= 2)
|
||||
user.FirstName = parts[1].Replace(' ', '.');
|
||||
}
|
||||
else
|
||||
{
|
||||
user.FirstName = "Unknown";
|
||||
user.LastName = "User";
|
||||
// m_log.DebugFormat("[USER MANAGEMENT MODULE]: Adding user with id {0}, creatorData {1}", id, creatorData);
|
||||
|
||||
UserAccount account = m_Scenes[0].UserAccountService.GetUserAccount (m_Scenes[0].RegionInfo.ScopeID, id);
|
||||
|
||||
if (account != null) {
|
||||
AddUser (id, account.FirstName, account.LastName);
|
||||
} else {
|
||||
UserData user = new UserData ();
|
||||
user.Id = id;
|
||||
user.Flags = -1;
|
||||
user.Created = -1;
|
||||
|
||||
if (creatorData != null && creatorData != string.Empty) {
|
||||
//creatorData = <endpoint>;<name>
|
||||
|
||||
string[] parts = creatorData.Split (';');
|
||||
if (parts.Length >= 1) {
|
||||
user.HomeURL = parts[0];
|
||||
try {
|
||||
Uri uri = new Uri (parts[0]);
|
||||
user.LastName = "@" + uri.Authority;
|
||||
} catch (UriFormatException) {
|
||||
m_log.DebugFormat ("[SCENE]: Unable to parse Uri {0}", parts[0]);
|
||||
user.LastName = "@unknown";
|
||||
}
|
||||
}
|
||||
if (parts.Length >= 2)
|
||||
user.FirstName = parts[1].Replace (' ', '.');
|
||||
} else {
|
||||
user.FirstName = "Unknown";
|
||||
user.LastName = "User";
|
||||
}
|
||||
|
||||
AddUserInternal (user);
|
||||
}
|
||||
|
||||
AddUserInternal(user);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -422,6 +422,12 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
|||
string extension = filename.Substring(i);
|
||||
string uuid = filename.Remove(filename.Length - extension.Length);
|
||||
|
||||
if (m_scene.AssetService.GetMetadata(uuid) != null)
|
||||
{
|
||||
// m_log.DebugFormat("[ARCHIVER]: found existing asset {0}",uuid);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (ArchiveConstants.EXTENSION_TO_ASSET_TYPE.ContainsKey(extension))
|
||||
{
|
||||
sbyte assetType = ArchiveConstants.EXTENSION_TO_ASSET_TYPE[extension];
|
||||
|
|
|
@ -125,8 +125,12 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
|||
Dictionary<string, object> options = new Dictionary<string, object>();
|
||||
|
||||
OptionSet ops = new OptionSet();
|
||||
// ops.Add("v|version=", delegate(string v) { options["version"] = v; });
|
||||
ops.Add("p|profile=", delegate(string v) { options["profile"] = v; });
|
||||
|
||||
// legacy argument [obsolete]
|
||||
ops.Add("p|profile=", delegate(string v) { Console.WriteLine("\n WARNING: -profile option is obsolete and it will not work. Use -home instead.\n"); });
|
||||
// preferred
|
||||
ops.Add("h|home=", delegate(string v) { options["home"] = v; });
|
||||
|
||||
ops.Add("noassets", delegate(string v) { options["noassets"] = v != null; });
|
||||
ops.Add("perm=", delegate(string v) { options["checkPermissions"] = v; });
|
||||
|
||||
|
|
|
@ -405,7 +405,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
private string m_creatorData = string.Empty;
|
||||
/// <summary>
|
||||
/// Data about the creator in the form profile_url;name
|
||||
/// Data about the creator in the form home_url;name
|
||||
/// </summary>
|
||||
public string CreatorData
|
||||
{
|
||||
|
@ -416,7 +416,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
/// <summary>
|
||||
/// Used by the DB layer to retrieve / store the entire user identification.
|
||||
/// The identification can either be a simple UUID or a string of the form
|
||||
/// uuid[;profile_url[;name]]
|
||||
/// uuid[;home_url[;name]]
|
||||
/// </summary>
|
||||
public string CreatorIdentification
|
||||
{
|
||||
|
|
|
@ -54,7 +54,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
|
|||
/// Deserialize a scene object from the original xml format
|
||||
/// </summary>
|
||||
/// <param name="xmlData"></param>
|
||||
/// <returns></returns>
|
||||
/// <returns>The scene object deserialized. Null on failure.</returns>
|
||||
public static SceneObjectGroup FromOriginalXmlFormat(string xmlData)
|
||||
{
|
||||
//m_log.DebugFormat("[SOG]: Starting deserialization of SOG");
|
||||
|
@ -1147,12 +1147,12 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
|
|||
|
||||
if (sop.CreatorData != null && sop.CreatorData != string.Empty)
|
||||
writer.WriteElementString("CreatorData", sop.CreatorData);
|
||||
else if (options.ContainsKey("profile"))
|
||||
else if (options.ContainsKey("home"))
|
||||
{
|
||||
if (m_UserManagement == null)
|
||||
m_UserManagement = sop.ParentGroup.Scene.RequestModuleInterface<IUserManagement>();
|
||||
string name = m_UserManagement.GetUserName(sop.CreatorID);
|
||||
writer.WriteElementString("CreatorData", (string)options["profile"] + "/" + sop.CreatorID + ";" + name);
|
||||
writer.WriteElementString("CreatorData", (string)options["home"] + ";" + name);
|
||||
}
|
||||
|
||||
WriteUUID(writer, "FolderID", sop.FolderID, options);
|
||||
|
@ -1298,12 +1298,12 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
|
|||
|
||||
if (item.CreatorData != null && item.CreatorData != string.Empty)
|
||||
writer.WriteElementString("CreatorData", item.CreatorData);
|
||||
else if (options.ContainsKey("profile"))
|
||||
else if (options.ContainsKey("home"))
|
||||
{
|
||||
if (m_UserManagement == null)
|
||||
m_UserManagement = scene.RequestModuleInterface<IUserManagement>();
|
||||
string name = m_UserManagement.GetUserName(item.CreatorID);
|
||||
writer.WriteElementString("CreatorData", (string)options["profile"] + "/" + item.CreatorID + ";" + name);
|
||||
writer.WriteElementString("CreatorData", (string)options["home"] + ";" + name);
|
||||
}
|
||||
|
||||
writer.WriteElementString("Description", item.Description);
|
||||
|
|
|
@ -289,7 +289,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
|
|||
if (images.Length > 0)
|
||||
{
|
||||
report.AppendFormat(
|
||||
"{0,-36} {1,-8} {2,-9} {3,-9} {4,-9} {5,-7}\n",
|
||||
"{0,-36} {1,-8} {2,-10} {3,-9} {4,-9} {5,-7}\n",
|
||||
"Texture ID",
|
||||
"Last Seq",
|
||||
"Priority",
|
||||
|
@ -299,7 +299,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden
|
|||
|
||||
foreach (J2KImage image in images)
|
||||
report.AppendFormat(
|
||||
"{0,36} {1,8} {2,9} {3,10} {4,9} {5,7}\n",
|
||||
"{0,36} {1,8} {2,10} {3,10} {4,9} {5,7}\n",
|
||||
image.TextureID, image.LastSequence, image.Priority, image.StartPacket, image.HasAsset, image.IsDecoded);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ namespace OpenSim.Services.HypergridService
|
|||
LogManager.GetLogger(
|
||||
MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
private string m_ProfileServiceURL;
|
||||
private string m_HomeURL;
|
||||
private IUserAccountService m_UserAccountService;
|
||||
|
||||
private UserAccountCache m_Cache;
|
||||
|
@ -74,7 +74,10 @@ namespace OpenSim.Services.HypergridService
|
|||
if (m_UserAccountService == null)
|
||||
throw new Exception(String.Format("Unable to create UserAccountService from {0}", userAccountsDll));
|
||||
|
||||
m_ProfileServiceURL = assetConfig.GetString("ProfileServerURI", string.Empty);
|
||||
// legacy configuration [obsolete]
|
||||
m_HomeURL = assetConfig.GetString("ProfileServerURI", string.Empty);
|
||||
// Preferred
|
||||
m_HomeURL = assetConfig.GetString("HomeURI", m_HomeURL);
|
||||
|
||||
m_Cache = UserAccountCache.CreateUserAccountCache(m_UserAccountService);
|
||||
}
|
||||
|
@ -134,13 +137,13 @@ namespace OpenSim.Services.HypergridService
|
|||
|
||||
UserAccount creator = m_Cache.GetUser(meta.CreatorID);
|
||||
if (creator != null)
|
||||
meta.CreatorID = m_ProfileServiceURL + "/" + meta.CreatorID + ";" + creator.FirstName + " " + creator.LastName;
|
||||
meta.CreatorID = meta.CreatorID + ";" + m_HomeURL + "/" + creator.FirstName + " " + creator.LastName;
|
||||
}
|
||||
|
||||
protected byte[] AdjustIdentifiers(byte[] data)
|
||||
{
|
||||
string xml = Utils.BytesToString(data);
|
||||
return Utils.StringToBytes(ExternalRepresentationUtils.RewriteSOP(xml, m_ProfileServiceURL, m_Cache, UUID.Zero));
|
||||
return Utils.StringToBytes(ExternalRepresentationUtils.RewriteSOP(xml, m_HomeURL, m_Cache, UUID.Zero));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ namespace OpenSim.Services.HypergridService
|
|||
|
||||
protected new IXInventoryData m_Database;
|
||||
|
||||
private string m_ProfileServiceURL;
|
||||
private string m_HomeURL;
|
||||
private IUserAccountService m_UserAccountService;
|
||||
|
||||
private UserAccountCache m_Cache;
|
||||
|
@ -100,7 +100,10 @@ namespace OpenSim.Services.HypergridService
|
|||
if (m_UserAccountService == null)
|
||||
throw new Exception(String.Format("Unable to create UserAccountService from {0}", userAccountsDll));
|
||||
|
||||
m_ProfileServiceURL = invConfig.GetString("ProfileServerURI", string.Empty);
|
||||
// legacy configuration [obsolete]
|
||||
m_HomeURL = invConfig.GetString("ProfileServerURI", string.Empty);
|
||||
// Preferred
|
||||
m_HomeURL = invConfig.GetString("HomeURI", m_HomeURL);
|
||||
|
||||
m_Cache = UserAccountCache.CreateUserAccountCache(m_UserAccountService);
|
||||
}
|
||||
|
@ -321,7 +324,7 @@ namespace OpenSim.Services.HypergridService
|
|||
|
||||
// Adjust the creator data
|
||||
if (user != null && it != null && (it.CreatorData == null || it.CreatorData == string.Empty))
|
||||
it.CreatorData = m_ProfileServiceURL + "/" + it.CreatorId + ";" + user.FirstName + " " + user.LastName;
|
||||
it.CreatorData = m_HomeURL + ";" + user.FirstName + " " + user.LastName;
|
||||
|
||||
return it;
|
||||
}
|
||||
|
|
|
@ -171,9 +171,9 @@
|
|||
; physics = basicphysics
|
||||
; physics = POS
|
||||
|
||||
;# {permissionmodules} {} {Permission modules to use (may specify multiple modules, separated by space} {} DefaultPermissionsModule
|
||||
;; Permission modules to use, separated by space.
|
||||
; permissionmodules = "DefaultPermissionsModule"
|
||||
;# {permissionmodules} {} {Permission modules to use (may specify multiple modules, separated by comma} {} DefaultPermissionsModule
|
||||
;; Permission modules to use, separated by comma.
|
||||
; permissionmodules = DefaultPermissionsModule
|
||||
|
||||
;# {serverside_object_permissions} {permissionmodules:DefaultPermissionsModule} {Activate permission handling by the sim?} {true false} true
|
||||
;; These are the parameters for the default permissions module
|
||||
|
|
|
@ -380,7 +380,7 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003
|
|||
; For the InventoryServiceInConnector
|
||||
LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService"
|
||||
UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
|
||||
ProfileServerURI = "http://127.0.0.1:8002/user"
|
||||
HomeURI = "http://127.0.0.1:8002"
|
||||
|
||||
; * The interface that local users get when they are in other grids.
|
||||
; * This restricts the access that the rest of the world has to
|
||||
|
@ -389,7 +389,7 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003
|
|||
[HGAssetService]
|
||||
LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGAssetService"
|
||||
UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
|
||||
ProfileServerURI = "http://127.0.0.1:8002/user"
|
||||
HomeURI = "http://127.0.0.1:8002"
|
||||
|
||||
[HGFriendsService]
|
||||
LocalServiceModule = "OpenSim.Services.FriendsService.dll:FriendsService"
|
||||
|
|
|
@ -123,7 +123,7 @@
|
|||
; Change this to your server
|
||||
; accessible from other grids
|
||||
;
|
||||
ProfileServerURI = "http://mygridserver.com:8002/user"
|
||||
HomeURI = "http://mygridserver.com:8002/user"
|
||||
Gatekeeper = "http://mygridserver.com:8002"
|
||||
;; If you want to protect your assets from being copied by foreign visitors
|
||||
;; uncomment the next line. You may want to do this on sims that have licensed content.
|
||||
|
|
|
@ -48,13 +48,13 @@
|
|||
AssetLoaderArgs = "assets/AssetSets.xml"
|
||||
|
||||
[HGInventoryService]
|
||||
ProfileServerURI = "http://127.0.0.1:9000/profiles"
|
||||
HomeURI = "http://127.0.0.1:9000"
|
||||
|
||||
[HGAssetService]
|
||||
ProfileServerURI = "http://127.0.0.1:9000/profiles"
|
||||
HomeURI = "http://127.0.0.1:9000"
|
||||
|
||||
[HGInventoryAccessModule]
|
||||
ProfileServerURI = "http://127.0.0.1:9000/profiles"
|
||||
HomeURI = "http://127.0.0.1:9000"
|
||||
Gatekeeper = "http://127.0.0.1:9000"
|
||||
|
||||
;; If you want to protect your assets from being copied by foreign visitors
|
||||
|
|
Loading…
Reference in New Issue