/// <summary> /// 查询数据 /// </summary> /// <param name="query">查询表达式</param> /// <param name="wrapOptionName">是否包含选项名称</param> /// <returns></returns> public PagedList <dynamic> Execute(QueryExpression query, bool wrapOptionName = false) { this.QueryExpression = query; if (this.User != null && !this.User.IsSuperAdmin && this.User.Roles.NotEmpty()) { var roles = this.User.Roles.Select(r => r.RoleId); var entities = this.QueryExpression.GetAllEntityNames(); var entIds = _entityFinder.FindByNames(entities.ToArray()).Select(n => n.EntityId); //this.User.EntityPermissions = _roleEntityPermissionsService.GetPermissions(entIds, roles, AccessRightValue.Read); this.User.RoleObjectAccessEntityPermission = _roleObjectAccessEntityPermissionService.GetPermissions(entIds, roles, AccessRightValue.Read); } this.QueryResolver.Init(query); if (this.QueryExpression.PageInfo == null || this.QueryExpression.PageInfo.PageSize < 1) { PagedList <dynamic> result = new PagedList <dynamic>(); result.Items = this.QueryResolver.Query(); result.TotalItems = result.Items.Count; if (wrapOptionName) { result.Items = WrapOptionName(result.Items); } return(result); } else { var result = this.QueryResolver.QueryPaged(); if (wrapOptionName) { result.Items = WrapOptionName(result.Items); } return(result); } }
private void BindUserEntityPermissions(QueryBase q) { //get entity permissions var roles = _user?.Roles?.Select(r => r.RoleId); if (!roles.Any()) { throw new Xms.Infrastructure.XmsException(_loc["notspecified_userroles"]); } var entities = q is QueryExpression ? (q as QueryExpression).GetAllEntityNames() : new List <string>() { q.EntityName }; var entIds = _entityFinder.FindByNames(entities.ToArray()).Select(n => n.EntityId); _user.RoleObjectAccessEntityPermission = _roleObjectAccessEntityPermissionService.GetPermissions(entIds, roles, AccessRightValue.Read); }
private void BindUserEntityPermissions(QueryExpression query) { if (this._user != null) { if (!this._user.IsSuperAdmin && this._user.Roles.IsEmpty()) { this._user.Roles = _systemUserRolesService.Query(n => n.Where(f => f.SystemUserId == this._user.SystemUserId)); } } if (this._user != null && !this._user.IsSuperAdmin && this._user.Roles.NotEmpty()) { var roles = this._user.Roles.Select(r => r.RoleId); var entities = query.GetAllEntityNames(); var entIds = _entityFinder.FindByNames(entities.ToArray()).Select(n => n.EntityId); this._user.RoleObjectAccessEntityPermission = _roleObjectAccessEntityPermissionService.GetPermissions(entIds, roles, AccessRightValue.Read); } }