change(ui) - non admin user preference restrictions
This commit is contained in:
parent
c8416e2c0c
commit
a46d842c0b
1 changed files with 106 additions and 104 deletions
|
|
@ -1,116 +1,118 @@
|
|||
import React from 'react'
|
||||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import cn from 'classnames';
|
||||
import { SideMenuitem } from 'UI'
|
||||
import { SideMenuitem } from 'UI';
|
||||
import stl from './preferencesMenu.module.css';
|
||||
import { CLIENT_TABS, client as clientRoute } from 'App/routes';
|
||||
import { withRouter } from 'react-router-dom';
|
||||
|
||||
function PreferencesMenu({ activeTab, history, isEnterprise }) {
|
||||
function PreferencesMenu({ account, activeTab, history, isEnterprise }) {
|
||||
const isAdmin = account.admin || account.superAdmin;
|
||||
const setTab = (tab) => {
|
||||
history.push(clientRoute(tab));
|
||||
};
|
||||
|
||||
const setTab = (tab) => {
|
||||
history.push(clientRoute(tab));
|
||||
}
|
||||
return (
|
||||
<div className={stl.wrapper}>
|
||||
<div className={cn(stl.header, 'flex items-end')}>
|
||||
<div className={stl.label}>
|
||||
<span>Preferences</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
return (
|
||||
<div className={stl.wrapper}>
|
||||
<div className={ cn(stl.header, 'flex items-end') }>
|
||||
<div className={ stl.label }>
|
||||
<span>Preferences</span>
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={activeTab === CLIENT_TABS.PROFILE}
|
||||
title="Account"
|
||||
iconName="user-circle"
|
||||
onClick={() => setTab(CLIENT_TABS.PROFILE)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={activeTab === CLIENT_TABS.INTEGRATIONS}
|
||||
title="Integrations"
|
||||
iconName="puzzle-piece"
|
||||
onClick={() => setTab(CLIENT_TABS.INTEGRATIONS)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
iconName="tags"
|
||||
active={activeTab === CLIENT_TABS.CUSTOM_FIELDS}
|
||||
onClick={() => setTab(CLIENT_TABS.CUSTOM_FIELDS)}
|
||||
title="Metadata"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={activeTab === CLIENT_TABS.WEBHOOKS}
|
||||
title="Webhooks"
|
||||
iconName="anchor"
|
||||
onClick={() => setTab(CLIENT_TABS.WEBHOOKS)}
|
||||
/>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={activeTab === CLIENT_TABS.SITES}
|
||||
title="Projects"
|
||||
iconName="window-restore"
|
||||
onClick={() => setTab(CLIENT_TABS.SITES)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{isEnterprise && isAdmin && (
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={activeTab === CLIENT_TABS.MANAGE_ROLES}
|
||||
title="Roles & Access"
|
||||
iconName="diagram-3"
|
||||
onClick={() => setTab(CLIENT_TABS.MANAGE_ROLES)}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{isEnterprise && isAdmin && (
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={activeTab === CLIENT_TABS.AUDIT}
|
||||
title="Audit"
|
||||
iconName="list-ul"
|
||||
onClick={() => setTab(CLIENT_TABS.AUDIT)}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{isAdmin && (
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={activeTab === CLIENT_TABS.MANAGE_USERS}
|
||||
title="Team"
|
||||
iconName="users"
|
||||
onClick={() => setTab(CLIENT_TABS.MANAGE_USERS)}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={activeTab === CLIENT_TABS.NOTIFICATIONS}
|
||||
title="Notifications"
|
||||
iconName="bell"
|
||||
onClick={() => setTab(CLIENT_TABS.NOTIFICATIONS)}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={ activeTab === CLIENT_TABS.PROFILE }
|
||||
title="Account"
|
||||
iconName="user-circle"
|
||||
onClick={() => setTab(CLIENT_TABS.PROFILE) }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={ activeTab === CLIENT_TABS.INTEGRATIONS }
|
||||
title="Integrations"
|
||||
iconName="puzzle-piece"
|
||||
onClick={() => setTab(CLIENT_TABS.INTEGRATIONS) }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
iconName="tags"
|
||||
active={ activeTab === CLIENT_TABS.CUSTOM_FIELDS }
|
||||
onClick={ () => setTab(CLIENT_TABS.CUSTOM_FIELDS) }
|
||||
title="Metadata"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
{
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={ activeTab === CLIENT_TABS.WEBHOOKS }
|
||||
title="Webhooks"
|
||||
iconName="anchor"
|
||||
onClick={() => setTab(CLIENT_TABS.WEBHOOKS) }
|
||||
/>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={ activeTab === CLIENT_TABS.SITES }
|
||||
title="Projects"
|
||||
iconName="window-restore"
|
||||
onClick={() => setTab(CLIENT_TABS.SITES) }
|
||||
/>
|
||||
</div>
|
||||
|
||||
{ isEnterprise && (
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={ activeTab === CLIENT_TABS.MANAGE_ROLES }
|
||||
title="Roles & Access"
|
||||
iconName="diagram-3"
|
||||
onClick={() => setTab(CLIENT_TABS.MANAGE_ROLES) }
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{ isEnterprise && (
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={ activeTab === CLIENT_TABS.AUDIT }
|
||||
title="Audit"
|
||||
iconName="list-ul"
|
||||
onClick={() => setTab(CLIENT_TABS.AUDIT) }
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={ activeTab === CLIENT_TABS.MANAGE_USERS }
|
||||
title="Team"
|
||||
iconName="users"
|
||||
onClick={() => setTab(CLIENT_TABS.MANAGE_USERS) }
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="mb-4">
|
||||
<SideMenuitem
|
||||
active={ activeTab === CLIENT_TABS.NOTIFICATIONS }
|
||||
title="Notifications"
|
||||
iconName="bell"
|
||||
onClick={() => setTab(CLIENT_TABS.NOTIFICATIONS) }
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
export default connect(state => ({
|
||||
isEnterprise: state.getIn([ 'user', 'account', 'edition' ]) === 'ee',
|
||||
export default connect((state) => ({
|
||||
isEnterprise: state.getIn(['user', 'account', 'edition']) === 'ee',
|
||||
account: state.getIn(['user', 'account']),
|
||||
}))(withRouter(PreferencesMenu));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue