Commit 521d1ab0 by zhaochengxiang

根据sysadmin显示更多

parent 3e33d278
......@@ -8,6 +8,7 @@ import { $hostParams, ContextPath } from './util';
import loadable from "./util/loadable";
import { AssetMountReference } from './util/constant';
import { dispatch } from './model';
export const AppContext = React.createContext();
......@@ -36,13 +37,16 @@ export class App extends React.Component {
super();
this.state = {
hostParams: null
hostParams: null,
dataRoles: []
};
}
componentDidMount() {
this.setState({ hostParams: this.props?.data });
this.getDataRoles();
this.$$hostParams = $hostParams.subscribe({
next: (v) => {
if (v) {
......@@ -57,9 +61,18 @@ export class App extends React.Component {
this.$$hostParams?.unsubscribe();
}
getDataRoles = () => {
dispatch({
type: 'user.getDataRoles',
callback: data => {
this.setState({ dataRoles: data||[] })
}
})
}
render() {
const { setGlobalState, onGlobalStateChange } = this.props;
const { hostParams } = this.state;
const { hostParams, dataRoles } = this.state;
let message = '', id = '', terms = [];
if (hostParams) {
......@@ -158,6 +171,7 @@ export class App extends React.Component {
<AppContext.Provider value={{
env: hostParams?.env,
user: hostParams?.user,
dataRoles: dataRoles,
setGlobalState,
onGlobalStateChange
}}>
......
......@@ -15,3 +15,6 @@ export function* signout() {
export function* getDomains() {
return yield call(service.getDomains);
}
export function* getDataRoles() {
return yield call(service.getDataRoles);
}
\ No newline at end of file
......@@ -21,4 +21,8 @@ export function queryUserSystem(payload) {
export function getDomains() {
return GetJSON("/authservice/domains");
}
export function getDataRoles() {
return GetJSON("/authservice/dataRoles");
}
\ No newline at end of file
......@@ -398,3 +398,16 @@ export function getDataModelerRole(user) {
return DataModelerRoleAdmin;
}
export function isSystemAdmin(dataRoles) {
let flag = false;
if (dataRoles?.length > 0) {
dataRoles?.forEach(item => {
if (item.name === 'sysadmin') {
flag = true;
}
})
}
return flag;
}
\ No newline at end of file
import React, { useEffect, useState } from 'react';
import React, { useEffect, useState, useContext } from 'react';
import { Spin, Tooltip, Typography, Dropdown, Menu } from 'antd';
import LocalStorage from 'local-storage';
......@@ -7,10 +7,11 @@ import { AssetBrowseReference, AssetManageReference, ResourceBrowseReference } f
import ImportElement from './ImportElement';
import AttributeRelationModal from "./AttributeRelationModal";
import FilterElementModal from './FilterElementModal';
import { showNotifaction } from '../../../../util';
import { showNotifaction, isSystemAdmin } from '../../../../util';
import { MoreSvg } from './AssetSvg';
import Separate from './Separate';
import record from '../Assets/record.png';
import { AppContext } from '../../../../App';
import './AssetDirectory.less';
......@@ -25,6 +26,8 @@ const AssetDirectory = (props) => {
const [ filterElementVisible, setFilterElementVisible ] = useState(false);
const [ resourceState, setResourceState ] = useState(null);
const app = useContext(AppContext);
useEffect(() => {
const storageChange = (e) => {
......@@ -264,7 +267,7 @@ const AssetDirectory = (props) => {
</div>
{
(reference===AssetManageReference) && <Dropdown overlay={elementManageMenu} placement="bottomCenter">
(reference===AssetManageReference) && isSystemAdmin(app?.dataRoles) && <Dropdown overlay={elementManageMenu} placement="bottomCenter">
<div
className='flex more-container'
style={{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment