@portaidentity/cli 1.7.3 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +125 -105
- package/dist/admin/admin-date-time.d.ts +6 -0
- package/dist/admin/admin-date-time.d.ts.map +1 -0
- package/dist/admin/admin-date-time.js +33 -0
- package/dist/admin/admin-date-time.js.map +1 -0
- package/dist/admin/application-client-features.d.ts +38 -0
- package/dist/admin/application-client-features.d.ts.map +1 -0
- package/dist/admin/application-client-features.js +545 -0
- package/dist/admin/application-client-features.js.map +1 -0
- package/dist/admin/application-controller.d.ts +58 -0
- package/dist/admin/application-controller.d.ts.map +1 -0
- package/dist/admin/application-controller.js +286 -0
- package/dist/admin/application-controller.js.map +1 -0
- package/dist/admin/application-dialogs.d.ts +91 -0
- package/dist/admin/application-dialogs.d.ts.map +1 -0
- package/dist/admin/application-dialogs.js +250 -0
- package/dist/admin/application-dialogs.js.map +1 -0
- package/dist/admin/application-rbac-controller.d.ts +56 -0
- package/dist/admin/application-rbac-controller.d.ts.map +1 -0
- package/dist/admin/application-rbac-controller.js +280 -0
- package/dist/admin/application-rbac-controller.js.map +1 -0
- package/dist/admin/application-rbac-features.d.ts +51 -0
- package/dist/admin/application-rbac-features.d.ts.map +1 -0
- package/dist/admin/application-rbac-features.js +175 -0
- package/dist/admin/application-rbac-features.js.map +1 -0
- package/dist/admin/application-rbac-workspace.d.ts +62 -0
- package/dist/admin/application-rbac-workspace.d.ts.map +1 -0
- package/dist/admin/application-rbac-workspace.js +344 -0
- package/dist/admin/application-rbac-workspace.js.map +1 -0
- package/dist/admin/application-runtime.d.ts +44 -0
- package/dist/admin/application-runtime.d.ts.map +1 -0
- package/dist/admin/application-runtime.js +183 -0
- package/dist/admin/application-runtime.js.map +1 -0
- package/dist/admin/application-service.d.ts +39 -0
- package/dist/admin/application-service.d.ts.map +1 -0
- package/dist/admin/application-service.js +248 -0
- package/dist/admin/application-service.js.map +1 -0
- package/dist/admin/application-state.d.ts +109 -0
- package/dist/admin/application-state.d.ts.map +1 -0
- package/dist/admin/application-state.js +3 -0
- package/dist/admin/application-state.js.map +1 -0
- package/dist/admin/application-workspace.d.ts +77 -0
- package/dist/admin/application-workspace.d.ts.map +1 -0
- package/dist/admin/application-workspace.js +302 -0
- package/dist/admin/application-workspace.js.map +1 -0
- package/dist/admin/application.d.ts +88 -0
- package/dist/admin/application.d.ts.map +1 -0
- package/dist/admin/application.js +932 -0
- package/dist/admin/application.js.map +1 -0
- package/dist/admin/client-authentication-dialog.d.ts +77 -0
- package/dist/admin/client-authentication-dialog.d.ts.map +1 -0
- package/dist/admin/client-authentication-dialog.js +217 -0
- package/dist/admin/client-authentication-dialog.js.map +1 -0
- package/dist/admin/client-controller.d.ts +58 -0
- package/dist/admin/client-controller.d.ts.map +1 -0
- package/dist/admin/client-controller.js +462 -0
- package/dist/admin/client-controller.js.map +1 -0
- package/dist/admin/client-credential-dialogs.d.ts +36 -0
- package/dist/admin/client-credential-dialogs.d.ts.map +1 -0
- package/dist/admin/client-credential-dialogs.js +145 -0
- package/dist/admin/client-credential-dialogs.js.map +1 -0
- package/dist/admin/client-dialogs.d.ts +64 -0
- package/dist/admin/client-dialogs.d.ts.map +1 -0
- package/dist/admin/client-dialogs.js +110 -0
- package/dist/admin/client-dialogs.js.map +1 -0
- package/dist/admin/client-form-scroller.d.ts +17 -0
- package/dist/admin/client-form-scroller.d.ts.map +1 -0
- package/dist/admin/client-form-scroller.js +67 -0
- package/dist/admin/client-form-scroller.js.map +1 -0
- package/dist/admin/client-registration-dialog.d.ts +27 -0
- package/dist/admin/client-registration-dialog.d.ts.map +1 -0
- package/dist/admin/client-registration-dialog.js +195 -0
- package/dist/admin/client-registration-dialog.js.map +1 -0
- package/dist/admin/client-service.d.ts +41 -0
- package/dist/admin/client-service.d.ts.map +1 -0
- package/dist/admin/client-service.js +486 -0
- package/dist/admin/client-service.js.map +1 -0
- package/dist/admin/client-state.d.ts +159 -0
- package/dist/admin/client-state.d.ts.map +1 -0
- package/dist/admin/client-state.js +3 -0
- package/dist/admin/client-state.js.map +1 -0
- package/dist/admin/client-workspace.d.ts +88 -0
- package/dist/admin/client-workspace.d.ts.map +1 -0
- package/dist/admin/client-workspace.js +491 -0
- package/dist/admin/client-workspace.js.map +1 -0
- package/dist/admin/delete-confirmation-layout.d.ts +38 -0
- package/dist/admin/delete-confirmation-layout.d.ts.map +1 -0
- package/dist/admin/delete-confirmation-layout.js +52 -0
- package/dist/admin/delete-confirmation-layout.js.map +1 -0
- package/dist/admin/index.d.ts +64 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +31 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/organization-controller.d.ts +77 -0
- package/dist/admin/organization-controller.d.ts.map +1 -0
- package/dist/admin/organization-controller.js +472 -0
- package/dist/admin/organization-controller.js.map +1 -0
- package/dist/admin/organization-dialogs.d.ts +63 -0
- package/dist/admin/organization-dialogs.d.ts.map +1 -0
- package/dist/admin/organization-dialogs.js +303 -0
- package/dist/admin/organization-dialogs.js.map +1 -0
- package/dist/admin/organization-service.d.ts +110 -0
- package/dist/admin/organization-service.d.ts.map +1 -0
- package/dist/admin/organization-service.js +548 -0
- package/dist/admin/organization-service.js.map +1 -0
- package/dist/admin/organization-workspace.d.ts +29 -0
- package/dist/admin/organization-workspace.d.ts.map +1 -0
- package/dist/admin/organization-workspace.js +421 -0
- package/dist/admin/organization-workspace.js.map +1 -0
- package/dist/admin/portability-controller.d.ts +83 -0
- package/dist/admin/portability-controller.d.ts.map +1 -0
- package/dist/admin/portability-controller.js +466 -0
- package/dist/admin/portability-controller.js.map +1 -0
- package/dist/admin/portability-service.d.ts +31 -0
- package/dist/admin/portability-service.d.ts.map +1 -0
- package/dist/admin/portability-service.js +51 -0
- package/dist/admin/portability-service.js.map +1 -0
- package/dist/admin/portability-state.d.ts +88 -0
- package/dist/admin/portability-state.d.ts.map +1 -0
- package/dist/admin/portability-state.js +3 -0
- package/dist/admin/portability-state.js.map +1 -0
- package/dist/admin/portability-workspace.d.ts +78 -0
- package/dist/admin/portability-workspace.d.ts.map +1 -0
- package/dist/admin/portability-workspace.js +337 -0
- package/dist/admin/portability-workspace.js.map +1 -0
- package/dist/admin/presentation.d.ts +46 -0
- package/dist/admin/presentation.d.ts.map +1 -0
- package/dist/admin/presentation.js +271 -0
- package/dist/admin/presentation.js.map +1 -0
- package/dist/admin/rbac-dialogs.d.ts +73 -0
- package/dist/admin/rbac-dialogs.d.ts.map +1 -0
- package/dist/admin/rbac-dialogs.js +345 -0
- package/dist/admin/rbac-dialogs.js.map +1 -0
- package/dist/admin/rbac-service.d.ts +47 -0
- package/dist/admin/rbac-service.d.ts.map +1 -0
- package/dist/admin/rbac-service.js +258 -0
- package/dist/admin/rbac-service.js.map +1 -0
- package/dist/admin/rbac-state.d.ts +129 -0
- package/dist/admin/rbac-state.d.ts.map +1 -0
- package/dist/admin/rbac-state.js +136 -0
- package/dist/admin/rbac-state.js.map +1 -0
- package/dist/admin/selectable-read-only-input.d.ts +18 -0
- package/dist/admin/selectable-read-only-input.d.ts.map +1 -0
- package/dist/admin/selectable-read-only-input.js +24 -0
- package/dist/admin/selectable-read-only-input.js.map +1 -0
- package/dist/admin/session-service.d.ts +169 -0
- package/dist/admin/session-service.d.ts.map +1 -0
- package/dist/admin/session-service.js +353 -0
- package/dist/admin/session-service.js.map +1 -0
- package/dist/admin/state.d.ts +301 -0
- package/dist/admin/state.d.ts.map +1 -0
- package/dist/admin/state.js +10 -0
- package/dist/admin/state.js.map +1 -0
- package/dist/admin/system-config-controller.d.ts +58 -0
- package/dist/admin/system-config-controller.d.ts.map +1 -0
- package/dist/admin/system-config-controller.js +218 -0
- package/dist/admin/system-config-controller.js.map +1 -0
- package/dist/admin/system-config-service.d.ts +54 -0
- package/dist/admin/system-config-service.d.ts.map +1 -0
- package/dist/admin/system-config-service.js +180 -0
- package/dist/admin/system-config-service.js.map +1 -0
- package/dist/admin/system-config-state.d.ts +77 -0
- package/dist/admin/system-config-state.d.ts.map +1 -0
- package/dist/admin/system-config-state.js +78 -0
- package/dist/admin/system-config-state.js.map +1 -0
- package/dist/admin/system-config-workspace.d.ts +47 -0
- package/dist/admin/system-config-workspace.d.ts.map +1 -0
- package/dist/admin/system-config-workspace.js +217 -0
- package/dist/admin/system-config-workspace.js.map +1 -0
- package/dist/admin/user-controller-types.d.ts +67 -0
- package/dist/admin/user-controller-types.d.ts.map +1 -0
- package/dist/admin/user-controller-types.js +3 -0
- package/dist/admin/user-controller-types.js.map +1 -0
- package/dist/admin/user-controller.d.ts +6 -0
- package/dist/admin/user-controller.d.ts.map +1 -0
- package/dist/admin/user-controller.js +674 -0
- package/dist/admin/user-controller.js.map +1 -0
- package/dist/admin/user-dialog-fields.d.ts +44 -0
- package/dist/admin/user-dialog-fields.d.ts.map +1 -0
- package/dist/admin/user-dialog-fields.js +130 -0
- package/dist/admin/user-dialog-fields.js.map +1 -0
- package/dist/admin/user-dialogs.d.ts +66 -0
- package/dist/admin/user-dialogs.d.ts.map +1 -0
- package/dist/admin/user-dialogs.js +374 -0
- package/dist/admin/user-dialogs.js.map +1 -0
- package/dist/admin/user-role-controller.d.ts +82 -0
- package/dist/admin/user-role-controller.d.ts.map +1 -0
- package/dist/admin/user-role-controller.js +337 -0
- package/dist/admin/user-role-controller.js.map +1 -0
- package/dist/admin/user-role-dialog.d.ts +94 -0
- package/dist/admin/user-role-dialog.d.ts.map +1 -0
- package/dist/admin/user-role-dialog.js +265 -0
- package/dist/admin/user-role-dialog.js.map +1 -0
- package/dist/admin/user-service-types.d.ts +100 -0
- package/dist/admin/user-service-types.d.ts.map +1 -0
- package/dist/admin/user-service-types.js +3 -0
- package/dist/admin/user-service-types.js.map +1 -0
- package/dist/admin/user-service.d.ts +14 -0
- package/dist/admin/user-service.d.ts.map +1 -0
- package/dist/admin/user-service.js +612 -0
- package/dist/admin/user-service.js.map +1 -0
- package/dist/admin/user-state.d.ts +158 -0
- package/dist/admin/user-state.d.ts.map +1 -0
- package/dist/admin/user-state.js +3 -0
- package/dist/admin/user-state.js.map +1 -0
- package/dist/admin/user-workspace.d.ts +65 -0
- package/dist/admin/user-workspace.d.ts.map +1 -0
- package/dist/admin/user-workspace.js +366 -0
- package/dist/admin/user-workspace.js.map +1 -0
- package/dist/auth/browser-flow.d.ts +27 -1
- package/dist/auth/browser-flow.d.ts.map +1 -1
- package/dist/auth/browser-flow.js +55 -33
- package/dist/auth/browser-flow.js.map +1 -1
- package/dist/auth/callback-server.d.ts.map +1 -1
- package/dist/auth/callback-server.js +5 -9
- package/dist/auth/callback-server.js.map +1 -1
- package/dist/auth/id-token-verifier.d.ts +39 -0
- package/dist/auth/id-token-verifier.d.ts.map +1 -0
- package/dist/auth/id-token-verifier.js +104 -0
- package/dist/auth/id-token-verifier.js.map +1 -0
- package/dist/auth/login-coordinator.d.ts +72 -0
- package/dist/auth/login-coordinator.d.ts.map +1 -0
- package/dist/auth/login-coordinator.js +190 -0
- package/dist/auth/login-coordinator.js.map +1 -0
- package/dist/auth/metadata.d.ts +2 -1
- package/dist/auth/metadata.d.ts.map +1 -1
- package/dist/auth/metadata.js +67 -6
- package/dist/auth/metadata.js.map +1 -1
- package/dist/auth/types.d.ts +14 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/client-factory.d.ts.map +1 -1
- package/dist/client-factory.js +15 -2
- package/dist/client-factory.js.map +1 -1
- package/dist/commands/admin.d.ts +22 -0
- package/dist/commands/admin.d.ts.map +1 -0
- package/dist/commands/admin.js +112 -0
- package/dist/commands/admin.js.map +1 -0
- package/dist/commands/app-claim.d.ts.map +1 -1
- package/dist/commands/app-claim.js +11 -4
- package/dist/commands/app-claim.js.map +1 -1
- package/dist/commands/app-module.d.ts.map +1 -1
- package/dist/commands/app-module.js +61 -12
- package/dist/commands/app-module.js.map +1 -1
- package/dist/commands/app-permission.d.ts.map +1 -1
- package/dist/commands/app-permission.js +66 -24
- package/dist/commands/app-permission.js.map +1 -1
- package/dist/commands/app-role.d.ts.map +1 -1
- package/dist/commands/app-role.js +48 -27
- package/dist/commands/app-role.js.map +1 -1
- package/dist/commands/app.d.ts.map +1 -1
- package/dist/commands/app.js +37 -25
- package/dist/commands/app.js.map +1 -1
- package/dist/commands/bulk.d.ts.map +1 -1
- package/dist/commands/bulk.js +9 -2
- package/dist/commands/bulk.js.map +1 -1
- package/dist/commands/client-secret.d.ts.map +1 -1
- package/dist/commands/client-secret.js +12 -6
- package/dist/commands/client-secret.js.map +1 -1
- package/dist/commands/client.d.ts +3 -2
- package/dist/commands/client.d.ts.map +1 -1
- package/dist/commands/client.js +102 -43
- package/dist/commands/client.js.map +1 -1
- package/dist/commands/config.d.ts +4 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +68 -7
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/export.d.ts +6 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +182 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/import.d.ts +6 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +142 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/keys.d.ts.map +1 -1
- package/dist/commands/keys.js +11 -4
- package/dist/commands/keys.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +24 -10
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/org.d.ts +2 -4
- package/dist/commands/org.d.ts.map +1 -1
- package/dist/commands/org.js +16 -76
- package/dist/commands/org.js.map +1 -1
- package/dist/commands/user-role.d.ts.map +1 -1
- package/dist/commands/user-role.js +19 -14
- package/dist/commands/user-role.js.map +1 -1
- package/dist/commands/user.d.ts +3 -2
- package/dist/commands/user.d.ts.map +1 -1
- package/dist/commands/user.js +47 -71
- package/dist/commands/user.js.map +1 -1
- package/dist/commands/version.d.ts +1 -1
- package/dist/commands/version.js +1 -1
- package/dist/credential-lock.d.ts +20 -0
- package/dist/credential-lock.d.ts.map +1 -0
- package/dist/credential-lock.js +130 -0
- package/dist/credential-lock.js.map +1 -0
- package/dist/credential-store.d.ts +14 -0
- package/dist/credential-store.d.ts.map +1 -1
- package/dist/credential-store.js +114 -3
- package/dist/credential-store.js.map +1 -1
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js +2 -0
- package/dist/error-handler.js.map +1 -1
- package/dist/global-options.d.ts +8 -0
- package/dist/global-options.d.ts.map +1 -1
- package/dist/global-options.js +19 -8
- package/dist/global-options.js.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/output.d.ts +11 -0
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +25 -6
- package/dist/output.js.map +1 -1
- package/dist/prompt.d.ts +2 -2
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +27 -7
- package/dist/prompt.js.map +1 -1
- package/package.json +7 -3
- package/dist/commands/gui.d.ts +0 -21
- package/dist/commands/gui.d.ts.map +0 -1
- package/dist/commands/gui.js +0 -67
- package/dist/commands/gui.js.map +0 -1
- package/dist/commands/provision.d.ts +0 -47
- package/dist/commands/provision.d.ts.map +0 -1
- package/dist/commands/provision.js +0 -444
- package/dist/commands/provision.js.map +0 -1
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/** JSVision presentation for the embedded Porta administration shell. */
|
|
2
|
+
import { Commands, Desktop, grow, item, MenuBar, spacer, statusItem, statusLine, subMenu, View, Window, } from '@jsvision/ui';
|
|
3
|
+
import { PORTABILITY_COMMAND } from './portability-controller.js';
|
|
4
|
+
import { SYSTEM_CONFIG_COMMAND } from './system-config-controller.js';
|
|
5
|
+
/** Command names handled by the administration application. */
|
|
6
|
+
export const ADMIN_COMMANDS = {
|
|
7
|
+
authenticate: 'authenticate',
|
|
8
|
+
retry: 'retry',
|
|
9
|
+
reauthenticate: 'reauthenticate',
|
|
10
|
+
whoAmI: 'who-am-i',
|
|
11
|
+
createOrganization: 'create-organization',
|
|
12
|
+
switchOrganization: 'switch-organization',
|
|
13
|
+
manageOrganization: 'manage-organization',
|
|
14
|
+
browseUsers: 'browse-users',
|
|
15
|
+
createUser: 'create-user',
|
|
16
|
+
inviteUser: 'invite-user',
|
|
17
|
+
unavailableUser: 'user-action-unavailable',
|
|
18
|
+
browseApplications: 'browse-applications',
|
|
19
|
+
createApplication: 'create-application',
|
|
20
|
+
browseClients: 'browse-clients',
|
|
21
|
+
createClient: 'create-client',
|
|
22
|
+
unavailableClient: 'client-action-unavailable',
|
|
23
|
+
portability: PORTABILITY_COMMAND,
|
|
24
|
+
systemConfig: SYSTEM_CONFIG_COMMAND,
|
|
25
|
+
cancel: 'cancel',
|
|
26
|
+
};
|
|
27
|
+
/** Minimum geometry that can display a useful compact shell. */
|
|
28
|
+
const COMPACT_WIDTH = 32;
|
|
29
|
+
const COMPACT_HEIGHT = 8;
|
|
30
|
+
/** Provides a stable focus target and the resize-only fallback over the desktop. */
|
|
31
|
+
class AdminLandingView extends View {
|
|
32
|
+
reportRecoverableGeometry;
|
|
33
|
+
/** Creates the otherwise blank landing surface. */
|
|
34
|
+
constructor(reportRecoverableGeometry) {
|
|
35
|
+
super();
|
|
36
|
+
this.reportRecoverableGeometry = reportRecoverableGeometry;
|
|
37
|
+
this.focusable = true;
|
|
38
|
+
}
|
|
39
|
+
/** Draws guidance only when the terminal is too small to operate safely. */
|
|
40
|
+
draw(context) {
|
|
41
|
+
const { width, height } = context.size;
|
|
42
|
+
const recoverable = width >= COMPACT_WIDTH && height >= COMPACT_HEIGHT;
|
|
43
|
+
this.reportRecoverableGeometry(recoverable);
|
|
44
|
+
if (recoverable)
|
|
45
|
+
return;
|
|
46
|
+
const style = context.color('desktop');
|
|
47
|
+
context.text(1, 1, 'Terminal too small.', style);
|
|
48
|
+
context.text(1, 2, `Resize to at least ${COMPACT_WIDTH}x${COMPACT_HEIGHT}.`, style);
|
|
49
|
+
context.text(1, Math.max(3, height - 2), 'Alt-X Quit', style);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** Builds the real JSVision view tree and application chrome. */
|
|
53
|
+
export function createAdminPresentation(initialState, _insecure, viewport, utf8 = true) {
|
|
54
|
+
let currentState = initialState;
|
|
55
|
+
const belowRecoverable = viewport !== undefined && (viewport.width < COMPACT_WIDTH || viewport.height < COMPACT_HEIGHT);
|
|
56
|
+
const fullMenuItems = () => {
|
|
57
|
+
// Runtime-injected initial state may predate capability claims; missing claims grant nothing.
|
|
58
|
+
const capabilities = currentState.kind === 'authenticated'
|
|
59
|
+
? (currentState.capabilities ?? {
|
|
60
|
+
canReadOrganizations: false,
|
|
61
|
+
canCreateOrganizations: false,
|
|
62
|
+
canUpdateOrganizations: false,
|
|
63
|
+
canSuspendOrganizations: false,
|
|
64
|
+
canReadUsers: false,
|
|
65
|
+
canCreateUsers: false,
|
|
66
|
+
canInviteUsers: false,
|
|
67
|
+
canUpdateUsers: false,
|
|
68
|
+
canManageUserLifecycle: false,
|
|
69
|
+
canDeleteOrganizations: false,
|
|
70
|
+
canDeleteUsers: false,
|
|
71
|
+
canReadApplications: false,
|
|
72
|
+
canCreateApplications: false,
|
|
73
|
+
canUpdateApplications: false,
|
|
74
|
+
canDeleteApplications: false,
|
|
75
|
+
canDeleteModules: false,
|
|
76
|
+
canReadRoles: false,
|
|
77
|
+
canCreateRoles: false,
|
|
78
|
+
canUpdateRoles: false,
|
|
79
|
+
canDeleteRoles: false,
|
|
80
|
+
canReadPermissions: false,
|
|
81
|
+
canCreatePermissions: false,
|
|
82
|
+
canUpdatePermissions: false,
|
|
83
|
+
canDeletePermissions: false,
|
|
84
|
+
canAssignRoles: false,
|
|
85
|
+
canReadClients: false,
|
|
86
|
+
canCreateClients: false,
|
|
87
|
+
canUpdateClients: false,
|
|
88
|
+
canDeleteClients: false,
|
|
89
|
+
canRevokeClientSecrets: false,
|
|
90
|
+
canExportData: false,
|
|
91
|
+
canReadConfig: false,
|
|
92
|
+
canUpdateConfig: false,
|
|
93
|
+
canImportData: false,
|
|
94
|
+
canReadClaims: false,
|
|
95
|
+
canCreateClaims: false,
|
|
96
|
+
canUpdateClaims: false,
|
|
97
|
+
isSuperAdmin: false,
|
|
98
|
+
})
|
|
99
|
+
: {
|
|
100
|
+
canReadOrganizations: false,
|
|
101
|
+
canCreateOrganizations: false,
|
|
102
|
+
canUpdateOrganizations: false,
|
|
103
|
+
canSuspendOrganizations: false,
|
|
104
|
+
canReadUsers: false,
|
|
105
|
+
canCreateUsers: false,
|
|
106
|
+
canInviteUsers: false,
|
|
107
|
+
canUpdateUsers: false,
|
|
108
|
+
canManageUserLifecycle: false,
|
|
109
|
+
canDeleteOrganizations: false,
|
|
110
|
+
canDeleteUsers: false,
|
|
111
|
+
canReadApplications: false,
|
|
112
|
+
canCreateApplications: false,
|
|
113
|
+
canUpdateApplications: false,
|
|
114
|
+
canDeleteApplications: false,
|
|
115
|
+
canDeleteModules: false,
|
|
116
|
+
canReadRoles: false,
|
|
117
|
+
canCreateRoles: false,
|
|
118
|
+
canUpdateRoles: false,
|
|
119
|
+
canDeleteRoles: false,
|
|
120
|
+
canReadPermissions: false,
|
|
121
|
+
canCreatePermissions: false,
|
|
122
|
+
canUpdatePermissions: false,
|
|
123
|
+
canDeletePermissions: false,
|
|
124
|
+
canAssignRoles: false,
|
|
125
|
+
canReadClients: false,
|
|
126
|
+
canCreateClients: false,
|
|
127
|
+
canUpdateClients: false,
|
|
128
|
+
canDeleteClients: false,
|
|
129
|
+
canRevokeClientSecrets: false,
|
|
130
|
+
canExportData: false,
|
|
131
|
+
canReadConfig: false,
|
|
132
|
+
canUpdateConfig: false,
|
|
133
|
+
canImportData: false,
|
|
134
|
+
canReadClaims: false,
|
|
135
|
+
canCreateClaims: false,
|
|
136
|
+
canUpdateClaims: false,
|
|
137
|
+
isSuperAdmin: false,
|
|
138
|
+
};
|
|
139
|
+
const hasOrganization = currentState.kind === 'authenticated' && currentState.organization;
|
|
140
|
+
const hasUserCapability = capabilities.canReadUsers ||
|
|
141
|
+
capabilities.canCreateUsers ||
|
|
142
|
+
capabilities.canInviteUsers ||
|
|
143
|
+
capabilities.canUpdateUsers ||
|
|
144
|
+
capabilities.canManageUserLifecycle ||
|
|
145
|
+
capabilities.canDeleteUsers;
|
|
146
|
+
const unavailableUserItem = (label, reason) => item(`${label} (${reason})`, ADMIN_COMMANDS.unavailableUser);
|
|
147
|
+
const usersMenu = hasOrganization && hasUserCapability
|
|
148
|
+
? subMenu('~U~sers', [
|
|
149
|
+
capabilities.canReadUsers
|
|
150
|
+
? item('~B~rowse users…', ADMIN_COMMANDS.browseUsers)
|
|
151
|
+
: unavailableUserItem('Browse users…', 'requires user read'),
|
|
152
|
+
capabilities.canCreateUsers
|
|
153
|
+
? item('~C~reate user…', ADMIN_COMMANDS.createUser)
|
|
154
|
+
: unavailableUserItem('Create user…', 'requires user create'),
|
|
155
|
+
capabilities.canInviteUsers
|
|
156
|
+
? item('~I~nvite user…', ADMIN_COMMANDS.inviteUser)
|
|
157
|
+
: unavailableUserItem('Invite user…', 'requires user invite'),
|
|
158
|
+
])
|
|
159
|
+
: subMenu('~U~sers', [
|
|
160
|
+
unavailableUserItem('Users', hasOrganization ? 'user permission required' : 'organization required'),
|
|
161
|
+
]);
|
|
162
|
+
const applicationsMenu = capabilities.canReadApplications
|
|
163
|
+
? subMenu('~A~pplications', [
|
|
164
|
+
item('~B~rowse applications…', ADMIN_COMMANDS.browseApplications),
|
|
165
|
+
capabilities.canCreateApplications
|
|
166
|
+
? item('~C~reate application…', ADMIN_COMMANDS.createApplication)
|
|
167
|
+
: item('Create application… (requires application create)', ADMIN_COMMANDS.createApplication),
|
|
168
|
+
])
|
|
169
|
+
: item('Applications (application read required)', ADMIN_COMMANDS.browseApplications);
|
|
170
|
+
const clientsMenu = hasOrganization && capabilities.canReadClients
|
|
171
|
+
? subMenu('OIDC ~C~lients', [
|
|
172
|
+
item('~B~rowse clients…', ADMIN_COMMANDS.browseClients),
|
|
173
|
+
capabilities.canCreateClients && capabilities.canReadApplications
|
|
174
|
+
? item('~C~reate client…', ADMIN_COMMANDS.createClient)
|
|
175
|
+
: item('Create client… (requires client create and application read)', ADMIN_COMMANDS.createClient),
|
|
176
|
+
])
|
|
177
|
+
: subMenu('OIDC ~C~lients', [
|
|
178
|
+
item(hasOrganization
|
|
179
|
+
? 'OIDC Clients (client read required)'
|
|
180
|
+
: 'OIDC Clients (organization required)', ADMIN_COMMANDS.unavailableClient),
|
|
181
|
+
]);
|
|
182
|
+
return [
|
|
183
|
+
subMenu(utf8 ? '≡' : '[=]', [
|
|
184
|
+
item('~W~ho am I…', ADMIN_COMMANDS.whoAmI),
|
|
185
|
+
item('~R~eauthenticate', ADMIN_COMMANDS.reauthenticate, 'Ctrl+R'),
|
|
186
|
+
item('~Q~uit', Commands.quit, 'Alt+X'),
|
|
187
|
+
]),
|
|
188
|
+
subMenu('~O~rganizations', [
|
|
189
|
+
item(capabilities.canCreateOrganizations
|
|
190
|
+
? '~C~reate organization…'
|
|
191
|
+
: 'Create organization… (requires organization create)', ADMIN_COMMANDS.createOrganization),
|
|
192
|
+
item(capabilities.canReadOrganizations
|
|
193
|
+
? '~S~witch organization…'
|
|
194
|
+
: 'Switch organization… (requires organization read)', ADMIN_COMMANDS.switchOrganization),
|
|
195
|
+
item(hasOrganization && capabilities.canReadOrganizations
|
|
196
|
+
? '~M~anage current organization…'
|
|
197
|
+
: hasOrganization
|
|
198
|
+
? 'Manage current organization… (requires organization read)'
|
|
199
|
+
: 'Manage current organization… (select an organization)', ADMIN_COMMANDS.manageOrganization),
|
|
200
|
+
]),
|
|
201
|
+
item('~S~ystem Configuration…', ADMIN_COMMANDS.systemConfig),
|
|
202
|
+
usersMenu,
|
|
203
|
+
applicationsMenu,
|
|
204
|
+
clientsMenu,
|
|
205
|
+
item('~I~mport / Export…', ADMIN_COMMANDS.portability),
|
|
206
|
+
];
|
|
207
|
+
};
|
|
208
|
+
const fullStatusItems = () => [
|
|
209
|
+
statusItem('~Alt-X~ Quit', Commands.quit, 'Alt+X'),
|
|
210
|
+
spacer(),
|
|
211
|
+
statusItem('~Ctrl-R~ Reauthenticate', ADMIN_COMMANDS.reauthenticate, 'Ctrl+R'),
|
|
212
|
+
];
|
|
213
|
+
const quitStatusItems = () => [statusItem('~Alt-X~ Quit', Commands.quit, 'Alt+X')];
|
|
214
|
+
const menu = new MenuBar();
|
|
215
|
+
menu.setItems(belowRecoverable ? [] : fullMenuItems());
|
|
216
|
+
const status = statusLine(belowRecoverable ? quitStatusItems() : fullStatusItems());
|
|
217
|
+
let geometryIsRecoverable = !belowRecoverable;
|
|
218
|
+
const landing = new AdminLandingView((recoverable) => {
|
|
219
|
+
if (recoverable === geometryIsRecoverable)
|
|
220
|
+
return;
|
|
221
|
+
geometryIsRecoverable = recoverable;
|
|
222
|
+
menu.setItems(recoverable ? fullMenuItems() : []);
|
|
223
|
+
status.setItems(recoverable ? fullStatusItems() : quitStatusItems());
|
|
224
|
+
});
|
|
225
|
+
const content = new Desktop();
|
|
226
|
+
content.add(grow(landing));
|
|
227
|
+
let workspace = null;
|
|
228
|
+
/** Replaces the complete main surface without retaining covered feature content. */
|
|
229
|
+
const setWorkspace = (next) => {
|
|
230
|
+
if (next === workspace)
|
|
231
|
+
return;
|
|
232
|
+
// Keep a focusable child visible while Desktop removes its active window and restores focus.
|
|
233
|
+
landing.state.visible = true;
|
|
234
|
+
if (workspace instanceof Window)
|
|
235
|
+
content.removeWindow(workspace);
|
|
236
|
+
else if (workspace)
|
|
237
|
+
content.remove(workspace);
|
|
238
|
+
workspace = next;
|
|
239
|
+
landing.state.visible = next === null;
|
|
240
|
+
if (next instanceof Window) {
|
|
241
|
+
content.addWindow(next);
|
|
242
|
+
if (!next.isZoomed()) {
|
|
243
|
+
// A workspace always fills the desktop, even when it deliberately hides the restore control.
|
|
244
|
+
// Temporarily enable the Window operation so its resize tracking retains maximized geometry.
|
|
245
|
+
const zoomable = next.zoomable;
|
|
246
|
+
next.zoomable = true;
|
|
247
|
+
next.zoom();
|
|
248
|
+
next.zoomable = zoomable;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
else if (next) {
|
|
252
|
+
content.add(grow(next));
|
|
253
|
+
}
|
|
254
|
+
content.invalidateLayout();
|
|
255
|
+
};
|
|
256
|
+
return {
|
|
257
|
+
content,
|
|
258
|
+
menu,
|
|
259
|
+
status,
|
|
260
|
+
setState: (state) => {
|
|
261
|
+
currentState = state;
|
|
262
|
+
if (geometryIsRecoverable)
|
|
263
|
+
menu.setItems(fullMenuItems());
|
|
264
|
+
landing.invalidate();
|
|
265
|
+
},
|
|
266
|
+
getState: () => currentState,
|
|
267
|
+
setWorkspace,
|
|
268
|
+
setUserWorkspace: setWorkspace,
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=presentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation.js","sourceRoot":"","sources":["../../src/admin/presentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** Focused dialogs for Application-owned roles, permissions, and direct mappings. */
|
|
2
|
+
import type { CreatePermissionInput, CreateRoleInput, UpdatePermissionInput, UpdateRoleInput } from '@portaidentity/sdk';
|
|
3
|
+
import type { AdminApplication, AdminApplicationModule } from './application-state.js';
|
|
4
|
+
import type { AdminApplicationDialogHost } from './application-dialogs.js';
|
|
5
|
+
import type { AdminPermission, AdminRole } from './rbac-state.js';
|
|
6
|
+
/** Result returned by the role creation dialog. */
|
|
7
|
+
export type CreateRoleDialogResult = {
|
|
8
|
+
readonly kind: 'create-role';
|
|
9
|
+
readonly input: CreateRoleInput;
|
|
10
|
+
} | {
|
|
11
|
+
readonly kind: 'cancel';
|
|
12
|
+
};
|
|
13
|
+
/** Result returned by the role editor. */
|
|
14
|
+
export type EditRoleDialogResult = {
|
|
15
|
+
readonly kind: 'update-role';
|
|
16
|
+
readonly roleId: string;
|
|
17
|
+
readonly input: UpdateRoleInput;
|
|
18
|
+
} | {
|
|
19
|
+
readonly kind: 'cancel';
|
|
20
|
+
};
|
|
21
|
+
/** Result returned by permanent role deletion confirmation. */
|
|
22
|
+
export type DeleteRoleDialogResult = {
|
|
23
|
+
readonly kind: 'delete-role';
|
|
24
|
+
readonly roleId: string;
|
|
25
|
+
} | {
|
|
26
|
+
readonly kind: 'cancel';
|
|
27
|
+
};
|
|
28
|
+
/** Result returned by the permission creation dialog. */
|
|
29
|
+
export type CreatePermissionDialogResult = {
|
|
30
|
+
readonly kind: 'create-permission';
|
|
31
|
+
readonly input: CreatePermissionInput;
|
|
32
|
+
} | {
|
|
33
|
+
readonly kind: 'cancel';
|
|
34
|
+
};
|
|
35
|
+
/** Result returned by the permission editor. */
|
|
36
|
+
export type EditPermissionDialogResult = {
|
|
37
|
+
readonly kind: 'update-permission';
|
|
38
|
+
readonly permissionId: string;
|
|
39
|
+
readonly input: UpdatePermissionInput;
|
|
40
|
+
} | {
|
|
41
|
+
readonly kind: 'cancel';
|
|
42
|
+
};
|
|
43
|
+
/** Result returned by permanent permission deletion confirmation. */
|
|
44
|
+
export type DeletePermissionDialogResult = {
|
|
45
|
+
readonly kind: 'delete-permission';
|
|
46
|
+
readonly permissionId: string;
|
|
47
|
+
} | {
|
|
48
|
+
readonly kind: 'cancel';
|
|
49
|
+
};
|
|
50
|
+
/** Saved checkbox differences for one role, or cancellation. */
|
|
51
|
+
export type ManageRolePermissionsDialogResult = {
|
|
52
|
+
readonly kind: 'update-role-permissions';
|
|
53
|
+
readonly roleId: string;
|
|
54
|
+
readonly assignPermissionIds: readonly string[];
|
|
55
|
+
readonly removePermissionIds: readonly string[];
|
|
56
|
+
} | {
|
|
57
|
+
readonly kind: 'cancel';
|
|
58
|
+
};
|
|
59
|
+
/** Opens the focused role creation form. */
|
|
60
|
+
export declare function showCreateRoleDialog(host: AdminApplicationDialogHost, operationSignal: AbortSignal, application: AdminApplication): Promise<CreateRoleDialogResult>;
|
|
61
|
+
/** Opens the role editor with all mutable role metadata. */
|
|
62
|
+
export declare function showEditRoleDialog(host: AdminApplicationDialogHost, operationSignal: AbortSignal, application: AdminApplication, role: AdminRole): Promise<EditRoleDialogResult>;
|
|
63
|
+
/** Shows the permanent role cascade before dispatch. */
|
|
64
|
+
export declare function showDeleteRoleDialog(host: AdminApplicationDialogHost, operationSignal: AbortSignal, application: AdminApplication, role: AdminRole): Promise<DeleteRoleDialogResult>;
|
|
65
|
+
/** Opens the focused permission creation form. */
|
|
66
|
+
export declare function showCreatePermissionDialog(host: AdminApplicationDialogHost, operationSignal: AbortSignal, application: AdminApplication, modules: readonly AdminApplicationModule[]): Promise<CreatePermissionDialogResult>;
|
|
67
|
+
/** Opens the permission editor while keeping identity and scope read-only. */
|
|
68
|
+
export declare function showEditPermissionDialog(host: AdminApplicationDialogHost, operationSignal: AbortSignal, application: AdminApplication, permission: AdminPermission, modules: readonly AdminApplicationModule[]): Promise<EditPermissionDialogResult>;
|
|
69
|
+
/** Shows the permanent permission cascade before dispatch. */
|
|
70
|
+
export declare function showDeletePermissionDialog(host: AdminApplicationDialogHost, operationSignal: AbortSignal, application: AdminApplication, permission: AdminPermission): Promise<DeletePermissionDialogResult>;
|
|
71
|
+
/** Opens assignable permissions in two checkbox columns and returns their saved differences. */
|
|
72
|
+
export declare function showManageRolePermissionsDialog(host: AdminApplicationDialogHost, operationSignal: AbortSignal, application: AdminApplication, role: AdminRole, assigned: readonly AdminPermission[], available: readonly AdminPermission[], canManage: boolean): Promise<ManageRolePermissionsDialogResult>;
|
|
73
|
+
//# sourceMappingURL=rbac-dialogs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rbac-dialogs.d.ts","sourceRoot":"","sources":["../../src/admin/rbac-dialogs.ts"],"names":[],"mappings":"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"}
|