diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 77bf6fe..2e13f90 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -527,6 +527,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
527 | item.ParentID = m_part.UUID; | 527 | item.ParentID = m_part.UUID; |
528 | item.ParentPartID = m_part.UUID; | 528 | item.ParentPartID = m_part.UUID; |
529 | item.Name = name; | 529 | item.Name = name; |
530 | item.GroupID = m_part.GroupID; | ||
530 | 531 | ||
531 | lock (m_items) | 532 | lock (m_items) |
532 | { | 533 | { |
@@ -619,6 +620,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
619 | item.ParentID = m_part.UUID; | 620 | item.ParentID = m_part.UUID; |
620 | item.ParentPartID = m_part.UUID; | 621 | item.ParentPartID = m_part.UUID; |
621 | item.Flags = m_items[item.ItemID].Flags; | 622 | item.Flags = m_items[item.ItemID].Flags; |
623 | |||
624 | // If group permissions have been set on, check that the groupID is up to date in case it has | ||
625 | // changed since permissions were last set. | ||
626 | if (item.GroupPermissions != (uint)PermissionMask.None) | ||
627 | item.GroupID = m_part.GroupID; | ||
628 | |||
622 | if (item.AssetID == UUID.Zero) | 629 | if (item.AssetID == UUID.Zero) |
623 | { | 630 | { |
624 | item.AssetID = m_items[item.ItemID].AssetID; | 631 | item.AssetID = m_items[item.ItemID].AssetID; |
@@ -770,6 +777,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
770 | uint everyoneMask = 0; | 777 | uint everyoneMask = 0; |
771 | uint baseMask = item.BasePermissions; | 778 | uint baseMask = item.BasePermissions; |
772 | uint ownerMask = item.CurrentPermissions; | 779 | uint ownerMask = item.CurrentPermissions; |
780 | uint groupMask = item.GroupPermissions; | ||
773 | 781 | ||
774 | invString.AddItemStart(); | 782 | invString.AddItemStart(); |
775 | invString.AddNameValueLine("item_id", item.ItemID.ToString()); | 783 | invString.AddNameValueLine("item_id", item.ItemID.ToString()); |
@@ -779,7 +787,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
779 | 787 | ||
780 | invString.AddNameValueLine("base_mask", Utils.UIntToHexString(baseMask)); | 788 | invString.AddNameValueLine("base_mask", Utils.UIntToHexString(baseMask)); |
781 | invString.AddNameValueLine("owner_mask", Utils.UIntToHexString(ownerMask)); | 789 | invString.AddNameValueLine("owner_mask", Utils.UIntToHexString(ownerMask)); |
782 | invString.AddNameValueLine("group_mask", Utils.UIntToHexString(0)); | 790 | invString.AddNameValueLine("group_mask", Utils.UIntToHexString(groupMask)); |
783 | invString.AddNameValueLine("everyone_mask", Utils.UIntToHexString(everyoneMask)); | 791 | invString.AddNameValueLine("everyone_mask", Utils.UIntToHexString(everyoneMask)); |
784 | invString.AddNameValueLine("next_owner_mask", Utils.UIntToHexString(item.NextPermissions)); | 792 | invString.AddNameValueLine("next_owner_mask", Utils.UIntToHexString(item.NextPermissions)); |
785 | 793 | ||