diff options
Diffstat (limited to 'OpenSim/Region/Framework')
-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 | { |