diff options
4 files changed, 21 insertions, 7 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 724c8bc..bd0c146 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -657,8 +657,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
657 | public void ProcessSpecificPacketAsync(object state) | 657 | public void ProcessSpecificPacketAsync(object state) |
658 | { | 658 | { |
659 | AsyncPacketProcess packetObject = (AsyncPacketProcess)state; | 659 | AsyncPacketProcess packetObject = (AsyncPacketProcess)state; |
660 | packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack); | 660 | packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack); |
661 | |||
662 | } | 661 | } |
663 | 662 | ||
664 | #endregion Packet Handling | 663 | #endregion Packet Handling |
@@ -7662,12 +7661,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7662 | newTaskItem.GroupPermissions = updatetask.InventoryData.GroupMask; | 7661 | newTaskItem.GroupPermissions = updatetask.InventoryData.GroupMask; |
7663 | newTaskItem.EveryonePermissions = updatetask.InventoryData.EveryoneMask; | 7662 | newTaskItem.EveryonePermissions = updatetask.InventoryData.EveryoneMask; |
7664 | newTaskItem.NextPermissions = updatetask.InventoryData.NextOwnerMask; | 7663 | newTaskItem.NextPermissions = updatetask.InventoryData.NextOwnerMask; |
7664 | |||
7665 | // Unused? Clicking share with group sets GroupPermissions instead, so perhaps this is something | ||
7666 | // different | ||
7665 | //newTaskItem.GroupOwned=updatetask.InventoryData.GroupOwned; | 7667 | //newTaskItem.GroupOwned=updatetask.InventoryData.GroupOwned; |
7666 | newTaskItem.Type = updatetask.InventoryData.Type; | 7668 | newTaskItem.Type = updatetask.InventoryData.Type; |
7667 | newTaskItem.InvType = updatetask.InventoryData.InvType; | 7669 | newTaskItem.InvType = updatetask.InventoryData.InvType; |
7668 | newTaskItem.Flags = updatetask.InventoryData.Flags; | 7670 | newTaskItem.Flags = updatetask.InventoryData.Flags; |
7669 | //newTaskItem.SaleType=updatetask.InventoryData.SaleType; | 7671 | //newTaskItem.SaleType=updatetask.InventoryData.SaleType; |
7670 | //newTaskItem.SalePrice=updatetask.InventoryData.SalePrice;; | 7672 | //newTaskItem.SalePrice=updatetask.InventoryData.SalePrice; |
7671 | newTaskItem.Name = Util.FieldToString(updatetask.InventoryData.Name); | 7673 | newTaskItem.Name = Util.FieldToString(updatetask.InventoryData.Name); |
7672 | newTaskItem.Description = Util.FieldToString(updatetask.InventoryData.Description); | 7674 | newTaskItem.Description = Util.FieldToString(updatetask.InventoryData.Description); |
7673 | newTaskItem.CreationDate = (uint)updatetask.InventoryData.CreationDate; | 7675 | newTaskItem.CreationDate = (uint)updatetask.InventoryData.CreationDate; |
@@ -7675,7 +7677,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
7675 | newTaskItem, updatetask.UpdateData.LocalID); | 7677 | newTaskItem, updatetask.UpdateData.LocalID); |
7676 | } | 7678 | } |
7677 | } | 7679 | } |
7678 | } | 7680 | } |
7679 | 7681 | ||
7680 | return true; | 7682 | return true; |
7681 | } | 7683 | } |
@@ -11590,6 +11592,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
11590 | public PacketMethod method; | 11592 | public PacketMethod method; |
11591 | public bool Async; | 11593 | public bool Async; |
11592 | } | 11594 | } |
11595 | |||
11593 | public class AsyncPacketProcess | 11596 | public class AsyncPacketProcess |
11594 | { | 11597 | { |
11595 | public bool result = false; | 11598 | public bool result = false; |
@@ -11632,4 +11635,4 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
11632 | OutPacket(packet, ThrottleOutPacketType.Task); | 11635 | OutPacket(packet, ThrottleOutPacketType.Task); |
11633 | } | 11636 | } |
11634 | } | 11637 | } |
11635 | } | 11638 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 42a748f..26d3372 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1222,6 +1222,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1222 | item = CommsManager.UserProfileCacheService.LibraryRoot.FindItem(itemID); | 1222 | item = CommsManager.UserProfileCacheService.LibraryRoot.FindItem(itemID); |
1223 | } | 1223 | } |
1224 | 1224 | ||
1225 | // If we've found the item in the user's inventory or in the library | ||
1225 | if (item != null) | 1226 | if (item != null) |
1226 | { | 1227 | { |
1227 | part.ParentGroup.AddInventoryItem(remoteClient, primLocalID, item, copyID); | 1228 | part.ParentGroup.AddInventoryItem(remoteClient, primLocalID, item, copyID); |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs index 71354b4..4034744 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | |||
@@ -173,7 +173,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
173 | item.NextPermissions; | 173 | item.NextPermissions; |
174 | taskItem.NextPermissions = item.NextPermissions; | 174 | taskItem.NextPermissions = item.NextPermissions; |
175 | taskItem.CurrentPermissions |= 8; | 175 | taskItem.CurrentPermissions |= 8; |
176 | } else { | 176 | } |
177 | else | ||
178 | { | ||
177 | taskItem.BasePermissions = item.BasePermissions; | 179 | taskItem.BasePermissions = item.BasePermissions; |
178 | taskItem.CurrentPermissions = item.CurrentPermissions; | 180 | taskItem.CurrentPermissions = item.CurrentPermissions; |
179 | taskItem.CurrentPermissions |= 8; | 181 | taskItem.CurrentPermissions |= 8; |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 21ca1de..d175695 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -528,6 +528,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
528 | item.ParentID = m_part.UUID; | 528 | item.ParentID = m_part.UUID; |
529 | item.ParentPartID = m_part.UUID; | 529 | item.ParentPartID = m_part.UUID; |
530 | item.Name = name; | 530 | item.Name = name; |
531 | item.GroupID = m_part.GroupID; | ||
531 | 532 | ||
532 | lock (m_items) | 533 | lock (m_items) |
533 | { | 534 | { |
@@ -620,6 +621,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
620 | item.ParentID = m_part.UUID; | 621 | item.ParentID = m_part.UUID; |
621 | item.ParentPartID = m_part.UUID; | 622 | item.ParentPartID = m_part.UUID; |
622 | item.Flags = m_items[item.ItemID].Flags; | 623 | item.Flags = m_items[item.ItemID].Flags; |
624 | |||
625 | // If group permissions have been set on, check that the groupID is up to date in case it has | ||
626 | // changed since permissions were last set. | ||
627 | if (item.GroupPermissions != (uint)PermissionMask.None) | ||
628 | item.GroupID = m_part.GroupID; | ||
629 | |||
623 | if (item.AssetID == UUID.Zero) | 630 | if (item.AssetID == UUID.Zero) |
624 | { | 631 | { |
625 | item.AssetID = m_items[item.ItemID].AssetID; | 632 | item.AssetID = m_items[item.ItemID].AssetID; |
@@ -771,6 +778,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
771 | uint everyoneMask = 0; | 778 | uint everyoneMask = 0; |
772 | uint baseMask = item.BasePermissions; | 779 | uint baseMask = item.BasePermissions; |
773 | uint ownerMask = item.CurrentPermissions; | 780 | uint ownerMask = item.CurrentPermissions; |
781 | uint groupMask = item.GroupPermissions; | ||
774 | 782 | ||
775 | invString.AddItemStart(); | 783 | invString.AddItemStart(); |
776 | invString.AddNameValueLine("item_id", item.ItemID.ToString()); | 784 | invString.AddNameValueLine("item_id", item.ItemID.ToString()); |
@@ -780,7 +788,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
780 | 788 | ||
781 | invString.AddNameValueLine("base_mask", Utils.UIntToHexString(baseMask)); | 789 | invString.AddNameValueLine("base_mask", Utils.UIntToHexString(baseMask)); |
782 | invString.AddNameValueLine("owner_mask", Utils.UIntToHexString(ownerMask)); | 790 | invString.AddNameValueLine("owner_mask", Utils.UIntToHexString(ownerMask)); |
783 | invString.AddNameValueLine("group_mask", Utils.UIntToHexString(0)); | 791 | invString.AddNameValueLine("group_mask", Utils.UIntToHexString(groupMask)); |
784 | invString.AddNameValueLine("everyone_mask", Utils.UIntToHexString(everyoneMask)); | 792 | invString.AddNameValueLine("everyone_mask", Utils.UIntToHexString(everyoneMask)); |
785 | invString.AddNameValueLine("next_owner_mask", Utils.UIntToHexString(item.NextPermissions)); | 793 | invString.AddNameValueLine("next_owner_mask", Utils.UIntToHexString(item.NextPermissions)); |
786 | 794 | ||