diff options
author | Diva Canto | 2017-05-01 10:09:54 -0700 |
---|---|---|
committer | Diva Canto | 2017-05-01 10:09:54 -0700 |
commit | 8e88a9d7024f300d817be6ec84b19e4d82f38693 (patch) | |
tree | f4b584cc9f09f9ca60a3ec33c663de299970c365 /OpenSim/Region/Framework/Scenes | |
parent | Perms test framework: make a lot of things more generic. (diff) | |
parent | buysell: make sure we dont buy child parts, dont mess with absolute position ... (diff) | |
download | opensim-SC_OLD-8e88a9d7024f300d817be6ec84b19e4d82f38693.zip opensim-SC_OLD-8e88a9d7024f300d817be6ec84b19e4d82f38693.tar.gz opensim-SC_OLD-8e88a9d7024f300d817be6ec84b19e4d82f38693.tar.bz2 opensim-SC_OLD-8e88a9d7024f300d817be6ec84b19e4d82f38693.tar.xz |
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs index 42f47b5..36844a9 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | |||
@@ -338,6 +338,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
338 | uint rootEveryonePerms = RootPart.EveryoneMask; | 338 | uint rootEveryonePerms = RootPart.EveryoneMask; |
339 | uint everyone = rootEveryonePerms; | 339 | uint everyone = rootEveryonePerms; |
340 | 340 | ||
341 | // date is time of writing april 30th 2017 | ||
342 | bool newObject = (RootPart.CreationDate == 0 || RootPart.CreationDate > 1493574994); | ||
341 | SceneObjectPart[] parts = m_parts.GetArray(); | 343 | SceneObjectPart[] parts = m_parts.GetArray(); |
342 | for (int i = 0; i < parts.Length; i++) | 344 | for (int i = 0; i < parts.Length; i++) |
343 | { | 345 | { |
@@ -345,7 +347,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
345 | part.AggregateInnerPerms(); | 347 | part.AggregateInnerPerms(); |
346 | owner &= part.AggregatedInnerOwnerPerms; | 348 | owner &= part.AggregatedInnerOwnerPerms; |
347 | group &= part.AggregatedInnerGroupPerms; | 349 | group &= part.AggregatedInnerGroupPerms; |
348 | everyone &= part.AggregatedInnerEveryonePerms; | 350 | if(newObject) |
351 | everyone &= part.AggregatedInnerEveryonePerms; | ||
349 | } | 352 | } |
350 | // recover modify and move | 353 | // recover modify and move |
351 | rootOwnerPerms &= movemodmask; | 354 | rootOwnerPerms &= movemodmask; |
@@ -407,14 +410,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
407 | uint everyone = rootEveryonePerms; | 410 | uint everyone = rootEveryonePerms; |
408 | 411 | ||
409 | bool needUpdate = false; | 412 | bool needUpdate = false; |
410 | 413 | // date is time of writing april 30th 2017 | |
414 | bool newObject = (RootPart.CreationDate == 0 || RootPart.CreationDate > 1493574994); | ||
411 | SceneObjectPart[] parts = m_parts.GetArray(); | 415 | SceneObjectPart[] parts = m_parts.GetArray(); |
412 | for (int i = 0; i < parts.Length; i++) | 416 | for (int i = 0; i < parts.Length; i++) |
413 | { | 417 | { |
414 | SceneObjectPart part = parts[i]; | 418 | SceneObjectPart part = parts[i]; |
415 | owner &= part.AggregatedInnerOwnerPerms; | 419 | owner &= part.AggregatedInnerOwnerPerms; |
416 | group &= part.AggregatedInnerGroupPerms; | 420 | group &= part.AggregatedInnerGroupPerms; |
417 | everyone &= part.AggregatedInnerEveryonePerms; | 421 | if(newObject) |
422 | everyone &= part.AggregatedInnerEveryonePerms; | ||
418 | } | 423 | } |
419 | // recover modify and move | 424 | // recover modify and move |
420 | rootOwnerPerms &= movemodmask; | 425 | rootOwnerPerms &= movemodmask; |
@@ -479,7 +484,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
479 | } | 484 | } |
480 | } | 485 | } |
481 | 486 | ||
482 | public uint GetEffectivePermissions(bool useBase) | 487 | public uint CurrentAndFoldedNextPermissions() |
483 | { | 488 | { |
484 | uint perms=(uint)(PermissionMask.Modify | | 489 | uint perms=(uint)(PermissionMask.Modify | |
485 | PermissionMask.Copy | | 490 | PermissionMask.Copy | |
@@ -487,18 +492,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
487 | PermissionMask.Transfer | | 492 | PermissionMask.Transfer | |
488 | PermissionMask.FoldedMask); | 493 | PermissionMask.FoldedMask); |
489 | 494 | ||
490 | uint ownerMask = 0x7fffffff; | 495 | uint ownerMask = RootPart.OwnerMask; |
491 | 496 | ||
492 | SceneObjectPart[] parts = m_parts.GetArray(); | 497 | SceneObjectPart[] parts = m_parts.GetArray(); |
493 | for (int i = 0; i < parts.Length; i++) | 498 | for (int i = 0; i < parts.Length; i++) |
494 | { | 499 | { |
495 | SceneObjectPart part = parts[i]; | 500 | SceneObjectPart part = parts[i]; |
496 | 501 | ownerMask &= part.BaseMask; | |
497 | if (useBase) | ||
498 | ownerMask &= part.BaseMask; | ||
499 | else | ||
500 | ownerMask &= part.OwnerMask; | ||
501 | |||
502 | perms &= part.Inventory.MaskEffectivePermissions(); | 502 | perms &= part.Inventory.MaskEffectivePermissions(); |
503 | } | 503 | } |
504 | 504 | ||