diff options
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 19 |
1 files changed, 14 insertions, 5 deletions
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 | |||
1843 | 1843 | ||
1844 | if (rootPart.OwnerID != item.Owner) | 1844 | if (rootPart.OwnerID != item.Owner) |
1845 | { | 1845 | { |
1846 | if ((item.CurrentPermissions & 8) != 0) | 1846 | if (ExternalChecks.ExternalChecksPropagatePermissions()) |
1847 | { | 1847 | { |
1848 | foreach (SceneObjectPart part in partList) | 1848 | if ((item.CurrentPermissions & 8) != 0) |
1849 | { | 1849 | { |
1850 | part.EveryoneMask = item.EveryOnePermissions; | 1850 | foreach (SceneObjectPart part in partList) |
1851 | part.NextOwnerMask = item.NextPermissions; | 1851 | { |
1852 | part.EveryoneMask = item.EveryOnePermissions; | ||
1853 | part.NextOwnerMask = item.NextPermissions; | ||
1854 | } | ||
1852 | } | 1855 | } |
1856 | group.ApplyNextOwnerPermissions(); | ||
1853 | } | 1857 | } |
1854 | group.ApplyNextOwnerPermissions(); | ||
1855 | } | 1858 | } |
1856 | 1859 | ||
1857 | foreach (SceneObjectPart part in partList) | 1860 | foreach (SceneObjectPart part in partList) |
@@ -1887,6 +1890,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
1887 | if (!attachment) | 1890 | if (!attachment) |
1888 | rootPart.ScheduleFullUpdate(); | 1891 | rootPart.ScheduleFullUpdate(); |
1889 | 1892 | ||
1893 | if (!ExternalChecks.ExternalChecksBypassPermissions()) | ||
1894 | { | ||
1895 | if ((item.CurrentPermissions & (uint)PermissionMask.Copy) == 0) | ||
1896 | userInfo.DeleteItem(item.ID); | ||
1897 | } | ||
1898 | |||
1890 | return rootPart.ParentGroup; | 1899 | return rootPart.ParentGroup; |
1891 | } | 1900 | } |
1892 | } | 1901 | } |