diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | 5 |
2 files changed, 8 insertions, 2 deletions
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 | |||
433 | // m_log.DebugFormat("[XXX]: B: {0} O: {1} E: {2}", itemUpd.BasePermissions, itemUpd.CurrentPermissions, itemUpd.EveryOnePermissions); | 433 | // m_log.DebugFormat("[XXX]: B: {0} O: {1} E: {2}", itemUpd.BasePermissions, itemUpd.CurrentPermissions, itemUpd.EveryOnePermissions); |
434 | const uint permALLandExport = (uint)(PermissionMask.All | PermissionMask.Export); | 434 | const uint permALLandExport = (uint)(PermissionMask.All | PermissionMask.Export); |
435 | // If the user is not the creator or doesn't have "E" in both "B" and "O", deny setting export | 435 | // If the user is not the creator or doesn't have "E" in both "B" and "O", deny setting export |
436 | if (item.CreatorIdAsUuid != item.Owner && | 436 | if (item.CreatorIdAsUuid != item.Owner || |
437 | ((item.BasePermissions & permALLandExport) != permALLandExport || | 437 | ((item.BasePermissions & permALLandExport) != permALLandExport || |
438 | (item.CurrentPermissions & (uint)PermissionMask.Export) == 0)) | 438 | (item.CurrentPermissions & (uint)PermissionMask.Export) == 0)) |
439 | denyExportChange = true; | 439 | denyExportChange = true; |
@@ -451,10 +451,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
451 | { | 451 | { |
452 | itemUpd.NextPermissions = (uint)(PermissionMask.All); | 452 | itemUpd.NextPermissions = (uint)(PermissionMask.All); |
453 | itemUpd.EveryOnePermissions |= (uint)PermissionMask.Export; | 453 | itemUpd.EveryOnePermissions |= (uint)PermissionMask.Export; |
454 | sendUpdate = true; | ||
454 | } | 455 | } |
455 | else | 456 | else |
456 | { | 457 | { |
457 | itemUpd.EveryOnePermissions &= ~(uint)PermissionMask.Export; | 458 | itemUpd.EveryOnePermissions &= ~(uint)PermissionMask.Export; |
459 | sendUpdate = true; | ||
458 | } | 460 | } |
459 | } | 461 | } |
460 | else | 462 | else |
@@ -464,6 +466,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
464 | { | 466 | { |
465 | // m_log.DebugFormat("[XXX]: Force full perm"); | 467 | // m_log.DebugFormat("[XXX]: Force full perm"); |
466 | itemUpd.NextPermissions = (uint)(PermissionMask.All); | 468 | itemUpd.NextPermissions = (uint)(PermissionMask.All); |
469 | sendUpdate = true; | ||
467 | } | 470 | } |
468 | } | 471 | } |
469 | 472 | ||
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 | |||
258 | uint perms=(uint)(PermissionMask.Modify | | 258 | uint perms=(uint)(PermissionMask.Modify | |
259 | PermissionMask.Copy | | 259 | PermissionMask.Copy | |
260 | PermissionMask.Move | | 260 | PermissionMask.Move | |
261 | PermissionMask.Transfer) | 7; | 261 | PermissionMask.Transfer | |
262 | PermissionMask.Export ) | 7; | ||
262 | 263 | ||
263 | uint ownerMask = 0x7fffffff; | 264 | uint ownerMask = 0x7fffffff; |
264 | 265 | ||
@@ -281,6 +282,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
281 | perms &= ~(uint)PermissionMask.Copy; | 282 | perms &= ~(uint)PermissionMask.Copy; |
282 | if ((ownerMask & (uint)PermissionMask.Transfer) == 0) | 283 | if ((ownerMask & (uint)PermissionMask.Transfer) == 0) |
283 | perms &= ~(uint)PermissionMask.Transfer; | 284 | perms &= ~(uint)PermissionMask.Transfer; |
285 | if ((ownerMask & (uint)PermissionMask.Export) == 0) | ||
286 | perms &= ~(uint)PermissionMask.Export; | ||
284 | 287 | ||
285 | // If root prim permissions are applied here, this would screw | 288 | // If root prim permissions are applied here, this would screw |
286 | // with in-inventory manipulation of the next owner perms | 289 | // with in-inventory manipulation of the next owner perms |