Bläddra i källkod

超级管理员权限控制

zhuth 6 år sedan
förälder
incheckning
04797baad2

+ 4 - 4
src/components/chart/list.jsx

@@ -145,7 +145,7 @@ class ChartList extends React.Component {
                 <Menu.Item disabled>
                     <Icon type="link" />分享
                 </Menu.Item>
-                {/* {selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.Item onClick={() => {
+                {/* {selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.Item onClick={() => {
                     const { selectedRecord } = this.state;
                     // const selectedChartDataSourceCode = selectedRecord ? selectedRecord.code : '';
                     const selectedChartCode = selectedRecord ? selectedRecord.code : '';
@@ -156,7 +156,7 @@ class ChartList extends React.Component {
                 }}> 
                     <Icon type='share-alt'/>分发
                 </Menu.Item>} */}
-                { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.SubMenu className='setgroupmenu' title={<div><Icon style={{ marginRight: '6px' }} type='profile' />移动到</div>}>
+                { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.SubMenu className='setgroupmenu' title={<div><Icon style={{ marginRight: '6px' }} type='profile' />移动到</div>}>
                     {[<Menu.Item key='-1' onClick={() => {
                         dispatch({ type: 'chart/remoteSetGroup', chart: selectedRecord, group: { code: '-1'} });
                         this.setState({
@@ -165,14 +165,14 @@ class ChartList extends React.Component {
                     }}>未分组</Menu.Item>].concat(this.createGroupMenu(treeData))}
                 </Menu.SubMenu>}
                 <Menu.Divider />
-                { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.Item
+                { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.Item
                     onClick={()=>{
                         this.setState({ visibleTransferBox: true})
                     }}
                 >
                     <Icon type="swap" />移交
                 </Menu.Item>}
-                { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.Item
+                { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.Item
                     onClick={(e) => {
                         this.setState({ visibleDeleteBox: true})
                     }}

+ 1 - 1
src/components/chartDesigner/content.jsx

@@ -36,7 +36,7 @@ class ChartDesignerContent extends React.Component {
 
     static getDerivedStateFromProps(nextProps, nextState) {
         const { chartDesigner, main } = nextProps;
-        const isOwner = chartDesigner.creatorCode === main.currentUser.code;
+        const isOwner = chartDesigner.creatorCode === main.currentUser.code || main.currentUser.role === 'superAdmin';
         if(chartDesigner.code !== nextState.code) {
             return {
                 code: chartDesigner.code,

+ 1 - 1
src/components/chartDesigner/header.jsx

@@ -36,7 +36,7 @@ class Header extends React.Component {
         const { chartDesigner, main } = this.props;
         const { creatorCode } = chartDesigner;
         const { currentUser } = main;
-        return currentUser.code === creatorCode;
+        return currentUser.code === creatorCode || currentUser.role === 'superAdmin';
     }
 
     isValid = () => {

+ 1 - 1
src/components/common/selectUserBox/selectUserBox.jsx

@@ -115,7 +115,7 @@ class AddGroupMemberBox extends React.Component {
                                 });
                             }}
                         >
-                            { userData.filter(u => !!onlyAdmin ? (u.role === 'admin') : ( true )).map((s, i) => {
+                            { userData.filter(u => !!onlyAdmin ? (u.role === 'admin') : ( u.role !== 'superAdmin' )).map((s, i) => {
                                 return <SelectOption key={i} value={s.code} disabled={!!selectedUsers && selectedUsers.length > 0 && selectedUsers.findIndex(u => u.code === s.code) !== -1}>{s.name}</SelectOption>
                             }) }
                         </Select>

+ 3 - 0
src/components/dashboard/layout.jsx

@@ -29,6 +29,9 @@ class DashboardLayout extends React.Component {
                                 dispatch({ type: 'dashboard/setFields', fields: [
                                     { name: 'currentMenu', value: menuTree[0] },
                                     { name: 'currentMenuParents', value: [menuTree[0], {code: '-1', name: '报表目录'}] },
+                                    { name: 'menuSelectedKeys', value: [menuTree[0].code] },
+                                    { name: 'menuExpandedKeys', value: [menuTree[0].code] },
+                                    { name: 'menuAutoExpandParent', value: true },
                                 ] });
                                 dispatch({ type: 'dashboard/remoteMenuDashboardList', menuCode: menuTree[0].code });
                             }

+ 7 - 7
src/components/dashboard/list.jsx

@@ -207,7 +207,7 @@ class DashboardList extends React.Component {
 
         const moreOperatingMenu = (
             <Menu className='menu-operation'>
-                { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.Item onClick={() => {
+                { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.Item onClick={() => {
                     dispatch({ type: 'dashboard/getShareKey', record: selectedRecord, delay: 7 }).then((key) => {
                         let obj = { visibleShareBox: true, shareUrl: window.location.origin + '/#/dashboard/share_key/' + key };
                         obj['visibleOperatingMenu' + selectedRecord.code] = false;
@@ -216,11 +216,11 @@ class DashboardList extends React.Component {
                 }}> 
                     <Icon type='share-alt'/>分享
                 </Menu.Item>}
-                { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.Divider />}
-                {/* { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.Item onClick={this.getShareList}> 
+                { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.Divider />}
+                {/* { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.Item onClick={this.getShareList}> 
                     <Icon type='share-alt'/>分发
                 </Menu.Item>} */}
-                { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.Item
+                { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.Item
                     onClick={()=>{
                         let obj = {visibleTransferBox: true};
                         obj['visibleOperatingMenu' + selectedRecord.code] = false;
@@ -229,8 +229,8 @@ class DashboardList extends React.Component {
                 >
                     <Icon type="swap" />移交
                 </Menu.Item>}
-                { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.Divider />}
-                { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.SubMenu className='setgroupmenu' title={<div><Icon style={{ marginRight: '6px' }} type='profile' />移动到</div>}>
+                { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.Divider />}
+                { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.SubMenu className='setgroupmenu' title={<div><Icon style={{ marginRight: '6px' }} type='profile' />移动到</div>}>
                     {this.generateMenuItems(menuTree)}
                 </Menu.SubMenu>}
                 { selectedRecord && (selectedRecord.dataConnects.length <= 1) && <Menu.Item
@@ -242,7 +242,7 @@ class DashboardList extends React.Component {
                 >
                     <Icon type="copy" />复制
                 </Menu.Item> }
-                { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.Item
+                { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.Item
                     onClick={(e) => {
                         let obj = {visibleDeleteBox: true};
                         obj['visibleOperatingMenu' + selectedRecord.code] = false;

+ 1 - 1
src/components/dashboardDesigner/header.jsx

@@ -22,7 +22,7 @@ class Header extends React.Component {
         const { dashboardDesigner, main } = this.props;
         const { creatorCode } = dashboardDesigner;
         const { currentUser } = main;
-        return currentUser.code === creatorCode;
+        return currentUser.code === creatorCode || currentUser.role === 'superAdmin';
     }
 
     render() {

+ 1 - 1
src/components/dashboardDesigner/layout.jsx

@@ -44,7 +44,7 @@ class DashboardDesigner extends React.Component {
         const { dashboardDesigner, main } = this.props;
         const { creatorCode } = dashboardDesigner;
         const { currentUser } = main;
-        return currentUser.code === creatorCode;
+        return currentUser.code === creatorCode || currentUser.role === 'superAdmin';
     }
 
     render() {

+ 1 - 1
src/components/dashboardDesigner/viewLayout.jsx

@@ -85,7 +85,7 @@ class ViewLayout extends React.PureComponent {
                             dispatch({ type: 'dashboardDesigner/fetchChartData', item, mandatory: true });
                         }}/>}
                         {!isPreview && viewType !== 'richText' && <Icon className={iconCls} type="arrows-alt" onClick={() => this.showPreviewBox(item)}/>}
-                        {editMode && !isPreview && item.creatorCode === currentUser.code && viewType !== 'richText' &&  <Icon className={iconCls} type='edit' onClick={() => {
+                        {editMode && !isPreview && (item.creatorCode === currentUser.code || currentUser.role === 'superAdmin') && viewType !== 'richText' &&  <Icon className={iconCls} type='edit' onClick={() => {
                             dispatch({ type: 'dashboard/remoteModify',hideMessage:true });
                             dispatch({ type: 'dashboardDesigner/reset' });
                             dispatch({ type: 'main/redirect', path: '/chart/' + chartCode });

+ 2 - 2
src/components/dataSource/list.jsx

@@ -257,7 +257,7 @@ class DataSource extends React.Component {
                     }}>未分组</Menu.Item>].concat(this.createGroupMenu(treeData))}
                 </Menu.SubMenu>}
                 <Menu.Divider />
-                { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.Item
+                { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.Item
                     onClick={()=>{
                         this.setState({ visibleTransferBox: true})
                     }}
@@ -272,7 +272,7 @@ class DataSource extends React.Component {
                 >
                     <Icon type="copy" />复制
                 </Menu.Item>} */}
-                { selectedRecord && currentUser.code === selectedRecord.creatorCode && <Menu.Item
+                { selectedRecord && (currentUser.code === selectedRecord.creatorCode || currentUser.role === 'superAdmin') && <Menu.Item
                     onClick={(e) => {
                         this.setState({ visibleDeleteBox: true})
                     }}