just give up on Export flag, seems just broken no matter water with current FS and singu 1.8.7

melanie
UbitUmarov 2016-12-18 03:20:41 +00:00
parent c93551d8f4
commit df7435a703
2 changed files with 8 additions and 2 deletions

View File

@ -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); // m_log.DebugFormat("[XXX]: B: {0} O: {1} E: {2}", itemUpd.BasePermissions, itemUpd.CurrentPermissions, itemUpd.EveryOnePermissions);
const uint permALLandExport = (uint)(PermissionMask.All | PermissionMask.Export); 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 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.BasePermissions & permALLandExport) != permALLandExport ||
(item.CurrentPermissions & (uint)PermissionMask.Export) == 0)) (item.CurrentPermissions & (uint)PermissionMask.Export) == 0))
denyExportChange = true; denyExportChange = true;
@ -451,10 +451,12 @@ namespace OpenSim.Region.Framework.Scenes
{ {
itemUpd.NextPermissions = (uint)(PermissionMask.All); itemUpd.NextPermissions = (uint)(PermissionMask.All);
itemUpd.EveryOnePermissions |= (uint)PermissionMask.Export; itemUpd.EveryOnePermissions |= (uint)PermissionMask.Export;
sendUpdate = true;
} }
else else
{ {
itemUpd.EveryOnePermissions &= ~(uint)PermissionMask.Export; itemUpd.EveryOnePermissions &= ~(uint)PermissionMask.Export;
sendUpdate = true;
} }
} }
else else
@ -464,6 +466,7 @@ namespace OpenSim.Region.Framework.Scenes
{ {
// m_log.DebugFormat("[XXX]: Force full perm"); // m_log.DebugFormat("[XXX]: Force full perm");
itemUpd.NextPermissions = (uint)(PermissionMask.All); itemUpd.NextPermissions = (uint)(PermissionMask.All);
sendUpdate = true;
} }
} }

View File

@ -258,7 +258,8 @@ namespace OpenSim.Region.Framework.Scenes
uint perms=(uint)(PermissionMask.Modify | uint perms=(uint)(PermissionMask.Modify |
PermissionMask.Copy | PermissionMask.Copy |
PermissionMask.Move | PermissionMask.Move |
PermissionMask.Transfer) | 7; PermissionMask.Transfer |
PermissionMask.Export ) | 7;
uint ownerMask = 0x7fffffff; uint ownerMask = 0x7fffffff;
@ -281,6 +282,8 @@ namespace OpenSim.Region.Framework.Scenes
perms &= ~(uint)PermissionMask.Copy; perms &= ~(uint)PermissionMask.Copy;
if ((ownerMask & (uint)PermissionMask.Transfer) == 0) if ((ownerMask & (uint)PermissionMask.Transfer) == 0)
perms &= ~(uint)PermissionMask.Transfer; perms &= ~(uint)PermissionMask.Transfer;
if ((ownerMask & (uint)PermissionMask.Export) == 0)
perms &= ~(uint)PermissionMask.Export;
// If root prim permissions are applied here, this would screw // If root prim permissions are applied here, this would screw
// with in-inventory manipulation of the next owner perms // with in-inventory manipulation of the next owner perms