/// <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 }); } }
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)); }