aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs15
-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, 22 insertions, 8 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 25f6ef0..7ccdd58 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -669,8 +669,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
669 public void ProcessSpecificPacketAsync(object state) 669 public void ProcessSpecificPacketAsync(object state)
670 { 670 {
671 AsyncPacketProcess packetObject = (AsyncPacketProcess)state; 671 AsyncPacketProcess packetObject = (AsyncPacketProcess)state;
672 packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack); 672 packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack);
673
674 } 673 }
675 674
676 #endregion Packet Handling 675 #endregion Packet Handling
@@ -7683,12 +7682,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
7683 newTaskItem.GroupPermissions = updatetask.InventoryData.GroupMask; 7682 newTaskItem.GroupPermissions = updatetask.InventoryData.GroupMask;
7684 newTaskItem.EveryonePermissions = updatetask.InventoryData.EveryoneMask; 7683 newTaskItem.EveryonePermissions = updatetask.InventoryData.EveryoneMask;
7685 newTaskItem.NextPermissions = updatetask.InventoryData.NextOwnerMask; 7684 newTaskItem.NextPermissions = updatetask.InventoryData.NextOwnerMask;
7685
7686 // Unused? Clicking share with group sets GroupPermissions instead, so perhaps this is something
7687 // different
7686 //newTaskItem.GroupOwned=updatetask.InventoryData.GroupOwned; 7688 //newTaskItem.GroupOwned=updatetask.InventoryData.GroupOwned;
7687 newTaskItem.Type = updatetask.InventoryData.Type; 7689 newTaskItem.Type = updatetask.InventoryData.Type;
7688 newTaskItem.InvType = updatetask.InventoryData.InvType; 7690 newTaskItem.InvType = updatetask.InventoryData.InvType;
7689 newTaskItem.Flags = updatetask.InventoryData.Flags; 7691 newTaskItem.Flags = updatetask.InventoryData.Flags;
7690 //newTaskItem.SaleType=updatetask.InventoryData.SaleType; 7692 //newTaskItem.SaleType=updatetask.InventoryData.SaleType;
7691 //newTaskItem.SalePrice=updatetask.InventoryData.SalePrice;; 7693 //newTaskItem.SalePrice=updatetask.InventoryData.SalePrice;
7692 newTaskItem.Name = Util.FieldToString(updatetask.InventoryData.Name); 7694 newTaskItem.Name = Util.FieldToString(updatetask.InventoryData.Name);
7693 newTaskItem.Description = Util.FieldToString(updatetask.InventoryData.Description); 7695 newTaskItem.Description = Util.FieldToString(updatetask.InventoryData.Description);
7694 newTaskItem.CreationDate = (uint)updatetask.InventoryData.CreationDate; 7696 newTaskItem.CreationDate = (uint)updatetask.InventoryData.CreationDate;
@@ -7696,7 +7698,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
7696 newTaskItem, updatetask.UpdateData.LocalID); 7698 newTaskItem, updatetask.UpdateData.LocalID);
7697 } 7699 }
7698 } 7700 }
7699 } 7701 }
7700 7702
7701 return true; 7703 return true;
7702 } 7704 }
@@ -11088,7 +11090,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11088 { 11090 {
11089 if (m_debugPacketLevel >= 255) 11091 if (m_debugPacketLevel >= 255)
11090 m_log.DebugFormat("[CLIENT]: Packet IN {0}", Pack.Type); 11092 m_log.DebugFormat("[CLIENT]: Packet IN {0}", Pack.Type);
11091 11093
11092 if (!ProcessPacketMethod(Pack)) 11094 if (!ProcessPacketMethod(Pack))
11093 m_log.Warn("[CLIENT]: unhandled packet " + Pack.Type); 11095 m_log.Warn("[CLIENT]: unhandled packet " + Pack.Type);
11094 11096
@@ -11615,6 +11617,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11615 public PacketMethod method; 11617 public PacketMethod method;
11616 public bool Async; 11618 public bool Async;
11617 } 11619 }
11620
11618 public class AsyncPacketProcess 11621 public class AsyncPacketProcess
11619 { 11622 {
11620 public bool result = false; 11623 public bool result = false;
@@ -11692,4 +11695,4 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11692 OutPacket(dialog, ThrottleOutPacketType.Task); 11695 OutPacket(dialog, ThrottleOutPacketType.Task);
11693 } 11696 }
11694 } 11697 }
11695} 11698} \ 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 31c0be1..3b7f38e 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1160,6 +1160,7 @@ namespace OpenSim.Region.Framework.Scenes
1160 item = LibraryService.LibraryRootFolder.FindItem(itemID); 1160 item = LibraryService.LibraryRootFolder.FindItem(itemID);
1161 } 1161 }
1162 1162
1163 // If we've found the item in the user's inventory or in the library
1163 if (item != null) 1164 if (item != null)
1164 { 1165 {
1165 part.ParentGroup.AddInventoryItem(remoteClient, primLocalID, item, copyID); 1166 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 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