aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2010-06-27 20:04:39 +0100
committerMelanie2010-06-27 20:04:39 +0100
commit205d2496f6251244f69004c70b8c5db63b55bc98 (patch)
tree74f8ead94ad3f9e09eb12ec8b26f9a95dfa5da74 /OpenSim
parentdon't report the null uuid as a missing asset on saving oars/iars (diff)
downloadopensim-SC-205d2496f6251244f69004c70b8c5db63b55bc98.zip
opensim-SC-205d2496f6251244f69004c70b8c5db63b55bc98.tar.gz
opensim-SC-205d2496f6251244f69004c70b8c5db63b55bc98.tar.bz2
opensim-SC-205d2496f6251244f69004c70b8c5db63b55bc98.tar.xz
Fix permission propagation to prevent permanently locked objects from being
created.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs6
1 files changed, 3 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 64bdc99..750b1f7 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -385,7 +385,7 @@ namespace OpenSim.Region.Framework.Scenes
385 if (Permissions.PropagatePermissions() && recipient != senderId) 385 if (Permissions.PropagatePermissions() && recipient != senderId)
386 { 386 {
387 // First, make sore base is limited to the next perms 387 // First, make sore base is limited to the next perms
388 itemCopy.BasePermissions = item.BasePermissions & item.NextPermissions; 388 itemCopy.BasePermissions = item.BasePermissions & (item.NextPermissions | (uint)PermissionMask.Move);
389 // By default, current equals base 389 // By default, current equals base
390 itemCopy.CurrentPermissions = itemCopy.BasePermissions; 390 itemCopy.CurrentPermissions = itemCopy.BasePermissions;
391 391
@@ -897,7 +897,7 @@ namespace OpenSim.Region.Framework.Scenes
897 897
898 if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions()) 898 if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions())
899 { 899 {
900 agentItem.BasePermissions = taskItem.BasePermissions & taskItem.NextPermissions; 900 agentItem.BasePermissions = taskItem.BasePermissions & (taskItem.NextPermissions | (uint)PermissionMask.Move);
901 if (taskItem.InvType == (int)InventoryType.Object) 901 if (taskItem.InvType == (int)InventoryType.Object)
902 agentItem.CurrentPermissions = agentItem.BasePermissions & ((taskItem.CurrentPermissions & 7) << 13); 902 agentItem.CurrentPermissions = agentItem.BasePermissions & ((taskItem.CurrentPermissions & 7) << 13);
903 agentItem.CurrentPermissions = agentItem.BasePermissions ; 903 agentItem.CurrentPermissions = agentItem.BasePermissions ;
@@ -1092,7 +1092,7 @@ namespace OpenSim.Region.Framework.Scenes
1092 destTaskItem.EveryonePermissions = srcTaskItem.EveryonePermissions & 1092 destTaskItem.EveryonePermissions = srcTaskItem.EveryonePermissions &
1093 srcTaskItem.NextPermissions; 1093 srcTaskItem.NextPermissions;
1094 destTaskItem.BasePermissions = srcTaskItem.BasePermissions & 1094 destTaskItem.BasePermissions = srcTaskItem.BasePermissions &
1095 srcTaskItem.NextPermissions; 1095 (srcTaskItem.NextPermissions | (uint)PermissionMask.Move);
1096 destTaskItem.CurrentPermissions |= 8; // Slam! 1096 destTaskItem.CurrentPermissions |= 8; // Slam!
1097 } 1097 }
1098 } 1098 }