aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorUbitUmarov2017-01-14 14:19:58 +0000
committerUbitUmarov2017-01-14 14:21:50 +0000
commitfb86e415615ddfd917485daf5e4a4f2f0486359f (patch)
treecfad6c25fe2d253ae970d089c54236a5fc2187d9
parentfix: send viewers the Everyone permitions of items inside other objects (diff)
downloadopensim-SC-fb86e415615ddfd917485daf5e4a4f2f0486359f.zip
opensim-SC-fb86e415615ddfd917485daf5e4a4f2f0486359f.tar.gz
opensim-SC-fb86e415615ddfd917485daf5e4a4f2f0486359f.tar.bz2
opensim-SC-fb86e415615ddfd917485daf5e4a4f2f0486359f.tar.xz
fix incoerent definition of Slam bit (bits 3 and 4 used in diferent
places.) this may still be wrong on other places; Do not loose folded permitions, WARNING MASTER IS NOW UNSTABLE. permissions are still broken"
-rw-r--r--OpenSim/Framework/Util.cs5
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs11
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs3
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs2
4 files changed, 11 insertions, 10 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 6c0142e..2ede363 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -66,9 +66,10 @@ namespace OpenSim.Framework
66 FoldedTransfer = 1, 66 FoldedTransfer = 1,
67 FoldedModify = 1 << 1, 67 FoldedModify = 1 << 1,
68 FoldedCopy = 1 << 2, 68 FoldedCopy = 1 << 2,
69 FoldedExport = 1 << 4, 69 FoldedExport = 1 << 3,
70 Slam = 1 << 4,
70 71
71 FoldedMask = 0x17, 72 FoldedMask = 0x0f,
72 73
73 // 74 //
74 Transfer = 1 << 13, 75 Transfer = 1 << 13,
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index f8a2c2e..6fe7e89 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -605,15 +605,18 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
605 perms &= ~(uint)PermissionMask.Transfer; 605 perms &= ~(uint)PermissionMask.Transfer;
606 if ((nextPerms & (uint)PermissionMask.Modify) == 0) 606 if ((nextPerms & (uint)PermissionMask.Modify) == 0)
607 perms &= ~(uint)PermissionMask.Modify; 607 perms &= ~(uint)PermissionMask.Modify;
608 608
609 item.BasePermissions = perms & so.RootPart.NextOwnerMask; 609// item.BasePermissions = perms & so.RootPart.NextOwnerMask;
610
611 uint nextp = so.RootPart.NextOwnerMask | 0x0f;
612 item.BasePermissions = perms & nextp;
610 item.CurrentPermissions = item.BasePermissions; 613 item.CurrentPermissions = item.BasePermissions;
611 item.NextPermissions = perms & so.RootPart.NextOwnerMask; 614 item.NextPermissions = perms & so.RootPart.NextOwnerMask;
612 item.EveryOnePermissions = so.RootPart.EveryoneMask & so.RootPart.NextOwnerMask; 615 item.EveryOnePermissions = so.RootPart.EveryoneMask & so.RootPart.NextOwnerMask;
613 item.GroupPermissions = so.RootPart.GroupMask & so.RootPart.NextOwnerMask; 616 item.GroupPermissions = so.RootPart.GroupMask & so.RootPart.NextOwnerMask;
614 617
615 // apply next owner perms on rez 618 // apply next owner perms on rez
616 item.CurrentPermissions |= SceneObjectGroup.SLAM; 619 item.CurrentPermissions |= (uint)PermissionMask.Slam;
617 } 620 }
618 else 621 else
619 { 622 {
@@ -1124,7 +1127,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
1124// rootPart.OwnerID, item.Owner, item.CurrentPermissions); 1127// rootPart.OwnerID, item.Owner, item.CurrentPermissions);
1125 1128
1126 if ((rootPart.OwnerID != item.Owner) || 1129 if ((rootPart.OwnerID != item.Owner) ||
1127 (item.CurrentPermissions & 8) != 0 || 1130 (item.CurrentPermissions & (uint)PermissionMask.Slam) != 0 ||
1128 (item.Flags & (uint)InventoryItemFlags.ObjectSlamPerm) != 0) 1131 (item.Flags & (uint)InventoryItemFlags.ObjectSlamPerm) != 0)
1129 { 1132 {
1130 //Need to kill the for sale here 1133 //Need to kill the for sale here
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index bf991c6..3f531be 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -117,9 +117,6 @@ namespace OpenSim.Region.Framework.Scenes
117 NOT_STATUS_ROTATE_Z = 0xF7 117 NOT_STATUS_ROTATE_Z = 0xF7
118 } 118 }
119 119
120 // This flag has the same purpose as InventoryItemFlags.ObjectSlamPerm
121 public static readonly uint SLAM = 16;
122
123 // private PrimCountTaintedDelegate handlerPrimCountTainted = null; 120 // private PrimCountTaintedDelegate handlerPrimCountTainted = null;
124 121
125 /// <summary> 122 /// <summary>
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index b8ac089..557b55e 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -5181,7 +5181,7 @@ SendFullUpdateToClient(remoteClient, Position) ignores position parameter
5181 /// <param name="scene">The scene the prim is being rezzed into</param> 5181 /// <param name="scene">The scene the prim is being rezzed into</param>
5182 public void ApplyPermissionsOnRez(InventoryItemBase item, bool userInventory, Scene scene) 5182 public void ApplyPermissionsOnRez(InventoryItemBase item, bool userInventory, Scene scene)
5183 { 5183 {
5184 if ((OwnerID != item.Owner) || ((item.CurrentPermissions & SceneObjectGroup.SLAM) != 0) || ((item.Flags & (uint)InventoryItemFlags.ObjectSlamPerm) != 0)) 5184 if ((OwnerID != item.Owner) || ((item.CurrentPermissions & (uint)PermissionMask.Slam) != 0) || ((item.Flags & (uint)InventoryItemFlags.ObjectSlamPerm) != 0))
5185 { 5185 {
5186 if (scene.Permissions.PropagatePermissions()) 5186 if (scene.Permissions.PropagatePermissions())
5187 { 5187 {