예제 #1
0
 /// <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);
     }
 }
예제 #2
0
        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);
        }
예제 #3
0
        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);
            }
        }