feat(plugin-authentication): CB-999 hide menu in aws product

This commit is contained in:
Naumov Alexey
2021-06-11 14:29:20 +03:00
parent bde77f0a9a
commit 6edfddb92a
3 changed files with 31 additions and 5 deletions
@@ -39,7 +39,7 @@ export default [
['connections_connection_access_grant', 'Grant'],
['connections_connection_access_edit', 'Edit'],
['connections_connection_access_cloud_placeholder', 'Cloud connections are visible to all users. Access management can be configured in "AWS Management Console".'],
['connections_connection_access_empty_table_placeholder', 'There are no items yet. Press edit button to grant role or user.'],
['connections_connection_access_empty_table_placeholder', 'There are no items yet. Press Edit button to grant role or user.'],
['connections_connection_access_filter_placeholder', 'Search for user or role name'],
['connections_connection_access_filter_no_result', 'No results have been found.'],
['connections_connection_access_admin_info', 'Administators see all connections.'],
@@ -6,7 +6,9 @@
* you may not use this file except in compliance with the License.
*/
import { computed } from 'mobx';
import { observer } from 'mobx-react-lite';
import { useMemo } from 'react';
import styled, { css } from 'reshadow';
import { topMenuStyles } from '@cloudbeaver/core-app';
@@ -42,17 +44,41 @@ export const UserInfo = observer(function UserInfo() {
const authInfoService = useService(AuthInfoService);
const style = useStyles(styles, userMenuStyles);
const { panel, hidden } = useMemo(
() => {
const panel = userMenuService.getMenu();
const hidden = computed(() => !panel.menuItems.length
|| panel.menuItems.every(item => item.isHidden));
return { panel, hidden };
},
[userMenuService]
);
if (!authInfoService.userInfo) {
return null;
}
return styled(style)(
<MenuTrigger panel={userMenuService.getMenu()} style={[topMenuStyles]}>
const userName = authInfoService.userInfo.displayName || authInfoService.userInfo.userId;
if (hidden.get()) {
return styled(style)(
<user>
<user-icon>
<IconOrImage icon='user' viewBox='0 0 28 28' />
</user-icon>
<user-name>{authInfoService.userInfo.displayName || authInfoService.userInfo.userId}</user-name>
<user-name>{userName}</user-name>
</user>
);
}
return styled(style)(
<MenuTrigger panel={panel} style={[topMenuStyles]}>
<user>
<user-icon>
<IconOrImage icon='user' viewBox='0 0 28 28' />
</user-icon>
<user-name>{userName}</user-name>
</user>
</MenuTrigger>
);
@@ -10,7 +10,7 @@ import { css } from 'reshadow';
export const userMenuStyles = css`
MenuTrigger {
padding: 0 16px !important;
padding: 0 !important;
height: 48px;
cursor: pointer;
background: none;