diff options
author | Robert Adams | 2014-01-11 08:52:23 -0800 |
---|---|---|
committer | Robert Adams | 2014-01-11 08:52:23 -0800 |
commit | 1cf17a3cf7322b79d44ef80b9129c975f0cf4f6f (patch) | |
tree | 125392101f83c8e7cb239848ae7a6cc12595b1a2 /OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |
parent | Merge branch 'master' into varregion (diff) | |
parent | Fix crash in BulletSim which sometimes happens making a linkset physical (diff) | |
download | opensim-SC_OLD-1cf17a3cf7322b79d44ef80b9129c975f0cf4f6f.zip opensim-SC_OLD-1cf17a3cf7322b79d44ef80b9129c975f0cf4f6f.tar.gz opensim-SC_OLD-1cf17a3cf7322b79d44ef80b9129c975f0cf4f6f.tar.bz2 opensim-SC_OLD-1cf17a3cf7322b79d44ef80b9129c975f0cf4f6f.tar.xz |
Merge branch 'master' into varregion
Conflicts:
OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
OpenSim/Region/Framework/Scenes/SceneBase.cs
OpenSim/Services/Interfaces/IGridService.cs
OpenSim/Services/LLLoginService/LLLoginResponse.cs
(conflicts were debug statements that are commented out in master branch)
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.Inventory.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 9ae8612..b86f349 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -669,17 +669,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
669 | // a mask | 669 | // a mask |
670 | if (item.InvType == (int)InventoryType.Object) | 670 | if (item.InvType == (int)InventoryType.Object) |
671 | { | 671 | { |
672 | // Create a safe mask for the current perms | ||
673 | uint foldedPerms = (item.CurrentPermissions & 7) << 13; | ||
674 | foldedPerms |= permsMask; | ||
675 | |||
676 | bool isRootMod = (item.CurrentPermissions & | 672 | bool isRootMod = (item.CurrentPermissions & |
677 | (uint)PermissionMask.Modify) != 0 ? | 673 | (uint)PermissionMask.Modify) != 0 ? |
678 | true : false; | 674 | true : false; |
679 | 675 | ||
680 | // Mask the owner perms to the folded perms | 676 | // Mask the owner perms to the folded perms |
681 | ownerPerms &= foldedPerms; | 677 | PermissionsUtil.ApplyFoldedPermissions(item.CurrentPermissions, ref ownerPerms); |
682 | basePerms &= foldedPerms; | 678 | PermissionsUtil.ApplyFoldedPermissions(item.CurrentPermissions, ref basePerms); |
683 | 679 | ||
684 | // If the root was mod, let the mask reflect that | 680 | // If the root was mod, let the mask reflect that |
685 | // We also need to adjust the base here, because | 681 | // We also need to adjust the base here, because |
@@ -1209,9 +1205,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
1209 | { | 1205 | { |
1210 | agentItem.BasePermissions = taskItem.BasePermissions & (taskItem.NextPermissions | (uint)PermissionMask.Move); | 1206 | agentItem.BasePermissions = taskItem.BasePermissions & (taskItem.NextPermissions | (uint)PermissionMask.Move); |
1211 | if (taskItem.InvType == (int)InventoryType.Object) | 1207 | if (taskItem.InvType == (int)InventoryType.Object) |
1212 | agentItem.CurrentPermissions = agentItem.BasePermissions & (((taskItem.CurrentPermissions & 7) << 13) | (taskItem.CurrentPermissions & (uint)PermissionMask.Move)); | 1208 | { |
1209 | uint perms = taskItem.CurrentPermissions; | ||
1210 | PermissionsUtil.ApplyFoldedPermissions(taskItem.CurrentPermissions, ref perms); | ||
1211 | agentItem.BasePermissions = perms | (uint)PermissionMask.Move; | ||
1212 | agentItem.CurrentPermissions = agentItem.BasePermissions; | ||
1213 | } | ||
1213 | else | 1214 | else |
1215 | { | ||
1214 | agentItem.CurrentPermissions = agentItem.BasePermissions & taskItem.CurrentPermissions; | 1216 | agentItem.CurrentPermissions = agentItem.BasePermissions & taskItem.CurrentPermissions; |
1217 | } | ||
1215 | 1218 | ||
1216 | agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; | 1219 | agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; |
1217 | agentItem.NextPermissions = taskItem.NextPermissions; | 1220 | agentItem.NextPermissions = taskItem.NextPermissions; |