private string GetColumnPermission(QuerySet querySet) { if (RegisterAuthority) { FapMenuColumn menuColumn = new FapMenuColumn() { GridId = Id, TableName = querySet.TableName, GridColumn = querySet.QueryCols, Enabled = 1, Description = _dbContext.Table(querySet.TableName).TableComment }; //获取列权限 return(_rbacService.GetMenuColumnAuthority(_applicationContext.CurrentRoleUid, menuColumn)); } return(string.Empty); }
private string GetColumnPermission(QuerySet querySet) { string btnId = Id; if (IsSubgrid) { btnId = Id.Substring(0, Id.LastIndexOf("_")); } FapMenuColumn menuColumn = new FapMenuColumn() { GridId = btnId, TableName = querySet.TableName, GridColumn = querySet.QueryCols, Enabled = 1, Description = _dbContext.Table(querySet.TableName).TableComment }; //获取列权限 return(_rbacService.GetMenuColumnAuthority(_applicationContext.CurrentRoleUid, menuColumn)); }
public string GetMenuColumnAuthority(string roleUid, FapMenuColumn menuColumn) { bool isAdministrator = _applicationContext.IsAdministrator; var menu = GetCurrentMenu(); if (menu != null) { if (_platformDomain.MenuColumnSet.TryGetValue(menu.Fid, out IEnumerable <FapMenuColumn> list)) { var gridColumn = list.FirstOrDefault(m => m.GridId == menuColumn.GridId); if (gridColumn != null && gridColumn.GridColumn == menuColumn.GridColumn) { //检查授权 if (!isAdministrator && _platformDomain.RoleColumnSet.TryGetValueByRole(roleUid, out IEnumerable <FapRoleColumn> roleColumns)) { var cols = _platformDomain.ColumnSet.Where(c => roleColumns.Where(r => r.GridId == menuColumn.GridId).Select(r => r.ColumnUid).Contains(c.Fid)).Select(c => c.ColName); if (cols.Any()) { cols = BaseColumns().Union(cols); } return(string.Join(',', cols)); } } else { if (gridColumn != null) { gridColumn.GridColumn = menuColumn.GridColumn; _dbContext.Update(gridColumn); } else { //注册按钮 menuColumn.MenuUid = menu.Fid; _dbContext.Insert(menuColumn); } _platformDomain.MenuColumnSet.Refresh(); } } else { //注册按钮 menuColumn.MenuUid = menu.Fid; _dbContext.Insert(menuColumn); _platformDomain.MenuColumnSet.Refresh(); } if (isAdministrator) { return(menuColumn.GridColumn); } } return(string.Empty); IEnumerable <string> BaseColumns() { yield return(FapDbConstants.FAPCOLUMN_FIELD_Id); yield return(FapDbConstants.FAPCOLUMN_FIELD_Fid); yield return(FapDbConstants.FAPCOLUMN_FIELD_Ts); } }