aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Framework/InventoryAccess
diff options
context:
space:
mode:
authorUbitUmarov2017-01-14 14:19:58 +0000
committerUbitUmarov2017-01-14 14:21:50 +0000
commitfb86e415615ddfd917485daf5e4a4f2f0486359f (patch)
treecfad6c25fe2d253ae970d089c54236a5fc2187d9 /OpenSim/Region/CoreModules/Framework/InventoryAccess
parentfix: send viewers the Everyone permitions of items inside other objects (diff)
downloadopensim-SC_OLD-fb86e415615ddfd917485daf5e4a4f2f0486359f.zip
opensim-SC_OLD-fb86e415615ddfd917485daf5e4a4f2f0486359f.tar.gz
opensim-SC_OLD-fb86e415615ddfd917485daf5e4a4f2f0486359f.tar.bz2
opensim-SC_OLD-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"
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework/InventoryAccess')
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs11
1 files changed, 7 insertions, 4 deletions
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