Don't load current/next/everyone/base permissions from the library item xml files - always use PermissionMask.All instead (which was the existing default).

Library items always need the same permissions, so it doesn't make sense to load them from the xml files.  This just opens the door to permissions mistakes.
This commit is contained in:
Justin Clark-Casey (justincc)
2011-07-23 01:59:14 +01:00
parent aadc4eb3b8
commit 667b54f5a2
17 changed files with 159 additions and 567 deletions

View File

@@ -984,11 +984,14 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
public virtual bool CanGetAgentInventoryItem(IClientAPI remoteClient, UUID itemID, UUID requestID)
{
InventoryItemBase assetRequestItem = GetItem(remoteClient.AgentId, itemID);
if (assetRequestItem == null)
{
ILibraryService lib = m_Scene.RequestModuleInterface<ILibraryService>();
if (lib != null)
assetRequestItem = lib.LibraryRootFolder.FindItem(itemID);
if (assetRequestItem == null)
return false;
}
@@ -1019,6 +1022,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
m_log.WarnFormat(
"[CLIENT]: {0} requested asset {1} from item {2} but this does not match item's asset {3}",
Name, requestID, itemID, assetRequestItem.AssetID);
return false;
}

View File

@@ -185,6 +185,7 @@ namespace OpenSim.Region.CoreModules.Framework.Library
archread = new InventoryArchiveReadRequest(m_MockScene, uinfo, "/", iarFileName, false);
archread.Execute();
}
foreach (InventoryNodeBase node in nodes)
FixPerms(node);
}
@@ -197,18 +198,23 @@ namespace OpenSim.Region.CoreModules.Framework.Library
archread.Close();
}
}
}
private void FixPerms(InventoryNodeBase node)
{
m_log.DebugFormat("[LIBRARY MODULE]: Fixing perms for {0} {1}", node.Name, node.ID);
if (node is InventoryItemBase)
{
InventoryItemBase item = (InventoryItemBase)node;
// item.BasePermissions = (uint)PermissionMask.All;
item.BasePermissions = 0x7FFFFFFF;
item.EveryOnePermissions = 0x7FFFFFFF;
item.CurrentPermissions = 0x7FFFFFFF;
item.NextPermissions = 0x7FFFFFFF;
// item.EveryOnePermissions = (uint)PermissionMask.Copy;
// item.CurrentPermissions = (uint)PermissionMask.None;
// item.NextPermissions = (uint)PermissionMask.All;
}
}