diff options
author | Melanie | 2010-06-27 20:04:39 +0100 |
---|---|---|
committer | Melanie | 2010-06-27 20:04:39 +0100 |
commit | 205d2496f6251244f69004c70b8c5db63b55bc98 (patch) | |
tree | 74f8ead94ad3f9e09eb12ec8b26f9a95dfa5da74 | |
parent | don't report the null uuid as a missing asset on saving oars/iars (diff) | |
download | opensim-SC_OLD-205d2496f6251244f69004c70b8c5db63b55bc98.zip opensim-SC_OLD-205d2496f6251244f69004c70b8c5db63b55bc98.tar.gz opensim-SC_OLD-205d2496f6251244f69004c70b8c5db63b55bc98.tar.bz2 opensim-SC_OLD-205d2496f6251244f69004c70b8c5db63b55bc98.tar.xz |
Fix permission propagation to prevent permanently locked objects from being
created.
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 6 |
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 | } |