diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs index 081281e..42f47b5 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | |||
@@ -326,7 +326,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
326 | // aux | 326 | // aux |
327 | const uint allmask = (uint)PermissionMask.AllEffective; | 327 | const uint allmask = (uint)PermissionMask.AllEffective; |
328 | const uint movemodmask = (uint)(PermissionMask.Move | PermissionMask.Modify); | 328 | const uint movemodmask = (uint)(PermissionMask.Move | PermissionMask.Modify); |
329 | const uint copytransfermast = (uint)(PermissionMask.Copy | PermissionMask.Transfer); | 329 | const uint copytransfermask = (uint)(PermissionMask.Copy | PermissionMask.Transfer); |
330 | 330 | ||
331 | uint basePerms = (RootPart.BaseMask & allmask) | (uint)PermissionMask.Move; | 331 | uint basePerms = (RootPart.BaseMask & allmask) | (uint)PermissionMask.Move; |
332 | bool noBaseTransfer = (basePerms & (uint)PermissionMask.Transfer) == 0; | 332 | bool noBaseTransfer = (basePerms & (uint)PermissionMask.Transfer) == 0; |
@@ -350,7 +350,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
350 | // recover modify and move | 350 | // recover modify and move |
351 | rootOwnerPerms &= movemodmask; | 351 | rootOwnerPerms &= movemodmask; |
352 | owner |= rootOwnerPerms; | 352 | owner |= rootOwnerPerms; |
353 | if((owner & copytransfermast) == 0) | 353 | if((owner & copytransfermask) == 0) |
354 | owner |= (uint)PermissionMask.Transfer; | 354 | owner |= (uint)PermissionMask.Transfer; |
355 | 355 | ||
356 | owner &= basePerms; | 356 | owner &= basePerms; |
@@ -479,17 +479,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
479 | } | 479 | } |
480 | } | 480 | } |
481 | 481 | ||
482 | public uint GetEffectivePermissions() | ||
483 | { | ||
484 | return GetEffectivePermissions(false); | ||
485 | } | ||
486 | |||
487 | public uint GetEffectivePermissions(bool useBase) | 482 | public uint GetEffectivePermissions(bool useBase) |
488 | { | 483 | { |
489 | uint perms=(uint)(PermissionMask.Modify | | 484 | uint perms=(uint)(PermissionMask.Modify | |
490 | PermissionMask.Copy | | 485 | PermissionMask.Copy | |
491 | PermissionMask.Move | | 486 | PermissionMask.Move | |
492 | PermissionMask.Transfer) | 7; | 487 | PermissionMask.Transfer | |
488 | PermissionMask.FoldedMask); | ||
493 | 489 | ||
494 | uint ownerMask = 0x7fffffff; | 490 | uint ownerMask = 0x7fffffff; |
495 | 491 | ||
@@ -512,17 +508,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
512 | perms &= ~(uint)PermissionMask.Copy; | 508 | perms &= ~(uint)PermissionMask.Copy; |
513 | if ((ownerMask & (uint)PermissionMask.Transfer) == 0) | 509 | if ((ownerMask & (uint)PermissionMask.Transfer) == 0) |
514 | perms &= ~(uint)PermissionMask.Transfer; | 510 | perms &= ~(uint)PermissionMask.Transfer; |
515 | 511 | if ((ownerMask & (uint)PermissionMask.Export) == 0) | |
516 | // If root prim permissions are applied here, this would screw | 512 | perms &= ~(uint)PermissionMask.Export; |
517 | // with in-inventory manipulation of the next owner perms | ||
518 | // in a major way. So, let's move this to the give itself. | ||
519 | // Yes. I know. Evil. | ||
520 | // if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0) | ||
521 | // perms &= ~((uint)PermissionMask.Modify >> 13); | ||
522 | // if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0) | ||
523 | // perms &= ~((uint)PermissionMask.Copy >> 13); | ||
524 | // if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0) | ||
525 | // perms &= ~((uint)PermissionMask.Transfer >> 13); | ||
526 | 513 | ||
527 | return perms; | 514 | return perms; |
528 | } | 515 | } |