aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs21
1 files changed, 15 insertions, 6 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index d134ea3..2b3ddaa 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -1905,7 +1905,7 @@ namespace OpenSim.Region.Environment.Scenes
1905 /// <param name="vel"></param> 1905 /// <param name="vel"></param>
1906 /// <param name="param"></param> 1906 /// <param name="param"></param>
1907 /// <returns></returns> 1907 /// <returns></returns>
1908 public virtual SceneObjectGroup RezObject(TaskInventoryItem item, LLVector3 pos, LLQuaternion rot, LLVector3 vel, int param) 1908 public virtual SceneObjectGroup RezObject(SceneObjectPart sourcePart, TaskInventoryItem item, LLVector3 pos, LLQuaternion rot, LLVector3 vel, int param)
1909 { 1909 {
1910 // Rez object 1910 // Rez object
1911 if (item != null) 1911 if (item != null)
@@ -1942,15 +1942,18 @@ namespace OpenSim.Region.Environment.Scenes
1942 1942
1943 if (rootPart.OwnerID != item.OwnerID) 1943 if (rootPart.OwnerID != item.OwnerID)
1944 { 1944 {
1945 if ((item.OwnerMask & 8) != 0) 1945 if (ExternalChecks.ExternalChecksPropagatePermissions())
1946 { 1946 {
1947 foreach (SceneObjectPart part in partList) 1947 if ((item.OwnerMask & 8) != 0)
1948 { 1948 {
1949 part.EveryoneMask = item.EveryoneMask; 1949 foreach (SceneObjectPart part in partList)
1950 part.NextOwnerMask = item.NextOwnerMask; 1950 {
1951 part.EveryoneMask = item.EveryoneMask;
1952 part.NextOwnerMask = item.NextOwnerMask;
1953 }
1951 } 1954 }
1955 group.ApplyNextOwnerPermissions();
1952 } 1956 }
1953 group.ApplyNextOwnerPermissions();
1954 } 1957 }
1955 1958
1956 foreach (SceneObjectPart part in partList) 1959 foreach (SceneObjectPart part in partList)
@@ -1977,6 +1980,12 @@ namespace OpenSim.Region.Environment.Scenes
1977 group.Velocity = vel; 1980 group.Velocity = vel;
1978 group.CreateScriptInstances(param, true); 1981 group.CreateScriptInstances(param, true);
1979 rootPart.ScheduleFullUpdate(); 1982 rootPart.ScheduleFullUpdate();
1983
1984 if (!ExternalChecks.ExternalChecksBypassPermissions())
1985 {
1986 if ((item.OwnerMask & (uint)PermissionMask.Copy) == 0)
1987 sourcePart.RemoveInventoryItem(item.ItemID);
1988 }
1980 return rootPart.ParentGroup; 1989 return rootPart.ParentGroup;
1981 } 1990 }
1982 } 1991 }