aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2011-04-01 18:49:53 +0200
committerMelanie2011-04-01 18:49:53 +0200
commit95e524dde100aa14d71a49ee5d5f0cc4b5fa45f7 (patch)
treec86ac712915c67bd60f2e47b2ac3665702f3e8aa /OpenSim
parentMake the login service's call to the sim time out quicker so we have a (diff)
downloadopensim-SC-95e524dde100aa14d71a49ee5d5f0cc4b5fa45f7.zip
opensim-SC-95e524dde100aa14d71a49ee5d5f0cc4b5fa45f7.tar.gz
opensim-SC-95e524dde100aa14d71a49ee5d5f0cc4b5fa45f7.tar.bz2
opensim-SC-95e524dde100aa14d71a49ee5d5f0cc4b5fa45f7.tar.xz
A stab at making CHANGED_OWNER work
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs16
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs10
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 }