mirror of
https://github.com/opensim/opensim.git
synced 2026-08-10 19:36:07 +08:00
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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user