diff options
author | UbitUmarov | 2017-01-14 14:19:58 +0000 |
---|---|---|
committer | UbitUmarov | 2017-01-14 14:21:50 +0000 |
commit | fb86e415615ddfd917485daf5e4a4f2f0486359f (patch) | |
tree | cfad6c25fe2d253ae970d089c54236a5fc2187d9 | |
parent | fix: send viewers the Everyone permitions of items inside other objects (diff) | |
download | opensim-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"
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 | { |