diff options
author | UbitUmarov | 2017-01-19 17:45:54 +0000 |
---|---|---|
committer | UbitUmarov | 2017-01-19 17:45:54 +0000 |
commit | d8108ab740d9a6ad782476fc43b62ec4c36b30b3 (patch) | |
tree | 6b4c53cd221ede82abc40b3eda6f0608f827f586 /OpenSim/Region/Framework | |
parent | add a comment about parts permissions aggregation (diff) | |
download | opensim-SC_OLD-d8108ab740d9a6ad782476fc43b62ec4c36b30b3.zip opensim-SC_OLD-d8108ab740d9a6ad782476fc43b62ec4c36b30b3.tar.gz opensim-SC_OLD-d8108ab740d9a6ad782476fc43b62ec4c36b30b3.tar.bz2 opensim-SC_OLD-d8108ab740d9a6ad782476fc43b62ec4c36b30b3.tar.xz |
change CanDeedObject. WARNING like on other grids, if you do not set next owner rights on object and ALL ITS CONTENTS, you may loose all rights on it
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 13 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Permissions.cs | 11 |
2 files changed, 10 insertions, 14 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index ad913f7..3230a2b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -2717,9 +2717,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2717 | { | 2717 | { |
2718 | if (ownerID != UUID.Zero) | 2718 | if (ownerID != UUID.Zero) |
2719 | return; | 2719 | return; |
2720 | |||
2721 | if (!Permissions.CanDeedObject(remoteClient.AgentId, groupID)) | ||
2722 | return; | ||
2723 | } | 2720 | } |
2724 | 2721 | ||
2725 | List<SceneObjectGroup> groups = new List<SceneObjectGroup>(); | 2722 | List<SceneObjectGroup> groups = new List<SceneObjectGroup>(); |
@@ -2750,15 +2747,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2750 | child.TriggerScriptChangedEvent(Changed.OWNER); | 2747 | child.TriggerScriptChangedEvent(Changed.OWNER); |
2751 | } | 2748 | } |
2752 | } | 2749 | } |
2753 | else // The object was deeded to the group | 2750 | else // The object deeded to the group |
2754 | { | 2751 | { |
2755 | if (!Permissions.IsGod(remoteClient.AgentId) && sog.OwnerID != remoteClient.AgentId) | 2752 | if (!Permissions.CanDeedObject(remoteClient, sog, groupID)) |
2756 | continue; | ||
2757 | |||
2758 | if (!Permissions.CanTransferObject(sog.UUID, groupID)) | ||
2759 | continue; | ||
2760 | |||
2761 | if (sog.GroupID != groupID) | ||
2762 | continue; | 2753 | continue; |
2763 | 2754 | ||
2764 | sog.SetOwnerId(groupID); | 2755 | sog.SetOwnerId(groupID); |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs index 3491792..a7f3dd7 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs | |||
@@ -78,7 +78,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
78 | public delegate bool AbandonParcelHandler(UUID user, ILandObject parcel, Scene scene); | 78 | public delegate bool AbandonParcelHandler(UUID user, ILandObject parcel, Scene scene); |
79 | public delegate bool ReclaimParcelHandler(UUID user, ILandObject parcel, Scene scene); | 79 | public delegate bool ReclaimParcelHandler(UUID user, ILandObject parcel, Scene scene); |
80 | public delegate bool DeedParcelHandler(UUID user, ILandObject parcel, Scene scene); | 80 | public delegate bool DeedParcelHandler(UUID user, ILandObject parcel, Scene scene); |
81 | public delegate bool DeedObjectHandler(UUID user, UUID group, Scene scene); | 81 | public delegate bool DeedObjectHandler(ScenePresence sp, SceneObjectGroup sog, UUID targetGroupID); |
82 | public delegate bool BuyLandHandler(UUID user, ILandObject parcel, Scene scene); | 82 | public delegate bool BuyLandHandler(UUID user, ILandObject parcel, Scene scene); |
83 | public delegate bool LinkObjectHandler(UUID user, UUID objectID); | 83 | public delegate bool LinkObjectHandler(UUID user, UUID objectID); |
84 | public delegate bool DelinkObjectHandler(UUID user, UUID objectID); | 84 | public delegate bool DelinkObjectHandler(UUID user, UUID objectID); |
@@ -934,15 +934,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
934 | return true; | 934 | return true; |
935 | } | 935 | } |
936 | 936 | ||
937 | public bool CanDeedObject(UUID user, UUID group) | 937 | public bool CanDeedObject(IClientAPI client, SceneObjectGroup sog, UUID targetGroupID) |
938 | { | 938 | { |
939 | DeedObjectHandler handler = OnDeedObject; | 939 | DeedObjectHandler handler = OnDeedObject; |
940 | if (handler != null) | 940 | if (handler != null) |
941 | { | 941 | { |
942 | if(sog == null || client == null || client.SceneAgent == null || targetGroupID == UUID.Zero) | ||
943 | return false; | ||
944 | |||
945 | ScenePresence sp = client.SceneAgent as ScenePresence; | ||
946 | |||
942 | Delegate[] list = handler.GetInvocationList(); | 947 | Delegate[] list = handler.GetInvocationList(); |
943 | foreach (DeedObjectHandler h in list) | 948 | foreach (DeedObjectHandler h in list) |
944 | { | 949 | { |
945 | if (h(user, group, m_scene) == false) | 950 | if (h(sp, sog, targetGroupID) == false) |
946 | return false; | 951 | return false; |
947 | } | 952 | } |
948 | } | 953 | } |