diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | 16 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | 10 |
2 files changed, 12 insertions, 14 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 108c9a0..0fbd5e7 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -823,21 +823,19 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
823 | } | 823 | } |
824 | } | 824 | } |
825 | 825 | ||
826 | foreach (SceneObjectPart part in group.Parts) | ||
827 | { | ||
828 | part.LastOwnerID = part.OwnerID; | ||
829 | part.OwnerID = item.Owner; | ||
830 | part.Inventory.ChangeInventoryOwner(item.Owner); | ||
831 | } | ||
832 | |||
826 | group.ApplyNextOwnerPermissions(); | 833 | group.ApplyNextOwnerPermissions(); |
827 | } | 834 | } |
828 | } | 835 | } |
829 | 836 | ||
830 | foreach (SceneObjectPart part in group.Parts) | 837 | foreach (SceneObjectPart part in group.Parts) |
831 | { | 838 | { |
832 | // TODO: Remove the magic number badness | ||
833 | if ((part.OwnerID != item.Owner) || | ||
834 | (item.CurrentPermissions & 16) != 0 || // Magic number | ||
835 | (item.Flags & (uint)InventoryItemFlags.ObjectSlamPerm) != 0) | ||
836 | { | ||
837 | part.LastOwnerID = part.OwnerID; | ||
838 | part.OwnerID = item.Owner; | ||
839 | part.Inventory.ChangeInventoryOwner(item.Owner); | ||
840 | } | ||
841 | if ((item.Flags & (uint)InventoryItemFlags.ObjectOverwriteEveryone) != 0) | 839 | if ((item.Flags & (uint)InventoryItemFlags.ObjectOverwriteEveryone) != 0) |
842 | part.EveryoneMask = item.EveryOnePermissions; | 840 | part.EveryoneMask = item.EveryOnePermissions; |
843 | if ((item.Flags & (uint)InventoryItemFlags.ObjectOverwriteNextOwner) != 0) | 841 | if ((item.Flags & (uint)InventoryItemFlags.ObjectOverwriteNextOwner) != 0) |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 854f1dc..1992956 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -186,12 +186,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
186 | foreach (TaskInventoryItem item in items) | 186 | foreach (TaskInventoryItem item in items) |
187 | { | 187 | { |
188 | if (ownerId != item.OwnerID) | 188 | if (ownerId != item.OwnerID) |
189 | { | ||
190 | item.LastOwnerID = item.OwnerID; | 189 | item.LastOwnerID = item.OwnerID; |
191 | item.OwnerID = ownerId; | 190 | |
192 | item.PermsMask = 0; | 191 | item.OwnerID = ownerId; |
193 | item.PermsGranter = UUID.Zero; | 192 | item.PermsMask = 0; |
194 | } | 193 | item.PermsGranter = UUID.Zero; |
194 | item.OwnerChanged = true; | ||
195 | } | 195 | } |
196 | m_items.LockItemsForWrite(false); | 196 | m_items.LockItemsForWrite(false); |
197 | } | 197 | } |