コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public PublicResult <GetPermissionsByRoleApo> GetPermissionsByRole(GetPermissionsByRoleDto dto)
        {
            using (var client = DbFactory.CreateClient())
            {
                var list = client.Queryable <RolePermission, Permission>((rp, p) => new object[]
                {
                    JoinType.Left, rp.PermissionId == p.Id
                })
                           .Where((rp, p) => rp.RoleId == dto.RoleId)
                           .Select((rp, p) => new Permission()
                {
                    Code     = p.Code,
                    Id       = p.Id,
                    IsActive = p.IsActive,
                    Name     = p.Name,
                    ParentId = p.ParentId
                })
                           .OrderBy("order_index ASC, id ASC")
                           .ToList();

                return(new GetPermissionsByRoleApo()
                {
                    Permissions = list
                });
            }
        }
コード例 #2
0
ファイル: RoleController.cs プロジェクト: zyptfy/moz
        public IActionResult ConfigPermission(GetPermissionsByRoleDto dto)
        {
            var pagedQueryPermissionsResult
                = _permissionService.PagedQueryPermissions(new PagedQueryPermissionDto()
            {
                Page     = 1,
                PageSize = 10000
            });

            if (pagedQueryPermissionsResult.Code > 0)
            {
                return(Json(pagedQueryPermissionsResult));
            }

            var getPermissionsResult = _roleService.GetPermissionsByRole(dto);

            if (getPermissionsResult.Code > 0)
            {
                return(Json(getPermissionsResult));
            }

            var permissionsByRole = getPermissionsResult.Data;

            var configPermissions = pagedQueryPermissionsResult.Data.List
                                    .OrderBy(t => t.OrderIndex)
                                    .ThenBy(t => t.Id)
                                    .Select(t => new ConfigPermissionItem()
            {
                id       = t.Id,
                name     = t.Name,
                pId      = t.ParentId ?? 0,
                open     = t.ParentId == null,
                @checked = permissionsByRole.Permissions.Any(x => x.Id == t.Id)
            }).ToList();
            var model = new ConfigPermissionModel()
            {
                RoleId      = dto.RoleId,
                Permissions = configPermissions
            };

            return(View("~/Administration/Views/Role/ConfigPermission.cshtml", model));
        }