diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 34461dc2d3..daacdf0886 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs @@ -276,6 +276,7 @@ namespace OpenSim.Region.Framework.Scenes { if (UUID.Zero == transactionID) { + m_log.DebugFormat("[XXX] UUID.Zero = transactionID"); item.Name = itemUpd.Name; item.Description = itemUpd.Description; item.NextPermissions = itemUpd.NextPermissions & item.BasePermissions; @@ -302,6 +303,7 @@ namespace OpenSim.Region.Framework.Scenes } else { + m_log.DebugFormat("[XXX] UUID.Zero != transactionID"); IAgentAssetTransactions agentTransactions = this.RequestModuleInterface(); if (agentTransactions != null) { @@ -386,6 +388,7 @@ namespace OpenSim.Region.Framework.Scenes if (Permissions.PropagatePermissions() && recipient != senderId) { + m_log.Debug("[XXX] Permissions.PropagatePermissions()"); // Trying to do this right this time. This is evil. If // you believe in Good, go elsewhere. Vampires and other // evil creatores only beyond this point. You have been @@ -449,12 +452,18 @@ namespace OpenSim.Region.Framework.Scenes (uint)PermissionMask.Modify) != 0 ? true : false; + bool isRootCopy = (item.CurrentPermissions & + (uint)PermissionMask.Copy) != 0 ? + true : false; + // Mask the owner perms to the folded perms ownerPerms &= foldedPerms; // If the root was mod, let the mask reflect that if (isRootMod) ownerPerms |= (uint)PermissionMask.Modify; + if (isRootCopy) + ownerPerms |= (uint)PermissionMask.Copy; } // These will be applied to the root prim at next rez.