aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs12
1 files changed, 7 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index a6f6aa3..5e19a8a 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1267,17 +1267,19 @@ namespace OpenSim.Region.Framework.Scenes
1267 // TODO: Fix this after the inventory fixer exists and has beenr run 1267 // TODO: Fix this after the inventory fixer exists and has beenr run
1268 if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions()) 1268 if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions())
1269 { 1269 {
1270 agentItem.BasePermissions = taskItem.BasePermissions & (taskItem.NextPermissions | (uint)PermissionMask.Move); 1270 agentItem.BasePermissions = taskItem.BasePermissions & taskItem.NextPermissions;
1271 if (taskItem.InvType == (int)InventoryType.Object) 1271 if (taskItem.InvType == (int)InventoryType.Object)
1272 { 1272 {
1273 if((taskItem.CurrentPermissions & (uint)PermissionMask.FoldedMask) != 0) 1273 uint perms = agentItem.BasePermissions;
1274 agentItem.BasePermissions &= 1274 PermissionsUtil.ApplyFoldedPermissions(taskItem.CurrentPermissions, ref perms );
1275 (((taskItem.CurrentPermissions & (uint)PermissionMask.FoldedMask ) << (int)PermissionMask.FoldingShift) | 1275 agentItem.BasePermissions = perms;
1276 (taskItem.CurrentPermissions & (uint)PermissionMask.Move));
1277 } 1276 }
1278 else 1277 else
1279 agentItem.BasePermissions &= taskItem.CurrentPermissions; 1278 agentItem.BasePermissions &= taskItem.CurrentPermissions;
1280 1279
1280 // always unlock
1281 agentItem.BasePermissions |= (uint)PermissionMask.Move;
1282
1281 agentItem.CurrentPermissions = agentItem.BasePermissions; 1283 agentItem.CurrentPermissions = agentItem.BasePermissions;
1282 1284
1283 agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; 1285 agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm;