예제 #1
0
 public bool IsPermission(string roleFunctionName)
 {
     if (_PermissionService == null || string.IsNullOrWhiteSpace(roleFunctionName))
     {
         return(false);
     }
     return((from r in _PermissionService.ReadClientPermission(AppConfig.Instance.ClientID)
             where RoleIDs.Contains(r.RoleID) && r.RoleFunctionName == roleFunctionName
             select r).Count() > 0);
 }
예제 #2
0
        /// <summary>获取角色列表。主角色在前,其它角色升序在后</summary>
        /// <returns></returns>
        public virtual Int32[] GetRoleIDs()
        {
            var ids = RoleIDs.SplitAsInt().OrderBy(e => e).ToList();

            if (RoleID > 0)
            {
                ids.Insert(0, RoleID);
            }

            return(ids.Distinct().ToArray());
        }
예제 #3
0
        public bool IsAuthorize(string action, string controller, string method)
        {
            if (Username.Contains("0000"))
            {
                return(true);
            }
            var roleFunctionResult = from r in _PermissionService.ReadClientPermission(AppConfig.Instance.ClientID)
                                     where RoleIDs.Contains(r.RoleID) && r.APIAction == action && r.APIController == controller && r.APIMethod == method
                                     select r;

            return(roleFunctionResult.Any());
        }
예제 #4
0
        public bool IsInRole(int roleId)
        {
            var inRole = false;

            if (!string.IsNullOrEmpty(RoleIDs))
            {
                inRole = RoleIDs.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                         .Any(r => Convert.ToInt32(r) == roleId);
            }

            return(inRole);
        }
        public override Task <PreconditionResult> CheckPermissionsAsync(ICommandContext context, CommandInfo command, IServiceProvider services)
        {
            var roles = new List <ulong>();

            foreach (var role in from r in context.Guild.Roles
                     where RoleIDs.Contains(r.Id) || RoleNames.Contains(r.Name)
                     select r)
            {
                roles.Add(role.Id);
            }

            return((context.User as IGuildUser).RoleIds.Intersect(roles).Any() ?
                   Task.FromResult(PreconditionResult.FromSuccess()) :
                   Task.FromResult(PreconditionResult.FromError($"User does not have required role!")));
        }
        private void EnsureInRoleIDs()
        {
            if (this.RoleID.IsNotEmpty())
            {
                RoleIDContainer container = new RoleIDContainer()
                {
                    AppID = this.AppID, RoleID = this.RoleID
                };

                if (RoleIDs.ContainsKey(container) == false)
                {
                    RoleIDs.Add(container, container);
                }
            }
        }
예제 #7
0
        /// <summary>插入管理员与角色表映射</summary>
        protected Int32 InsertAdminRole()
        {
            var result = 0;

            if (!String.IsNullOrEmpty(RoleIDs))
            {
                Int32[] ss = RoleIDs.SplitAsInt(",");
                if (ss != null && ss.Length > 0)
                {
                    EntityList <AdminRole> list = new EntityList <AdminRole>();
                    foreach (Int32 item in ss)
                    {
                        AdminRole entity = new AdminRole();
                        entity.AdminID = ID;
                        entity.RoleID  = item;
                        list.Add(entity);
                    }
                    result += list.Insert(true);
                }
            }
            return(result);
        }