aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2009-06-21 19:49:11 +0000
committerMelanie Thielker2009-06-21 19:49:11 +0000
commitbc1dce071ac28ff122b2ccb3b0ea6b79f9cca41d (patch)
treea45fac9a50092e1159b6b3333d57ed0ec79161f2
parentDo llEscapeURL with Uri.EscapeDataString instead of Uri.EscapeUriString. (diff)
downloadopensim-SC_OLD-bc1dce071ac28ff122b2ccb3b0ea6b79f9cca41d.zip
opensim-SC_OLD-bc1dce071ac28ff122b2ccb3b0ea6b79f9cca41d.tar.gz
opensim-SC_OLD-bc1dce071ac28ff122b2ccb3b0ea6b79f9cca41d.tar.bz2
opensim-SC_OLD-bc1dce071ac28ff122b2ccb3b0ea6b79f9cca41d.tar.xz
Correct the behaviro of group deeding and llGetOwner() within deeded objects
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs10
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs8
2 files changed, 15 insertions, 3 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 1109e77..4514b1e 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -3295,7 +3295,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3295 ObjectPropertiesFamilyPacket.ObjectDataBlock objPropDB = new ObjectPropertiesFamilyPacket.ObjectDataBlock(); 3295 ObjectPropertiesFamilyPacket.ObjectDataBlock objPropDB = new ObjectPropertiesFamilyPacket.ObjectDataBlock();
3296 objPropDB.RequestFlags = RequestFlags; 3296 objPropDB.RequestFlags = RequestFlags;
3297 objPropDB.ObjectID = ObjectUUID; 3297 objPropDB.ObjectID = ObjectUUID;
3298 objPropDB.OwnerID = OwnerID; 3298 if (OwnerID == GroupID)
3299 objPropDB.OwnerID = UUID.Zero;
3300 else
3301 objPropDB.OwnerID = OwnerID;
3299 objPropDB.GroupID = GroupID; 3302 objPropDB.GroupID = GroupID;
3300 objPropDB.BaseMask = BaseMask; 3303 objPropDB.BaseMask = BaseMask;
3301 objPropDB.OwnerMask = OwnerMask; 3304 objPropDB.OwnerMask = OwnerMask;
@@ -3340,7 +3343,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3340 // proper.ObjectData[0].LastOwnerID = UUID.Zero; 3343 // proper.ObjectData[0].LastOwnerID = UUID.Zero;
3341 3344
3342 proper.ObjectData[0].ObjectID = ObjectUUID; 3345 proper.ObjectData[0].ObjectID = ObjectUUID;
3343 proper.ObjectData[0].OwnerID = OwnerUUID; 3346 if (OwnerUUID == GroupUUID)
3347 proper.ObjectData[0].OwnerID = UUID.Zero;
3348 else
3349 proper.ObjectData[0].OwnerID = OwnerUUID;
3344 proper.ObjectData[0].TouchName = LLUtil.StringToPacketBytes(TouchTitle); 3350 proper.ObjectData[0].TouchName = LLUtil.StringToPacketBytes(TouchTitle);
3345 proper.ObjectData[0].TextureID = TextureID; 3351 proper.ObjectData[0].TextureID = TextureID;
3346 proper.ObjectData[0].SitName = LLUtil.StringToPacketBytes(SitTitle); 3352 proper.ObjectData[0].SitName = LLUtil.StringToPacketBytes(SitTitle);
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index c24ecf5..2fc3791 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -2701,7 +2701,7 @@ namespace OpenSim.Region.Framework.Scenes
2701 2701
2702 foreach (SceneObjectGroup sog in groups) 2702 foreach (SceneObjectGroup sog in groups)
2703 { 2703 {
2704 if (ownerID != null) 2704 if (ownerID != UUID.Zero)
2705 { 2705 {
2706 sog.SetOwnerId(ownerID); 2706 sog.SetOwnerId(ownerID);
2707 sog.SetGroup(groupID, remoteClient); 2707 sog.SetGroup(groupID, remoteClient);
@@ -2727,6 +2727,12 @@ namespace OpenSim.Region.Framework.Scenes
2727 sog.ApplyNextOwnerPermissions(); 2727 sog.ApplyNextOwnerPermissions();
2728 } 2728 }
2729 } 2729 }
2730
2731 foreach (uint localID in localIDs)
2732 {
2733 SceneObjectPart part = GetSceneObjectPart(localID);
2734 part.GetProperties(remoteClient);
2735 }
2730 } 2736 }
2731 } 2737 }
2732} 2738}