diff options
author | UbitUmarov | 2017-01-17 01:22:44 +0000 |
---|---|---|
committer | UbitUmarov | 2017-01-17 01:22:44 +0000 |
commit | 11134072806f43ddd35fe2a70331a4877ab1b38f (patch) | |
tree | bf573760bda81a9e0442df896f082b8d8440236d /OpenSim | |
parent | start adding calls to effective permissions aggregation on changes; rearrange... (diff) | |
download | opensim-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')
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; |