Beispiel #1
0
        public bool HasAccess(CorporationRole memberRole, ContainerAccess access)
        {
            //not defined for this container
            if (HangarAccess == CorporationRole.NotDefined)
            {
                return(true);
            }

            //corp lord?
            if (memberRole.IsAnyRole(CorporationRole.CEO, CorporationRole.DeputyCEO))
            {
                return(true);
            }

            //return a single bit: the highest
            var hangarAccess = HangarAccess.GetHighestContainerAccess();

            // let's check the action
            var expectedAccess = (int)memberRole.CleanUpHangarAccess() & (int)hangarAccess;

            if (expectedAccess == 0)
            {
                return(false);
            }

            if (access != ContainerAccess.Delete && access != ContainerAccess.Remove && access != ContainerAccess.List)
            {
                return(true);
            }

            return(memberRole.IsAnyRole(hangarAccess.GetRelatedRemoveAccess()));
        }
Beispiel #2
0
        public static CorporationRole CleanUpHangarAccess(this CorporationRole role)
        {
            var resultRole = (int)role;

            //has low remove => needs low access
            if (role.IsAnyRole(CorporationRole.HangarRemove_low))
            {
                resultRole = (resultRole | (int)CorporationRole.HangarAccess_low);
            }

            //has medium remove => needs medium access
            if (role.IsAnyRole(CorporationRole.HangarRemove_medium))
            {
                resultRole = (resultRole | (int)CorporationRole.HangarAccess_medium);
            }

            if (role.IsAnyRole(CorporationRole.HangarRemove_high))
            {
                resultRole = (resultRole | (int)CorporationRole.HangarAccess_high);
            }

            if (role.IsAnyRole(CorporationRole.HangarRemove_secure))
            {
                resultRole = (resultRole | (int)CorporationRole.HangarAccess_secure);
            }

            return((CorporationRole)resultRole);
        }
Beispiel #3
0
        public static CorporationRole GetRelatedRemoveAccess(this CorporationRole corporationRole)
        {
            if (corporationRole.IsAnyRole(CorporationRole.HangarAccess_secure))
            {
                return(CorporationRole.HangarRemove_secure);
            }

            if (corporationRole.IsAnyRole(CorporationRole.HangarAccess_high))
            {
                return(CorporationRole.HangarRemove_high);
            }

            if (corporationRole.IsAnyRole(CorporationRole.HangarAccess_medium))
            {
                return(CorporationRole.HangarRemove_medium);
            }

            if (corporationRole.IsAnyRole(CorporationRole.HangarAccess_low))
            {
                return(CorporationRole.HangarRemove_low);
            }

            return(CorporationRole.HangarRemove_low);
        }
Beispiel #4
0
        public static CorporationRole GetHighestContainerAccess(this CorporationRole corporationRole)
        {
            if (corporationRole.IsAnyRole(CorporationRole.HangarAccess_secure))
            {
                return(CorporationRole.HangarAccess_secure);
            }

            if (corporationRole.IsAnyRole(CorporationRole.HangarAccess_high))
            {
                return(CorporationRole.HangarAccess_high);
            }

            if (corporationRole.IsAnyRole(CorporationRole.HangarAccess_medium))
            {
                return(CorporationRole.HangarAccess_medium);
            }

            if (corporationRole.IsAnyRole(CorporationRole.HangarAccess_low))
            {
                return(CorporationRole.HangarAccess_low);
            }

            return(CorporationRole.HangarAccess_low);
        }
Beispiel #5
0
 public static bool IsAllProbesVisible(CorporationRole role)
 {
     return(role.IsAnyRole(CorporationRole.CEO, CorporationRole.DeputyCEO));
 }
 private static ChannelMemberRole GetChannelMemberRoleByCorporationRole(CorporationRole corporationRole)
 {
     return(corporationRole.IsAnyRole(CorporationRole.CEO, CorporationRole.DeputyCEO, CorporationRole.HRManager, CorporationRole.PRManager) ?
            ChannelMemberRole.Operator :
            ChannelMemberRole.Undefined);
 }