diff options
author | Melanie Thielker | 2009-06-09 08:15:34 +0000 |
---|---|---|
committer | Melanie Thielker | 2009-06-09 08:15:34 +0000 |
commit | 9c726fb178ce329e44fca9bca79a858f8a9ff4ae (patch) | |
tree | 042d781206ca828c44df463446e801c29e724dd8 /OpenSim/Region/Framework/Scenes | |
parent | From: Alan Webb <alan_webb@us.ibm.com> (diff) | |
download | opensim-SC_OLD-9c726fb178ce329e44fca9bca79a858f8a9ff4ae.zip opensim-SC_OLD-9c726fb178ce329e44fca9bca79a858f8a9ff4ae.tar.gz opensim-SC_OLD-9c726fb178ce329e44fca9bca79a858f8a9ff4ae.tar.bz2 opensim-SC_OLD-9c726fb178ce329e44fca9bca79a858f8a9ff4ae.tar.xz |
Thank you Snoopy, for a patch that implements group permissions.
Applied with changes:
- removed spammy debug message
- corrected tab formatting
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 6efcaa7..a2a7392 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1526,10 +1526,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
1526 | return; | 1526 | return; |
1527 | 1527 | ||
1528 | if (part.OwnerID != remoteClient.AgentId) | 1528 | if (part.OwnerID != remoteClient.AgentId) |
1529 | return; | 1529 | { |
1530 | 1530 | // Group permissions | |
1531 | if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0) | 1531 | if ( (part.GroupID == UUID.Zero) || (remoteClient.GetGroupPowers(part.GroupID) == 0) || ((part.GroupMask & (uint)PermissionMask.Modify) == 0) ) |
1532 | return; | 1532 | return; |
1533 | } else { | ||
1534 | if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0) | ||
1535 | return; | ||
1536 | } | ||
1533 | 1537 | ||
1534 | if (!Permissions.CanCreateObjectInventory( | 1538 | if (!Permissions.CanCreateObjectInventory( |
1535 | itemBase.InvType, part.UUID, remoteClient.AgentId)) | 1539 | itemBase.InvType, part.UUID, remoteClient.AgentId)) |
@@ -1598,13 +1602,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
1598 | destId); | 1602 | destId); |
1599 | return; | 1603 | return; |
1600 | } | 1604 | } |
1601 | 1605 | ||
1602 | // Must own the object, and have modify rights | 1606 | // Must own the object, and have modify rights |
1603 | if (srcPart.OwnerID != destPart.OwnerID) | 1607 | if (srcPart.OwnerID != destPart.OwnerID) |
1604 | return; | 1608 | { |
1605 | 1609 | // Group permissions | |
1606 | if ((destPart.OwnerMask & (uint)PermissionMask.Modify) == 0) | 1610 | if ( (destPart.GroupID == UUID.Zero) || (destPart.GroupID != srcPart.GroupID) || |
1607 | return; | 1611 | ((destPart.GroupMask & (uint)PermissionMask.Modify) == 0) ) |
1612 | return; | ||
1613 | } else { | ||
1614 | if ((destPart.OwnerMask & (uint)PermissionMask.Modify) == 0) | ||
1615 | return; | ||
1616 | } | ||
1608 | 1617 | ||
1609 | if (destPart.ScriptAccessPin != pin) | 1618 | if (destPart.ScriptAccessPin != pin) |
1610 | { | 1619 | { |