From df7435a7030bc88987f2a60a2fe118f13342a31c Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 18 Dec 2016 03:20:41 +0000 Subject: just give up on Export flag, seems just broken no matter water with current FS and singu 1.8.7 --- OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 5 ++++- OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 000944f..9772b35 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs @@ -433,7 +433,7 @@ namespace OpenSim.Region.Framework.Scenes // m_log.DebugFormat("[XXX]: B: {0} O: {1} E: {2}", itemUpd.BasePermissions, itemUpd.CurrentPermissions, itemUpd.EveryOnePermissions); const uint permALLandExport = (uint)(PermissionMask.All | PermissionMask.Export); // If the user is not the creator or doesn't have "E" in both "B" and "O", deny setting export - if (item.CreatorIdAsUuid != item.Owner && + if (item.CreatorIdAsUuid != item.Owner || ((item.BasePermissions & permALLandExport) != permALLandExport || (item.CurrentPermissions & (uint)PermissionMask.Export) == 0)) denyExportChange = true; @@ -451,10 +451,12 @@ namespace OpenSim.Region.Framework.Scenes { itemUpd.NextPermissions = (uint)(PermissionMask.All); itemUpd.EveryOnePermissions |= (uint)PermissionMask.Export; + sendUpdate = true; } else { itemUpd.EveryOnePermissions &= ~(uint)PermissionMask.Export; + sendUpdate = true; } } else @@ -464,6 +466,7 @@ namespace OpenSim.Region.Framework.Scenes { // m_log.DebugFormat("[XXX]: Force full perm"); itemUpd.NextPermissions = (uint)(PermissionMask.All); + sendUpdate = true; } } diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs index 98617d1..68d80f0 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs @@ -258,7 +258,8 @@ namespace OpenSim.Region.Framework.Scenes uint perms=(uint)(PermissionMask.Modify | PermissionMask.Copy | PermissionMask.Move | - PermissionMask.Transfer) | 7; + PermissionMask.Transfer | + PermissionMask.Export ) | 7; uint ownerMask = 0x7fffffff; @@ -281,6 +282,8 @@ namespace OpenSim.Region.Framework.Scenes perms &= ~(uint)PermissionMask.Copy; if ((ownerMask & (uint)PermissionMask.Transfer) == 0) perms &= ~(uint)PermissionMask.Transfer; + if ((ownerMask & (uint)PermissionMask.Export) == 0) + perms &= ~(uint)PermissionMask.Export; // If root prim permissions are applied here, this would screw // with in-inventory manipulation of the next owner perms -- cgit v1.1