@memberjunction/core-entities 5.29.0 → 5.30.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/dist/custom/MJConversationDetailEntityExtended.d.ts +31 -0
- package/dist/custom/MJConversationDetailEntityExtended.d.ts.map +1 -0
- package/dist/custom/MJConversationDetailEntityExtended.js +106 -0
- package/dist/custom/MJConversationDetailEntityExtended.js.map +1 -0
- package/dist/custom/PermissionProviders/AIAgentPermissionProvider.d.ts +31 -0
- package/dist/custom/PermissionProviders/AIAgentPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/AIAgentPermissionProvider.js +151 -0
- package/dist/custom/PermissionProviders/AIAgentPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/AccessControlRuleProvider.d.ts +45 -0
- package/dist/custom/PermissionProviders/AccessControlRuleProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/AccessControlRuleProvider.js +253 -0
- package/dist/custom/PermissionProviders/AccessControlRuleProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.d.ts +28 -0
- package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.js +144 -0
- package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/ArtifactPermissionProvider.d.ts +45 -0
- package/dist/custom/PermissionProviders/ArtifactPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/ArtifactPermissionProvider.js +169 -0
- package/dist/custom/PermissionProviders/ArtifactPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/CollectionPermissionProvider.d.ts +40 -0
- package/dist/custom/PermissionProviders/CollectionPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/CollectionPermissionProvider.js +220 -0
- package/dist/custom/PermissionProviders/CollectionPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/DashboardPermissionProvider.d.ts +47 -0
- package/dist/custom/PermissionProviders/DashboardPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/DashboardPermissionProvider.js +218 -0
- package/dist/custom/PermissionProviders/DashboardPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/EntityPermissionProvider.d.ts +25 -0
- package/dist/custom/PermissionProviders/EntityPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/EntityPermissionProvider.js +129 -0
- package/dist/custom/PermissionProviders/EntityPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/QueryPermissionProvider.d.ts +24 -0
- package/dist/custom/PermissionProviders/QueryPermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/QueryPermissionProvider.js +123 -0
- package/dist/custom/PermissionProviders/QueryPermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/ResourcePermissionProvider.d.ts +39 -0
- package/dist/custom/PermissionProviders/ResourcePermissionProvider.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/ResourcePermissionProvider.js +193 -0
- package/dist/custom/PermissionProviders/ResourcePermissionProvider.js.map +1 -0
- package/dist/custom/PermissionProviders/index.d.ts +16 -0
- package/dist/custom/PermissionProviders/index.d.ts.map +1 -0
- package/dist/custom/PermissionProviders/index.js +41 -0
- package/dist/custom/PermissionProviders/index.js.map +1 -0
- package/dist/custom/Permissions/BaseShareEntityExtended.d.ts +105 -0
- package/dist/custom/Permissions/BaseShareEntityExtended.d.ts.map +1 -0
- package/dist/custom/Permissions/BaseShareEntityExtended.js +162 -0
- package/dist/custom/Permissions/BaseShareEntityExtended.js.map +1 -0
- package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.d.ts +22 -0
- package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.d.ts.map +1 -0
- package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.js +75 -0
- package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.js.map +1 -0
- package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.d.ts +22 -0
- package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.d.ts.map +1 -0
- package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.js +114 -0
- package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.js.map +1 -0
- package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.d.ts +25 -0
- package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.d.ts.map +1 -0
- package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.js +101 -0
- package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.js.map +1 -0
- package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.d.ts +32 -0
- package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.d.ts.map +1 -0
- package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.js +95 -0
- package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.js.map +1 -0
- package/dist/custom/Permissions/index.d.ts +13 -0
- package/dist/custom/Permissions/index.d.ts.map +1 -0
- package/dist/custom/Permissions/index.js +22 -0
- package/dist/custom/Permissions/index.js.map +1 -0
- package/dist/custom/Permissions/shareNotification.d.ts +72 -0
- package/dist/custom/Permissions/shareNotification.d.ts.map +1 -0
- package/dist/custom/Permissions/shareNotification.js +98 -0
- package/dist/custom/Permissions/shareNotification.js.map +1 -0
- package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.d.ts +63 -1
- package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.d.ts.map +1 -1
- package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.js +244 -27
- package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.js.map +1 -1
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.d.ts +7 -0
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.d.ts.map +1 -1
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js +13 -0
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js.map +1 -1
- package/dist/engines/GeoDataEngine.d.ts +42 -8
- package/dist/engines/GeoDataEngine.d.ts.map +1 -1
- package/dist/engines/GeoDataEngine.js +191 -36
- package/dist/engines/GeoDataEngine.js.map +1 -1
- package/dist/engines/PermissionEngine.d.ts +142 -0
- package/dist/engines/PermissionEngine.d.ts.map +1 -0
- package/dist/engines/PermissionEngine.js +343 -0
- package/dist/engines/PermissionEngine.js.map +1 -0
- package/dist/engines/UserInfoEngine.d.ts +6 -1
- package/dist/engines/UserInfoEngine.d.ts.map +1 -1
- package/dist/engines/UserInfoEngine.js +21 -5
- package/dist/engines/UserInfoEngine.js.map +1 -1
- package/dist/engines/conversations.d.ts +35 -0
- package/dist/engines/conversations.d.ts.map +1 -1
- package/dist/engines/conversations.js +103 -16
- package/dist/engines/conversations.js.map +1 -1
- package/dist/generated/entity_subclasses.d.ts +579 -52
- package/dist/generated/entity_subclasses.d.ts.map +1 -1
- package/dist/generated/entity_subclasses.js +697 -66
- package/dist/generated/entity_subclasses.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { BaseEngine, LogError, LogStatus, PermissionDeniedError, PermissionProviderBase, RegisterForStartup, RunView, } from '@memberjunction/core';
|
|
8
|
+
import { MJGlobal } from '@memberjunction/global';
|
|
9
|
+
/**
|
|
10
|
+
* The permission-backing entity names we aggregate in `GetAuditTimeline`. Each entry
|
|
11
|
+
* pairs a `PermissionDomain.Name` with the physical entity whose RecordChange rows
|
|
12
|
+
* describe audit events. New providers added after Phase 2b should register here too.
|
|
13
|
+
*/
|
|
14
|
+
const DOMAIN_TO_AUDIT_ENTITIES = {
|
|
15
|
+
'Entity Permissions': ['MJ: Entity Permissions'],
|
|
16
|
+
'Application Roles': ['MJ: Application Roles'],
|
|
17
|
+
'Dashboard Permissions': ['MJ: Dashboard Permissions', 'MJ: Dashboard Category Permissions'],
|
|
18
|
+
'Resource Permissions': ['MJ: Resource Permissions'],
|
|
19
|
+
'Artifact Permissions': ['MJ: Artifact Permissions'],
|
|
20
|
+
'Collection Permissions': ['MJ: Collection Permissions'],
|
|
21
|
+
'AI Agent Permissions': ['MJ: AI Agent Permissions'],
|
|
22
|
+
'Query Permissions': ['MJ: Query Permissions'],
|
|
23
|
+
'Access Control Rules': ['MJ: Access Control Rules'],
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Canonical Font Awesome class for each permission domain. Exported so the admin
|
|
27
|
+
* Permissions app and the end-user Sharing Center render the same glyph for each
|
|
28
|
+
* domain without drifting. Consumers should call
|
|
29
|
+
* {@link PermissionEngine.DomainIconFor} rather than reading the map directly so
|
|
30
|
+
* unknown domains get the lock fallback.
|
|
31
|
+
*/
|
|
32
|
+
export const PERMISSION_DOMAIN_ICONS = {
|
|
33
|
+
'Entity Permissions': 'fa-solid fa-database',
|
|
34
|
+
'Application Roles': 'fa-solid fa-shield-halved',
|
|
35
|
+
'Dashboard Permissions': 'fa-solid fa-chart-line',
|
|
36
|
+
'Resource Permissions': 'fa-solid fa-share-nodes',
|
|
37
|
+
'Artifact Permissions': 'fa-solid fa-file-lines',
|
|
38
|
+
'Collection Permissions': 'fa-solid fa-folder-open',
|
|
39
|
+
'AI Agent Permissions': 'fa-solid fa-robot',
|
|
40
|
+
'Query Permissions': 'fa-solid fa-magnifying-glass',
|
|
41
|
+
'Access Control Rules': 'fa-solid fa-lock',
|
|
42
|
+
};
|
|
43
|
+
/** Fallback icon used when a domain isn't in the catalog (e.g., a Phase-3 provider). */
|
|
44
|
+
export const PERMISSION_DOMAIN_ICON_FALLBACK = 'fa-solid fa-lock';
|
|
45
|
+
/**
|
|
46
|
+
* PermissionEngine is the unified entry point for permission queries across every registered
|
|
47
|
+
* permission subsystem. At startup it loads the {@link MJPermissionDomainEntity} catalog, then
|
|
48
|
+
* instantiates each active domain's provider via ClassFactory (keyed on `ProviderClassName`).
|
|
49
|
+
*
|
|
50
|
+
* Typical usage:
|
|
51
|
+
* ```typescript
|
|
52
|
+
* // "Can this user read entity X?"
|
|
53
|
+
* const result = PermissionEngine.Instance.CheckPermission(
|
|
54
|
+
* user, 'Entity Permissions', 'Users', null, 'Read'
|
|
55
|
+
* );
|
|
56
|
+
*
|
|
57
|
+
* // "Show me everything this user has access to"
|
|
58
|
+
* const all = PermissionEngine.Instance.GetAllUserPermissions(user);
|
|
59
|
+
*
|
|
60
|
+
* // "Who has access to this resource?"
|
|
61
|
+
* const rows = PermissionEngine.Instance.GetResourcePermissions(
|
|
62
|
+
* 'Dashboard Permissions', 'Dashboards', dashboardId
|
|
63
|
+
* );
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* Priority 15 so it configures after default-priority engines (e.g., UserInfoEngine at 10);
|
|
67
|
+
* providers lazy-resolve their backing engines on first use, so even if a backing engine
|
|
68
|
+
* has not been configured yet at provider construction time, permission checks still work
|
|
69
|
+
* once the backing engine comes online.
|
|
70
|
+
*/
|
|
71
|
+
let PermissionEngine = class PermissionEngine extends BaseEngine {
|
|
72
|
+
constructor() {
|
|
73
|
+
super(...arguments);
|
|
74
|
+
this._domains = [];
|
|
75
|
+
this._providers = new Map();
|
|
76
|
+
}
|
|
77
|
+
static get Instance() {
|
|
78
|
+
return super.getInstance();
|
|
79
|
+
}
|
|
80
|
+
async Config(forceRefresh, contextUser, provider) {
|
|
81
|
+
const configs = [
|
|
82
|
+
{
|
|
83
|
+
Type: 'entity',
|
|
84
|
+
EntityName: 'MJ: Permission Domains',
|
|
85
|
+
PropertyName: '_domains',
|
|
86
|
+
CacheLocal: true,
|
|
87
|
+
},
|
|
88
|
+
];
|
|
89
|
+
await super.Load(configs, provider, forceRefresh, contextUser);
|
|
90
|
+
this.instantiateProviders();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Walks the loaded domain catalog and instantiates each active provider via ClassFactory.
|
|
94
|
+
* Called on every `Config()` so a `forceRefresh` re-wires the provider map.
|
|
95
|
+
*/
|
|
96
|
+
instantiateProviders() {
|
|
97
|
+
this._providers.clear();
|
|
98
|
+
const activeDomains = this._domains.filter((d) => d.IsActive);
|
|
99
|
+
for (const domain of activeDomains) {
|
|
100
|
+
try {
|
|
101
|
+
const instance = MJGlobal.Instance.ClassFactory.CreateInstance(PermissionProviderBase, domain.ProviderClassName);
|
|
102
|
+
if (instance) {
|
|
103
|
+
this._providers.set(domain.Name, instance);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
LogError(`PermissionEngine: no provider registered for ProviderClassName '${domain.ProviderClassName}' ` +
|
|
107
|
+
`(domain '${domain.Name}'). Domain will be skipped until a provider is registered.`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
LogError(`PermissionEngine: failed to instantiate provider '${domain.ProviderClassName}': ${err}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
LogStatus(`PermissionEngine configured with ${this._providers.size} provider(s) ` +
|
|
115
|
+
`out of ${activeDomains.length} active domain(s).`);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Check whether a user has a specific permission on a specific resource within a domain.
|
|
119
|
+
* Returns `{Allowed: false, Reason: 'Unknown domain'}` if the domain is not registered
|
|
120
|
+
* (either because no catalog row exists or because its provider failed to load).
|
|
121
|
+
*/
|
|
122
|
+
async CheckPermission(user, domainName, resourceType, resourceId, action) {
|
|
123
|
+
const provider = this._providers.get(domainName);
|
|
124
|
+
if (!provider) {
|
|
125
|
+
return {
|
|
126
|
+
Allowed: false,
|
|
127
|
+
DomainName: domainName,
|
|
128
|
+
Reason: `Unknown permission domain '${domainName}'`,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
return provider.CheckPermission(user, resourceType, resourceId, action);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Aggregate every resource the user has access to across all registered providers.
|
|
135
|
+
* Providers are queried in parallel; failures from individual providers are logged and skipped.
|
|
136
|
+
* Powers the Sharing Center "User Access Report" view.
|
|
137
|
+
*/
|
|
138
|
+
async GetAllUserPermissions(user) {
|
|
139
|
+
const providers = Array.from(this._providers.values());
|
|
140
|
+
const settled = await Promise.allSettled(providers.map((p) => p.GetUserResources(user)));
|
|
141
|
+
const results = [];
|
|
142
|
+
settled.forEach((outcome, i) => {
|
|
143
|
+
const provider = providers[i];
|
|
144
|
+
if (outcome.status === 'fulfilled') {
|
|
145
|
+
if (outcome.value?.length)
|
|
146
|
+
results.push(...outcome.value);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
LogError(`PermissionEngine.GetAllUserPermissions: provider '${provider.DomainName}' threw: ${outcome.reason}`);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
return results;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Aggregate every permission this user has granted to *other* users across all
|
|
156
|
+
* registered providers. Powers the end-user Sharing Center's "Shared by me" tab.
|
|
157
|
+
*
|
|
158
|
+
* Role-only providers (Entity Permissions, Application Roles, AI Agent Permissions,
|
|
159
|
+
* Query Permissions) contribute nothing — their base-class default returns `[]`.
|
|
160
|
+
* Providers are queried in parallel; failures are logged and skipped.
|
|
161
|
+
*/
|
|
162
|
+
async GetPermissionsGrantedByUser(grantor) {
|
|
163
|
+
const providers = Array.from(this._providers.values());
|
|
164
|
+
const settled = await Promise.allSettled(providers.map((p) => p.GetPermissionsGrantedByUser(grantor)));
|
|
165
|
+
const results = [];
|
|
166
|
+
settled.forEach((outcome, i) => {
|
|
167
|
+
const provider = providers[i];
|
|
168
|
+
if (outcome.status === 'fulfilled') {
|
|
169
|
+
if (outcome.value?.length)
|
|
170
|
+
results.push(...outcome.value);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
LogError(`PermissionEngine.GetPermissionsGrantedByUser: provider '${provider.DomainName}' threw: ${outcome.reason}`);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
return results;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Aggregate every permission where this user is the grantee AND someone else is the
|
|
180
|
+
* grantor — the "shared with me" view. Excludes self-owned resources and role-inherited
|
|
181
|
+
* access. Providers are queried in parallel; failures are logged and skipped.
|
|
182
|
+
*/
|
|
183
|
+
async GetPermissionsSharedWithUser(grantee) {
|
|
184
|
+
const providers = Array.from(this._providers.values());
|
|
185
|
+
const settled = await Promise.allSettled(providers.map((p) => p.GetPermissionsSharedWithUser(grantee)));
|
|
186
|
+
const results = [];
|
|
187
|
+
settled.forEach((outcome, i) => {
|
|
188
|
+
const provider = providers[i];
|
|
189
|
+
if (outcome.status === 'fulfilled') {
|
|
190
|
+
if (outcome.value?.length)
|
|
191
|
+
results.push(...outcome.value);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
LogError(`PermissionEngine.GetPermissionsSharedWithUser: provider '${provider.DomainName}' threw: ${outcome.reason}`);
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
return results;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Get every grantee's permissions on a specific resource within a domain.
|
|
201
|
+
* Powers the Sharing Center "Resource Access Report" view.
|
|
202
|
+
*/
|
|
203
|
+
async GetResourcePermissions(domainName, resourceType, resourceId) {
|
|
204
|
+
const provider = this._providers.get(domainName);
|
|
205
|
+
if (!provider)
|
|
206
|
+
return [];
|
|
207
|
+
return provider.GetResourcePermissions(resourceType, resourceId);
|
|
208
|
+
}
|
|
209
|
+
/** All active, loaded domain catalog records. */
|
|
210
|
+
get Domains() {
|
|
211
|
+
return this._domains.filter((d) => d.IsActive);
|
|
212
|
+
}
|
|
213
|
+
/** Look up the provider for a specific domain by name; returns undefined when not loaded. */
|
|
214
|
+
GetProvider(domainName) {
|
|
215
|
+
return this._providers.get(domainName);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* The resource type names supported by the given permission domain — sourced
|
|
219
|
+
* from the provider's `GetResourceTypes()`. Returns `[]` when the domain is
|
|
220
|
+
* unknown or the provider doesn't enumerate its types. Used by admin UIs
|
|
221
|
+
* (e.g., the Resource Access Report) to populate the Resource Type picker
|
|
222
|
+
* after a Domain is selected.
|
|
223
|
+
*/
|
|
224
|
+
GetResourceTypes(domainName) {
|
|
225
|
+
return this._providers.get(domainName)?.GetResourceTypes() ?? [];
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Font Awesome class for a permission domain, with a lock fallback for
|
|
229
|
+
* unknown domains. Drives the icon shown next to domain groups in both the
|
|
230
|
+
* admin Permissions app and the end-user Sharing Center.
|
|
231
|
+
*/
|
|
232
|
+
static DomainIconFor(domainName) {
|
|
233
|
+
return PERMISSION_DOMAIN_ICONS[domainName] ?? PERMISSION_DOMAIN_ICON_FALLBACK;
|
|
234
|
+
}
|
|
235
|
+
/** For unit tests: swap the provider map with a caller-supplied one. */
|
|
236
|
+
_SetProvidersForTesting(providers) {
|
|
237
|
+
this._providers = providers;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Convenience wrapper around {@link CheckPermission} that throws a typed
|
|
241
|
+
* {@link PermissionDeniedError} when the action is not permitted. Intended for
|
|
242
|
+
* programmatic callers — Actions, AI Agents, custom server code — that want
|
|
243
|
+
* "fail loudly on denial" semantics instead of branching on a boolean result.
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* ```typescript
|
|
247
|
+
* await PermissionEngine.Instance.AuthorizeOrThrow(
|
|
248
|
+
* user, 'Dashboard Permissions', 'Dashboards', dashboardId, 'Share'
|
|
249
|
+
* );
|
|
250
|
+
* // If we reach this line, the user can share the dashboard.
|
|
251
|
+
* ```
|
|
252
|
+
*
|
|
253
|
+
* @throws {@link PermissionDeniedError} when the provider returns `Allowed: false`
|
|
254
|
+
* or when the domain is not registered.
|
|
255
|
+
*/
|
|
256
|
+
async AuthorizeOrThrow(user, domainName, resourceType, resourceId, action) {
|
|
257
|
+
const result = await this.CheckPermission(user, domainName, resourceType, resourceId, action);
|
|
258
|
+
if (!result.Allowed) {
|
|
259
|
+
throw new PermissionDeniedError({ ...result, ResourceType: resourceType, ResourceID: resourceId, Action: action });
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Query RecordChange for audit events against every permission-backing entity.
|
|
264
|
+
* Supports filtering by domain, date range, changed-by user, or a specific
|
|
265
|
+
* record. Results are sorted newest-first and capped at `filter.MaxRows`
|
|
266
|
+
* (default 500).
|
|
267
|
+
*
|
|
268
|
+
* Relies on each permission entity having `TrackRecordChanges=1` in its
|
|
269
|
+
* Entity metadata row. Domains whose backing entities do not track changes
|
|
270
|
+
* contribute nothing to the timeline.
|
|
271
|
+
*/
|
|
272
|
+
async GetAuditTimeline(filter = {}) {
|
|
273
|
+
const targetEntities = this.resolveAuditEntityNames(filter.DomainName);
|
|
274
|
+
if (targetEntities.length === 0)
|
|
275
|
+
return [];
|
|
276
|
+
const clauses = [
|
|
277
|
+
`Entity IN (${targetEntities.map((n) => `'${n.replace(/'/g, "''")}'`).join(',')})`,
|
|
278
|
+
];
|
|
279
|
+
if (filter.StartDate)
|
|
280
|
+
clauses.push(`ChangedAt >= '${filter.StartDate.toISOString()}'`);
|
|
281
|
+
if (filter.EndDate)
|
|
282
|
+
clauses.push(`ChangedAt <= '${filter.EndDate.toISOString()}'`);
|
|
283
|
+
if (filter.ChangedByUserID)
|
|
284
|
+
clauses.push(`UserID = '${filter.ChangedByUserID}'`);
|
|
285
|
+
if (filter.RecordID)
|
|
286
|
+
clauses.push(`RecordID = '${filter.RecordID.replace(/'/g, "''")}'`);
|
|
287
|
+
const maxRows = filter.MaxRows ?? 500;
|
|
288
|
+
const rv = new RunView();
|
|
289
|
+
const result = await rv.RunView({
|
|
290
|
+
EntityName: 'MJ: Record Changes',
|
|
291
|
+
ExtraFilter: clauses.join(' AND '),
|
|
292
|
+
OrderBy: 'ChangedAt DESC',
|
|
293
|
+
MaxRows: maxRows,
|
|
294
|
+
Fields: ['ID', 'Entity', 'RecordID', 'UserID', 'User', 'Type', 'ChangedAt', 'ChangesDescription'],
|
|
295
|
+
ResultType: 'simple',
|
|
296
|
+
});
|
|
297
|
+
if (!result.Success) {
|
|
298
|
+
LogError(`PermissionEngine.GetAuditTimeline: ${result.ErrorMessage}`);
|
|
299
|
+
return [];
|
|
300
|
+
}
|
|
301
|
+
return (result.Results ?? []).map((row) => ({
|
|
302
|
+
ChangedAt: new Date(row.ChangedAt),
|
|
303
|
+
ChangedByUserID: row.UserID,
|
|
304
|
+
ChangedByUserName: row.User ?? undefined,
|
|
305
|
+
DomainName: this.resolveDomainForEntity(row.Entity),
|
|
306
|
+
EntityName: row.Entity,
|
|
307
|
+
RecordID: row.RecordID,
|
|
308
|
+
ChangeType: row.Type,
|
|
309
|
+
Summary: row.ChangesDescription ?? undefined,
|
|
310
|
+
SourceRecordChangeID: row.ID,
|
|
311
|
+
}));
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Map a domain-name filter to the set of backing entity names to query.
|
|
315
|
+
* When no filter is given, every known permission entity is included.
|
|
316
|
+
*/
|
|
317
|
+
resolveAuditEntityNames(domainName) {
|
|
318
|
+
if (domainName)
|
|
319
|
+
return DOMAIN_TO_AUDIT_ENTITIES[domainName] ?? [];
|
|
320
|
+
const all = [];
|
|
321
|
+
for (const list of Object.values(DOMAIN_TO_AUDIT_ENTITIES)) {
|
|
322
|
+
all.push(...list);
|
|
323
|
+
}
|
|
324
|
+
return all;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Reverse lookup: given a backing entity name, return the owning domain.
|
|
328
|
+
* Falls back to the entity name itself when we can't resolve (e.g., a
|
|
329
|
+
* caller added a new permission entity to the map but no provider yet).
|
|
330
|
+
*/
|
|
331
|
+
resolveDomainForEntity(entityName) {
|
|
332
|
+
for (const [domain, entities] of Object.entries(DOMAIN_TO_AUDIT_ENTITIES)) {
|
|
333
|
+
if (entities.includes(entityName))
|
|
334
|
+
return domain;
|
|
335
|
+
}
|
|
336
|
+
return entityName;
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
PermissionEngine = __decorate([
|
|
340
|
+
RegisterForStartup({ priority: 15, severity: 'warn', description: 'PermissionEngine — unified permission provider registry' })
|
|
341
|
+
], PermissionEngine);
|
|
342
|
+
export { PermissionEngine };
|
|
343
|
+
//# sourceMappingURL=PermissionEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionEngine.js","sourceRoot":"","sources":["../../src/engines/PermissionEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { Observable } from 'rxjs';
|
|
|
8
8
|
* - 'not_authorized': User's roles do not grant access to the application
|
|
9
9
|
*/
|
|
10
10
|
export type UserApplicationAccessStatus = 'installed_active' | 'installed_inactive' | 'not_installed' | 'not_authorized';
|
|
11
|
-
import { MJUserNotificationEntity, MJUserNotificationTypeEntity, MJWorkspaceEntity, MJUserApplicationEntity, MJUserFavoriteEntity, MJUserRecordLogEntity, MJUserSettingEntity, MJUserNotificationPreferenceEntity } from '../generated/entity_subclasses.js';
|
|
11
|
+
import { MJApplicationRoleEntity, MJUserNotificationEntity, MJUserNotificationTypeEntity, MJWorkspaceEntity, MJUserApplicationEntity, MJUserFavoriteEntity, MJUserRecordLogEntity, MJUserSettingEntity, MJUserNotificationPreferenceEntity } from '../generated/entity_subclasses.js';
|
|
12
12
|
/**
|
|
13
13
|
* UserInfoEngine is a singleton engine that provides centralized access to user-specific data
|
|
14
14
|
* including notifications, workspaces, applications, favorites, and record logs.
|
|
@@ -257,6 +257,11 @@ export declare class UserInfoEngine extends BaseEngine<UserInfoEngine> {
|
|
|
257
257
|
* @returns The user's access status for this application
|
|
258
258
|
*/
|
|
259
259
|
CheckUserApplicationAccess(applicationId: string): UserApplicationAccessStatus;
|
|
260
|
+
/**
|
|
261
|
+
* Read-only view of the ApplicationRole catalog. Used by permission providers
|
|
262
|
+
* that need to reason about grants for arbitrary users (not just CurrentUser).
|
|
263
|
+
*/
|
|
264
|
+
get ApplicationRoles(): readonly MJApplicationRoleEntity[];
|
|
260
265
|
/**
|
|
261
266
|
* Checks if the current user's roles grant access to the application.
|
|
262
267
|
* If no ApplicationRole records exist for the app, access is open (backwards compatible).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserInfoEngine.d.ts","sourceRoot":"","sources":["../../src/engines/UserInfoEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EAEV,iBAAiB,EAGjB,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,MAAM,2BAA2B,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAEzH,OAAO,
|
|
1
|
+
{"version":3,"file":"UserInfoEngine.d.ts","sourceRoot":"","sources":["../../src/engines/UserInfoEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EAEV,iBAAiB,EAGjB,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,MAAM,2BAA2B,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAEzH,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kCAAkC,EACnC,MAAM,gCAAgC,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,cAAe,SAAQ,UAAU,CAAC,cAAc,CAAC;IAC5D;;;OAGG;IACH,WAAkB,QAAQ,IAAI,cAAc,CAE3C;IAGD,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,aAAa,CAA6B;IAGlD,OAAO,CAAC,kBAAkB,CAAsC;IAEhE,OAAO,CAAC,4BAA4B,CAA4C;IAEhF,OAAO,CAAC,iBAAiB,CAAiC;IAG1D,OAAO,CAAC,gBAAgB,CAAuB;IAG/C,OAAO,CAAC,yBAAyB,CAAmD;IAMpF;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAAe;IAE1C;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAwF;IAEhH;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAA8C;IAE5E;;;OAGG;IACH,OAAO,CAAC,aAAa,CAA8B;IAEnD;;;;;;;OAOG;IACU,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8FhH;;;;;;OAMG;IACH,IAAW,kBAAkB,IAAI,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAEtE;IAED;;;OAGG;IACH,IAAW,cAAc,IAAI,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAE9D;IAED;;;OAGG;IACH,IAAW,iBAAiB,IAAI,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAEpE;IAMD;;OAEG;IACH,IAAW,iBAAiB,IAAI,wBAAwB,EAAE,CAKzD;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,mBAAmB,EAAE,CAG/C;IAED;;;;OAIG;IACI,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKzD;;;;OAIG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAI5E;;;;;;OAMG;IACU,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA0CpG;;;;OAIG;IACU,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BhE;;OAEG;IACH,IAAW,kBAAkB,IAAI,MAAM,CAEtC;IAED;;;;OAIG;IACH,IAAW,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAO1C;IAED;;;;;;;;;;;OAWG;IACI,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,IAAI;IAkB3F;;;;;;OAMG;IACU,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoClD;;;OAGG;YACW,eAAe;IAiB7B;;OAEG;IACH,IAAW,kBAAkB,IAAI,OAAO,CAEvC;IAED;;OAEG;IACH,IAAW,oBAAoB,IAAI,MAAM,CAExC;IAED;;OAEG;IACH,IAAW,mBAAmB,IAAI,wBAAwB,EAAE,CAE3D;IAED;;OAEG;IACH,IAAW,uBAAuB,IAAI,MAAM,CAE3C;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,iBAAiB,EAAE,CAG3C;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,iBAAiB,GAAG,IAAI,CAGtD;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,uBAAuB,EAAE,CAWvD;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,oBAAoB,EAAE,CAKjD;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,qBAAqB,EAAE,CAKnD;IAMD;;;OAGG;IACH,IAAW,gBAAgB,IAAI,wBAAwB,EAAE,CAExD;IAED;;;OAGG;IACH,IAAW,mBAAmB,IAAI,uBAAuB,EAAE,CAE1D;IAED;;;OAGG;IACI,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,EAAE;IAM1E;;;OAGG;IACI,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,EAAE;IAe5E;;;OAGG;IACI,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAIxF;;;OAGG;IACI,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;IAI5F;;;OAGG;IACI,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,EAAE;IAItE;;;;OAIG;IACI,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,qBAAqB,EAAE;IAIlG;;;;OAIG;IACI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIpE;;OAEG;IACH,IAAW,eAAe,IAAI,MAAM,GAAG,IAAI,CAE1C;IAMD;;;;;OAKG;IACI,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,2BAA2B;IAgBrF;;;OAGG;IACH,IAAW,gBAAgB,IAAI,SAAS,uBAAuB,EAAE,CAEhE;IAED;;;;OAIG;IACI,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAoB/D;;;OAGG;IACI,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAiB9D;;;OAGG;IACI,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAM5D;;;OAGG;IACI,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAK7E;;;OAGG;IACI,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAcnF;;;OAGG;IACU,OAAO,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D;;OAEG;IACH,IAAW,sBAAsB,IAAI,uBAAuB,EAAE,CAE7D;IAED;;;OAGG;IACI,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAIrD;;;OAGG;IACI,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAK3D;;;;;;OAMG;IACU,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IA4DvH;;;;;OAKG;IACU,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B/F;;;;;;OAMG;IACU,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BhG;;;;;OAKG;IACU,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BlG;;;;;;;;;OASG;IACU,yBAAyB,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAkBlG;;;OAGG;YACW,2BAA2B;IAuDzC;;OAEG;IACH,IAAW,uBAAuB,IAAI,kCAAkC,EAAE,CAGzE;IAEM,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kCAAkC,GAAG,SAAS;IAI/G;;OAEG;IACI,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,kCAAkC,GAAG,SAAS;IAKtG;;;OAGG;IACH,IAAW,iBAAiB,IAAI,4BAA4B,EAAE,CAE7D;CACF"}
|
|
@@ -96,65 +96,74 @@ let UserInfoEngine = class UserInfoEngine extends BaseEngine {
|
|
|
96
96
|
if (this._loadedForUserId && this._loadedForUserId !== userId) {
|
|
97
97
|
forceRefresh = true; // Force refresh if user changed
|
|
98
98
|
}
|
|
99
|
-
//
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
|
|
103
|
-
|
|
99
|
+
// On the client (Network/GraphQL provider), filter user-specific entities by UserID
|
|
100
|
+
// to avoid loading all users' data. On the server (Database provider), load everything
|
|
101
|
+
// because the server handles multiple users from a single process.
|
|
102
|
+
const isClientSide = this.ProviderToUse.ProviderType === 'Network';
|
|
103
|
+
const userFilter = isClientSide && userId ? `UserID='${userId}'` : undefined;
|
|
104
104
|
const configs = [
|
|
105
105
|
{
|
|
106
106
|
Type: 'entity',
|
|
107
107
|
EntityName: 'MJ: User Notifications',
|
|
108
108
|
PropertyName: '_UserNotifications',
|
|
109
109
|
CacheLocal: true,
|
|
110
|
+
Filter: userFilter,
|
|
110
111
|
},
|
|
111
112
|
{
|
|
112
113
|
Type: 'entity',
|
|
113
114
|
EntityName: 'MJ: User Notification Types',
|
|
114
115
|
PropertyName: '_NotificationTypes',
|
|
115
116
|
CacheLocal: true,
|
|
117
|
+
// Global reference table — no user filter
|
|
116
118
|
},
|
|
117
119
|
{
|
|
118
120
|
Type: 'entity',
|
|
119
121
|
EntityName: 'MJ: Workspaces',
|
|
120
122
|
PropertyName: '_Workspaces',
|
|
121
123
|
CacheLocal: true,
|
|
124
|
+
Filter: userFilter,
|
|
122
125
|
},
|
|
123
126
|
{
|
|
124
127
|
Type: 'entity',
|
|
125
128
|
EntityName: 'MJ: User Settings',
|
|
126
129
|
PropertyName: '_UserSettings',
|
|
127
130
|
CacheLocal: true,
|
|
131
|
+
Filter: userFilter,
|
|
128
132
|
},
|
|
129
133
|
{
|
|
130
134
|
Type: 'entity',
|
|
131
135
|
EntityName: 'MJ: User Applications',
|
|
132
136
|
PropertyName: '_UserApplications',
|
|
133
137
|
CacheLocal: true,
|
|
138
|
+
Filter: userFilter,
|
|
134
139
|
},
|
|
135
140
|
{
|
|
136
141
|
Type: 'entity',
|
|
137
142
|
EntityName: 'MJ: User Favorites',
|
|
138
143
|
PropertyName: '_UserFavorites',
|
|
139
144
|
CacheLocal: true,
|
|
145
|
+
Filter: userFilter,
|
|
140
146
|
},
|
|
141
147
|
{
|
|
142
148
|
Type: 'entity',
|
|
143
149
|
EntityName: 'MJ: User Record Logs',
|
|
144
150
|
PropertyName: '_UserRecordLogs',
|
|
145
151
|
CacheLocal: true,
|
|
152
|
+
Filter: userFilter,
|
|
146
153
|
},
|
|
147
154
|
{
|
|
148
155
|
Type: 'entity',
|
|
149
156
|
EntityName: 'MJ: User Notification Preferences',
|
|
150
157
|
PropertyName: '_UserNotificationPreferences',
|
|
151
158
|
CacheLocal: true,
|
|
159
|
+
Filter: userFilter,
|
|
152
160
|
},
|
|
153
161
|
{
|
|
154
162
|
Type: 'entity',
|
|
155
163
|
EntityName: 'MJ: Application Roles',
|
|
156
164
|
PropertyName: '_applicationRoles',
|
|
157
165
|
CacheLocal: true,
|
|
166
|
+
// Global reference table — no user filter
|
|
158
167
|
},
|
|
159
168
|
];
|
|
160
169
|
await super.Load(configs, provider, forceRefresh, contextUser);
|
|
@@ -587,6 +596,13 @@ let UserInfoEngine = class UserInfoEngine extends BaseEngine {
|
|
|
587
596
|
}
|
|
588
597
|
return userApp.IsActive ? 'installed_active' : 'installed_inactive';
|
|
589
598
|
}
|
|
599
|
+
/**
|
|
600
|
+
* Read-only view of the ApplicationRole catalog. Used by permission providers
|
|
601
|
+
* that need to reason about grants for arbitrary users (not just CurrentUser).
|
|
602
|
+
*/
|
|
603
|
+
get ApplicationRoles() {
|
|
604
|
+
return this._applicationRoles;
|
|
605
|
+
}
|
|
590
606
|
/**
|
|
591
607
|
* Checks if the current user's roles grant access to the application.
|
|
592
608
|
* If no ApplicationRole records exist for the app, access is open (backwards compatible).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserInfoEngine.js","sourceRoot":"","sources":["../../src/engines/UserInfoEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserInfoEngine.js","sourceRoot":"","sources":["../../src/engines/UserInfoEngine.ts"],"names":[],"mappings":"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"}
|