From 79173984513552f33c9ce4e5f015475501286871 Mon Sep 17 00:00:00 2001 From: MW Date: Sun, 29 Jun 2008 13:52:03 +0000 Subject: added patch 1633, thanks Melanie. Although I think a bit of abstraction needs to be done to make it easy to override the deleting off the inventory item when rezzing a object. --- OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes') diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 2b3ddaa..513d40d 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs @@ -1843,15 +1843,18 @@ namespace OpenSim.Region.Environment.Scenes if (rootPart.OwnerID != item.Owner) { - if ((item.CurrentPermissions & 8) != 0) + if (ExternalChecks.ExternalChecksPropagatePermissions()) { - foreach (SceneObjectPart part in partList) + if ((item.CurrentPermissions & 8) != 0) { - part.EveryoneMask = item.EveryOnePermissions; - part.NextOwnerMask = item.NextPermissions; + foreach (SceneObjectPart part in partList) + { + part.EveryoneMask = item.EveryOnePermissions; + part.NextOwnerMask = item.NextPermissions; + } } + group.ApplyNextOwnerPermissions(); } - group.ApplyNextOwnerPermissions(); } foreach (SceneObjectPart part in partList) @@ -1887,6 +1890,12 @@ namespace OpenSim.Region.Environment.Scenes if (!attachment) rootPart.ScheduleFullUpdate(); + if (!ExternalChecks.ExternalChecksBypassPermissions()) + { + if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0) + userInfo.DeleteItem(item.ID); + } + return rootPart.ParentGroup; } } -- cgit v1.1