Universe.Region.SceneObjectGroup.GetEffectivePermissions C# (CSharp) Method

GetEffectivePermissions() public method

public GetEffectivePermissions ( ) : uint
return uint
        public uint GetEffectivePermissions()
        {
            uint perms = (uint) (PermissionMask.Modify |
                                 PermissionMask.Copy |
                                 PermissionMask.Move |
                                 PermissionMask.Transfer) | 7;

            uint ownerMask = 0x7ffffff;
            foreach (SceneObjectPart part in m_partsList)
            {
                ownerMask &= part.OwnerMask;
                perms &= part.Inventory.MaskEffectivePermissions();
            }

            if ((ownerMask & (uint) PermissionMask.Modify) == 0)
                perms &= ~(uint) PermissionMask.Modify;
            if ((ownerMask & (uint) PermissionMask.Copy) == 0)
                perms &= ~(uint) PermissionMask.Copy;
            if ((ownerMask & (uint) PermissionMask.Transfer) == 0)
                perms &= ~(uint) PermissionMask.Transfer;

            // If root prim permissions are applied here, this would screw
            // with in-inventory manipulation of the next owner perms
            // in a major way. So, let's move this to the give itself.
            // Yes. I know. Evil.
//            if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Modify) == 0)
//                perms &= ~((uint)PermissionMask.Modify >> 13);
//            if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Copy) == 0)
//                perms &= ~((uint)PermissionMask.Copy >> 13);
//            if ((ownerMask & RootPart.NextOwnerMask & (uint)PermissionMask.Transfer) == 0)
//                perms &= ~((uint)PermissionMask.Transfer >> 13);

            return perms;
        }
SceneObjectGroup