aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs17
1 files changed, 17 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index ca1e0a8..d55311e 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1738,8 +1738,25 @@ namespace OpenSim.Region.Framework.Scenes
1738 // Check if we're allowed to mess with permissions 1738 // Check if we're allowed to mess with permissions
1739 if (!Permissions.IsGod(remoteClient.AgentId)) // Not a god 1739 if (!Permissions.IsGod(remoteClient.AgentId)) // Not a god
1740 { 1740 {
1741 bool noChange;
1741 if (remoteClient.AgentId != part.OwnerID) // Not owner 1742 if (remoteClient.AgentId != part.OwnerID) // Not owner
1742 { 1743 {
1744 noChange = true;
1745 if(itemInfo.OwnerID == UUID.Zero && itemInfo.GroupID != UUID.Zero)
1746 {
1747 if(remoteClient.IsGroupMember(itemInfo.GroupID))
1748 {
1749 ulong powers = remoteClient.GetGroupPowers(itemInfo.GroupID);
1750 if((powers & (ulong)GroupPowers.ObjectManipulate) != 0)
1751 noChange = false;
1752 }
1753 }
1754 }
1755 else
1756 noChange = false;
1757
1758 if(noChange)
1759 {
1743 // Friends and group members can't change any perms 1760 // Friends and group members can't change any perms
1744 itemInfo.BasePermissions = currentItem.BasePermissions; 1761 itemInfo.BasePermissions = currentItem.BasePermissions;
1745 itemInfo.EveryonePermissions = currentItem.EveryonePermissions; 1762 itemInfo.EveryonePermissions = currentItem.EveryonePermissions;