Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
            }
        }