diff options
Diffstat (limited to 'OpenSim')
3 files changed, 23 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index ecc6180..204ba39 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -1516,6 +1516,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
1516 | permissionToDelete = false; //Just taking copy! | 1516 | permissionToDelete = false; //Just taking copy! |
1517 | 1517 | ||
1518 | } | 1518 | } |
1519 | else if (DeRezPacket.AgentBlock.Destination == 5) //God take copy | ||
1520 | { | ||
1521 | permissionToTake = ExternalChecks.ExternalChecksCanBeGodLike(remoteClient.AgentId); | ||
1522 | permissionToDelete = false; //Just taking copy! | ||
1523 | |||
1524 | } | ||
1519 | else if (DeRezPacket.AgentBlock.Destination == 4) //Take | 1525 | else if (DeRezPacket.AgentBlock.Destination == 4) //Take |
1520 | { | 1526 | { |
1521 | // Take | 1527 | // Take |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs index 5b57e73..34e5305 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs | |||
@@ -733,6 +733,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
733 | TriggerScriptChangedEvent(Changed.OWNER); | 733 | TriggerScriptChangedEvent(Changed.OWNER); |
734 | } | 734 | } |
735 | 735 | ||
736 | public void ApplyGodPermissions(uint perms) | ||
737 | { | ||
738 | foreach (TaskInventoryItem item in m_taskInventory.Values) | ||
739 | { | ||
740 | item.CurrentPermissions = perms; | ||
741 | item.BasePermissions = perms; | ||
742 | } | ||
743 | } | ||
744 | |||
736 | public bool ContainsScripts() | 745 | public bool ContainsScripts() |
737 | { | 746 | { |
738 | foreach (TaskInventoryItem item in m_taskInventory.Values) | 747 | foreach (TaskInventoryItem item in m_taskInventory.Values) |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 91249f9..f4ada1a 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -3037,6 +3037,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
3037 | { | 3037 | { |
3038 | switch (field) | 3038 | switch (field) |
3039 | { | 3039 | { |
3040 | case 1: | ||
3041 | if (god) | ||
3042 | { | ||
3043 | _baseMask = ApplyMask(_baseMask, set, mask); | ||
3044 | ApplyGodPermissions(_baseMask); | ||
3045 | } | ||
3046 | |||
3047 | break; | ||
3040 | case 2: | 3048 | case 2: |
3041 | _ownerMask = ApplyMask(_ownerMask, set, mask) & | 3049 | _ownerMask = ApplyMask(_ownerMask, set, mask) & |
3042 | baseMask; | 3050 | baseMask; |