Пример #1
0
        /// <summary>
        /// 查询该角色拥有哪些权限
        /// </summary>
        /// <param name="roleid"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <ResponseMessage <List <PermissionListResponse> > > SelectRolePermissionAsync(string roleid, CancellationToken cancellationToken = default(CancellationToken))
        {
            var response = new ResponseMessage <List <PermissionListResponse> >()
            {
                Extension = new List <PermissionListResponse> {
                }
            };

            if (await _roleStore.GetAsync(roleid) == null)
            {
                throw new ZCustomizeException(ResponseCodeEnum.NotAllow, "没有找到该角色,请重试");
            }
            var rolePer = await _rolePermissionStore.IQueryableListAsync().Where(t => t.RoleId == roleid).Select(y => y.PermissionId).ToListAsync(cancellationToken);

            var result = from c in await _permissionStore.EnumerableListAsync()
                         group c by c.Group into per
                         select new PermissionListResponse
            {
                Group          = per.Key,
                PermissionList = per.Select(u => new PermissionListResponse.ListResponse
                {
                    Id          = u.Id,
                    Name        = u.Name,
                    IsAuthorize = rolePer.Contains(u.Id) ? true : false
                }).ToList()
            };

            response.Extension = result.ToList();
            return(response);
        }