Skip to content

Commit 35f9fd6

Browse files
committed
Clean up based on review
- Remove Enterprise permissions from the community user permissions - Clean up how we retrieved a boolean value in tests - Fix error message
1 parent 5cd7868 commit 35f9fd6

5 files changed

Lines changed: 16 additions & 80 deletions

File tree

packages/app-utils/src/components/useUser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { UserContext } from '@deephaven/auth-plugins';
44
export function useUser() {
55
return useContextOrThrow(
66
UserContext,
7-
'No server config available in useServerConfig. Was code wrapped in ServerConfigBootstrap or ServerConfigContext.Provider?'
7+
'No user available in useUser. Was code wrapped in UserBootstrap or UserContext.Provider?'
88
);
99
}
1010

packages/auth-plugins/src/UserUtils.test.ts

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,7 @@ describe('getUser', () => {
2222
operateAs: '',
2323
groups: [],
2424
permissions: {
25-
isACLEditor: false,
26-
isSuperUser: false,
27-
isQueryViewOnly: false,
28-
isNonInteractive: false,
2925
canUsePanels: true,
30-
canCreateDashboard: true,
31-
canCreateCodeStudio: true,
32-
canCreateQueryMonitor: true,
3326
canCopy: true,
3427
canDownloadCsv: true,
3528
canLogout: true,
@@ -42,17 +35,7 @@ describe('getUser', () => {
4235
serverConfig.set('internal.webClient.appInit.name', 'test');
4336
serverConfig.set('internal.webClient.appInit.operateAs', 'test-operator');
4437
serverConfig.set('internal.webClient.appInit.groups', 'group1,group2');
45-
serverConfig.set('internal.webClient.appInit.isACLEditor', 'true');
46-
serverConfig.set('internal.webClient.appInit.isSuperUser', 'true');
47-
serverConfig.set('internal.webClient.appInit.isQueryViewOnly', 'true');
48-
serverConfig.set('internal.webClient.appInit.isNonInteractive', 'true');
4938
serverConfig.set('internal.webClient.appInit.canUsePanels', 'false');
50-
serverConfig.set('internal.webClient.appInit.canCreateDashboard', 'false');
51-
serverConfig.set('internal.webClient.appInit.canCreateCodeStudio', 'false');
52-
serverConfig.set(
53-
'internal.webClient.appInit.canCreateQueryMonitor',
54-
'false'
55-
);
5639
serverConfig.set('internal.webClient.appInit.canCopy', 'false');
5740
serverConfig.set('internal.webClient.appInit.canDownloadCsv', 'false');
5841
serverConfig.set('internal.webClient.appInit.canLogout', 'false');
@@ -61,14 +44,7 @@ describe('getUser', () => {
6144
operateAs: 'test-operator',
6245
groups: ['group1', 'group2'],
6346
permissions: {
64-
isACLEditor: true,
65-
isSuperUser: true,
66-
isQueryViewOnly: true,
67-
isNonInteractive: true,
6847
canUsePanels: false,
69-
canCreateDashboard: false,
70-
canCreateCodeStudio: false,
71-
canCreateQueryMonitor: false,
7248
canCopy: false,
7349
canDownloadCsv: false,
7450
canLogout: false,
@@ -81,17 +57,7 @@ describe('getUser', () => {
8157
serverConfig.set('internal.webClient.appInit.name', 'test');
8258
serverConfig.set('internal.webClient.appInit.operateAs', 'test-operator');
8359
serverConfig.set('internal.webClient.appInit.groups', 'group1,group2');
84-
serverConfig.set('internal.webClient.appInit.isACLEditor', 'true');
85-
serverConfig.set('internal.webClient.appInit.isSuperUser', 'true');
86-
serverConfig.set('internal.webClient.appInit.isQueryViewOnly', 'true');
87-
serverConfig.set('internal.webClient.appInit.isNonInteractive', 'true');
8860
serverConfig.set('internal.webClient.appInit.canUsePanels', 'false');
89-
serverConfig.set('internal.webClient.appInit.canCreateDashboard', 'false');
90-
serverConfig.set('internal.webClient.appInit.canCreateCodeStudio', 'false');
91-
serverConfig.set(
92-
'internal.webClient.appInit.canCreateQueryMonitor',
93-
'false'
94-
);
9561
serverConfig.set('internal.webClient.appInit.canCopy', 'false');
9662
serverConfig.set('internal.webClient.appInit.canDownloadCsv', 'false');
9763
serverConfig.set('internal.webClient.appInit.canLogout', 'false');
@@ -104,14 +70,7 @@ describe('getUser', () => {
10470
groups: ['group3', 'group4'],
10571
},
10672
{
107-
isACLEditor: false,
108-
isSuperUser: false,
109-
isQueryViewOnly: false,
110-
isNonInteractive: false,
11173
canUsePanels: true,
112-
canCreateDashboard: true,
113-
canCreateCodeStudio: true,
114-
canCreateQueryMonitor: true,
11574
canCopy: true,
11675
canDownloadCsv: true,
11776
canLogout: true,
@@ -122,14 +81,7 @@ describe('getUser', () => {
12281
operateAs: 'test2-operator',
12382
groups: ['group3', 'group4'],
12483
permissions: {
125-
isACLEditor: false,
126-
isSuperUser: false,
127-
isQueryViewOnly: false,
128-
isNonInteractive: false,
12984
canUsePanels: true,
130-
canCreateDashboard: true,
131-
canCreateCodeStudio: true,
132-
canCreateQueryMonitor: true,
13385
canCopy: true,
13486
canDownloadCsv: true,
13587
canLogout: true,

packages/auth-plugins/src/UserUtils.ts

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import { User, UserPermissions } from '@deephaven/redux';
2+
import Log from '@deephaven/log';
3+
4+
const log = Log.module('UserUtils');
25

36
/**
47
* Retrieve a value from the AppInit config
@@ -28,24 +31,24 @@ export function getUserFromConfig(
2831
function getValue(key: string): string | undefined {
2932
return getAppInitValue(serverConfig, key);
3033
}
31-
function getBooleanValue(key: string, defaultValue = true): boolean {
32-
if (defaultValue) {
33-
return !(getValue(key) === 'false');
34+
function getBooleanValue(key: string, defaultValue: boolean): boolean {
35+
const value = getValue(key);
36+
if (value === 'true') {
37+
return true;
38+
}
39+
if (value === 'false') {
40+
return false;
41+
}
42+
if (value !== undefined) {
43+
log.warn(`Unexpected value for ${key}: ${value}`);
3444
}
35-
return getValue(key) === 'true';
45+
return defaultValue;
3646
}
3747
const name = getValue('name') ?? '';
3848
const operateAs = getValue('operateAs') ?? name;
3949
const groups = getValue('groups')?.split(',') ?? [];
40-
const isACLEditor = getBooleanValue('isACLEditor', false);
41-
const isSuperUser = getBooleanValue('isSuperUser', false);
42-
const isQueryViewOnly = getBooleanValue('isQueryViewOnly', false);
43-
const isNonInteractive = getBooleanValue('isNonInteractive', false);
4450
const canCopy = getBooleanValue('canCopy', true);
4551
const canDownloadCsv = getBooleanValue('canDownloadCsv', true);
46-
const canCreateDashboard = getBooleanValue('canCreateDashboard', true);
47-
const canCreateCodeStudio = getBooleanValue('canCreateCodeStudio', true);
48-
const canCreateQueryMonitor = getBooleanValue('canCreateQueryMonitor', true);
4952
const canUsePanels = getBooleanValue('canUsePanels', true);
5053
const canLogout = getBooleanValue('canLogout', true);
5154

@@ -55,14 +58,7 @@ export function getUserFromConfig(
5558
groups,
5659
...overrides,
5760
permissions: {
58-
isACLEditor,
59-
isSuperUser,
60-
isQueryViewOnly,
61-
isNonInteractive,
6261
canUsePanels,
63-
canCreateDashboard,
64-
canCreateCodeStudio,
65-
canCreateQueryMonitor,
6662
canCopy,
6763
canDownloadCsv,
6864
canLogout,

packages/dashboard-core-plugins/src/prop-types/UIPropTypes.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,10 @@ const User = PropTypes.shape({
3131
operateAs: PropTypes.string.isRequired,
3232
groups: PropTypes.arrayOf(PropTypes.string).isRequired,
3333
permissions: PropTypes.shape({
34-
isSuperUser: PropTypes.bool.isRequired,
35-
isQueryViewOnly: PropTypes.bool.isRequired,
36-
isNonInteractive: PropTypes.bool.isRequired,
3734
canUsePanels: PropTypes.bool.isRequired,
38-
canCreateDashboard: PropTypes.bool.isRequired,
39-
canCreateCodeStudio: PropTypes.bool.isRequired,
40-
canCreateQueryMonitor: PropTypes.bool.isRequired,
4135
canCopy: PropTypes.bool.isRequired,
4236
canDownloadCsv: PropTypes.bool.isRequired,
37+
canLogout: PropTypes.bool.isRequired,
4338
}).isRequired,
4439
});
4540

packages/redux/src/store.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,7 @@ export interface DeephavenPluginModule {}
1515
export type DeephavenPluginModuleMap = Map<string, DeephavenPluginModule>;
1616

1717
export interface UserPermissions {
18-
isACLEditor: boolean;
19-
isSuperUser: boolean;
20-
isQueryViewOnly: boolean;
21-
isNonInteractive: boolean;
2218
canUsePanels: boolean;
23-
canCreateDashboard: boolean;
24-
canCreateCodeStudio: boolean;
25-
canCreateQueryMonitor: boolean;
2619
canCopy: boolean;
2720
canDownloadCsv: boolean;
2821
canLogout: boolean;

0 commit comments

Comments
 (0)