aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs13
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs1
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs10
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