aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorUbitUmarov2017-01-17 01:22:44 +0000
committerUbitUmarov2017-01-17 01:22:44 +0000
commit11134072806f43ddd35fe2a70331a4877ab1b38f (patch)
treebf573760bda81a9e0442df896f082b8d8440236d /OpenSim/Region
parentstart adding calls to effective permissions aggregation on changes; rearrange... (diff)
downloadopensim-SC_OLD-11134072806f43ddd35fe2a70331a4877ab1b38f.zip
opensim-SC_OLD-11134072806f43ddd35fe2a70331a4877ab1b38f.tar.gz
opensim-SC_OLD-11134072806f43ddd35fe2a70331a4877ab1b38f.tar.bz2
opensim-SC_OLD-11134072806f43ddd35fe2a70331a4877ab1b38f.tar.xz
add more calls to effective permissions aggregation; do not change groupmask on deed
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs11
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs3
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs1
4 files changed, 15 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index b37744d..6783ce0 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -1180,6 +1180,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
1180 part.NextOwnerMask = item.NextPermissions & part.BaseMask; 1180 part.NextOwnerMask = item.NextPermissions & part.BaseMask;
1181 } 1181 }
1182 } 1182 }
1183
1183 } 1184 }
1184 } 1185 }
1185 else 1186 else
@@ -1198,6 +1199,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
1198 } 1199 }
1199 1200
1200 rootPart.TrimPermissions(); 1201 rootPart.TrimPermissions();
1202 so.AggregateDeepPerms();
1201 1203
1202 if (isAttachment) 1204 if (isAttachment)
1203 so.FromItemID = item.ID; 1205 so.FromItemID = item.ID;
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index ea100ae..c913271 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -2754,9 +2754,16 @@ namespace OpenSim.Region.Framework.Scenes
2754 continue; 2754 continue;
2755 2755
2756 sog.SetOwnerId(groupID); 2756 sog.SetOwnerId(groupID);
2757 // Make the group mask be the previous owner mask 2757
2758 sog.RootPart.GroupMask = sog.RootPart.OwnerMask; 2758 // this is wrong, GroupMask is used for group sharing, still possible to set
2759 // this whould give owner rights to users that are member of group but don't have role powers to edit
2760// sog.RootPart.GroupMask = sog.RootPart.OwnerMask;
2761
2762 // we should keep all permissions on deed to group
2763 // and with this comented code, if user does not set next permissions on the object
2764 // and on ALL contents of ALL prims, he may loose rights, making the object useless
2759 sog.ApplyNextOwnerPermissions(); 2765 sog.ApplyNextOwnerPermissions();
2766 sog.AggregatePerms();
2760 2767
2761 sog.ScheduleGroupForFullUpdate(); 2768 sog.ScheduleGroupForFullUpdate();
2762 2769
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 639c8dd..033170d 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2764,7 +2764,10 @@ namespace OpenSim.Region.Framework.Scenes
2764 { 2764 {
2765 // Apply Next Owner Permissions if we're not bypassing permissions 2765 // Apply Next Owner Permissions if we're not bypassing permissions
2766 if (!m_scene.Permissions.BypassPermissions()) 2766 if (!m_scene.Permissions.BypassPermissions())
2767 {
2767 ApplyNextOwnerPermissions(); 2768 ApplyNextOwnerPermissions();
2769 AggregatePerms();
2770 }
2768 } 2771 }
2769 2772
2770 rpart.ScheduleFullUpdate(); 2773 rpart.ScheduleFullUpdate();
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
index 4dd8eb1..29d9f08 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
@@ -980,6 +980,7 @@ namespace OpenSim.Region.Framework.Scenes
980 } 980 }
981// old code end 981// old code end
982 rootPart.TrimPermissions(); 982 rootPart.TrimPermissions();
983 group.AggregateDeepPerms();
983 } 984 }
984 985
985 return true; 986 return true;