@nymphjs/tilmeld 1.0.0-alpha.1 → 1.0.0-alpha.5
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 +26 -0
- package/README.md +15 -10
- package/dist/Group.d.ts +2 -0
- package/dist/Group.js +68 -59
- package/dist/Group.js.map +1 -1
- package/dist/Group.test.js +12 -7
- package/dist/Group.test.js.map +1 -1
- package/dist/Tilmeld.d.ts +26 -22
- package/dist/Tilmeld.js +172 -92
- package/dist/Tilmeld.js.map +1 -1
- package/dist/User.d.ts +2 -0
- package/dist/User.js +134 -122
- package/dist/User.js.map +1 -1
- package/dist/User.test.js +12 -7
- package/dist/User.test.js.map +1 -1
- package/dist/conf/d.d.ts +7 -3
- package/dist/conf/defaults.js +41 -109
- package/dist/conf/defaults.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/tilmeldJoiProps.d.ts +12 -0
- package/dist/tilmeldJoiProps.js +20 -0
- package/dist/tilmeldJoiProps.js.map +1 -0
- package/package.json +6 -6
- package/src/Group.test.ts +18 -7
- package/src/Group.ts +88 -64
- package/src/Tilmeld.ts +284 -116
- package/src/User.test.ts +18 -7
- package/src/User.ts +164 -125
- package/src/conf/d.ts +38 -2
- package/src/conf/defaults.ts +29 -68
- package/src/index.ts +3 -1
- package/src/tilmeldJoiProps.ts +46 -0
package/dist/Tilmeld.d.ts
CHANGED
|
@@ -1,28 +1,32 @@
|
|
|
1
|
-
import { EntityInterface, Options,
|
|
1
|
+
import { Nymph, EntityInterface, FormattedSelector, Options, TilmeldInterface, TilmeldAccessLevels } from '@nymphjs/nymph';
|
|
2
2
|
import { Request, Response } from 'express';
|
|
3
3
|
import { Config } from './conf';
|
|
4
|
+
import Group from './Group';
|
|
4
5
|
import User, { UserData } from './User';
|
|
5
6
|
import { AccessControlData } from './Tilmeld.types';
|
|
6
|
-
export default class Tilmeld {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
static init(config: Partial<Config> & {
|
|
7
|
+
export default class Tilmeld implements TilmeldInterface {
|
|
8
|
+
nymph: Nymph;
|
|
9
|
+
config: Config;
|
|
10
|
+
currentUser: (User & UserData) | null;
|
|
11
|
+
User: typeof User;
|
|
12
|
+
Group: typeof Group;
|
|
13
|
+
request: Request | null;
|
|
14
|
+
response: Response | null;
|
|
15
|
+
private skipAuthenticate;
|
|
16
|
+
constructor(config: Partial<Config> & {
|
|
17
17
|
jwtSecret: string;
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
});
|
|
19
|
+
clone(): Tilmeld;
|
|
20
|
+
init(nymph: Nymph): void;
|
|
21
|
+
gatekeeper(ability?: string): boolean;
|
|
22
|
+
private initAccessControl;
|
|
23
|
+
addAccessControlSelectors(options: Options, selectors: FormattedSelector[]): void;
|
|
24
|
+
checkPermissions(entity: EntityInterface & AccessControlData, type?: TilmeldAccessLevels, user?: (User & UserData) | false): boolean;
|
|
25
|
+
checkClientUIDPermissions(name: string, type?: TilmeldAccessLevels, user?: (User & UserData) | false): boolean;
|
|
26
|
+
fillSession(user: User & UserData): void;
|
|
27
|
+
clearSession(): void;
|
|
28
|
+
extractToken(token: string): Promise<(User & UserData) | null>;
|
|
29
|
+
authenticate(skipXsrfToken?: boolean): boolean;
|
|
30
|
+
login(user: User & UserData, sendAuthHeader: boolean): boolean;
|
|
31
|
+
logout(): void;
|
|
28
32
|
}
|
package/dist/Tilmeld.js
CHANGED
|
@@ -12,70 +12,109 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const nymph_1 =
|
|
15
|
+
const nymph_1 = require("@nymphjs/nymph");
|
|
16
16
|
const conf_1 = require("./conf");
|
|
17
17
|
const errors_1 = require("./errors");
|
|
18
18
|
const Group_1 = __importDefault(require("./Group"));
|
|
19
19
|
const User_1 = __importDefault(require("./User"));
|
|
20
20
|
class Tilmeld {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
constructor(config) {
|
|
22
|
+
this.nymph = {};
|
|
23
|
+
this.currentUser = null;
|
|
24
|
+
this.User = User_1.default;
|
|
25
|
+
this.Group = Group_1.default;
|
|
26
|
+
this.request = null;
|
|
27
|
+
this.response = null;
|
|
28
|
+
this.skipAuthenticate = false;
|
|
28
29
|
this.config = Object.assign(Object.assign({}, conf_1.ConfigDefaults), config);
|
|
29
|
-
|
|
30
|
+
}
|
|
31
|
+
clone() {
|
|
32
|
+
const tilmeld = new Tilmeld(this.config);
|
|
33
|
+
tilmeld.request = this.request;
|
|
34
|
+
tilmeld.response = this.response;
|
|
35
|
+
tilmeld.currentUser = this.currentUser;
|
|
36
|
+
tilmeld.skipAuthenticate = true;
|
|
37
|
+
return tilmeld;
|
|
38
|
+
}
|
|
39
|
+
init(nymph) {
|
|
40
|
+
this.nymph = nymph;
|
|
41
|
+
if (this.nymph.driver == null) {
|
|
30
42
|
throw new Error("Tilmeld can't be configured before Nymph.");
|
|
31
43
|
}
|
|
44
|
+
class NymphUser extends User_1.default {
|
|
45
|
+
}
|
|
46
|
+
NymphUser.nymph = this.nymph;
|
|
47
|
+
NymphUser.tilmeld = this;
|
|
48
|
+
NymphUser.skipOnClone = true;
|
|
49
|
+
this.User = NymphUser;
|
|
50
|
+
this.nymph.addEntityClass(NymphUser);
|
|
51
|
+
class NymphGroup extends Group_1.default {
|
|
52
|
+
}
|
|
53
|
+
NymphGroup.nymph = this.nymph;
|
|
54
|
+
NymphGroup.tilmeld = this;
|
|
55
|
+
NymphUser.skipOnClone = true;
|
|
56
|
+
this.Group = NymphGroup;
|
|
57
|
+
this.nymph.addEntityClass(NymphGroup);
|
|
32
58
|
this.initAccessControl();
|
|
33
|
-
if (this.request != null) {
|
|
59
|
+
if (this.request != null && !this.skipAuthenticate) {
|
|
34
60
|
this.authenticate();
|
|
35
61
|
}
|
|
62
|
+
this.skipAuthenticate = false;
|
|
63
|
+
}
|
|
64
|
+
gatekeeper(ability) {
|
|
65
|
+
if (this.currentUser == null) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return this.currentUser.$gatekeeper(ability);
|
|
36
69
|
}
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
70
|
+
initAccessControl() {
|
|
71
|
+
const tilmeld = this;
|
|
72
|
+
const handleQuery = function (_nymph, options, selectors) {
|
|
73
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
40
74
|
if (!options ||
|
|
41
75
|
!('skipAc' in options) ||
|
|
42
76
|
!options.skipAc ||
|
|
43
77
|
options.source === 'client') {
|
|
44
78
|
if ((options === null || options === void 0 ? void 0 : options.source) === 'client') {
|
|
45
|
-
if (!
|
|
46
|
-
((!
|
|
79
|
+
if (!tilmeld.gatekeeper('tilmeld/admin') &&
|
|
80
|
+
((!tilmeld.config.enableUserSearch &&
|
|
47
81
|
((_a = options.class) === null || _a === void 0 ? void 0 : _a.factorySync()) instanceof User_1.default) ||
|
|
48
|
-
(!
|
|
82
|
+
(!tilmeld.config.enableGroupSearch &&
|
|
49
83
|
((_b = options.class) === null || _b === void 0 ? void 0 : _b.factorySync()) instanceof Group_1.default)) &&
|
|
50
84
|
(selectors[0] == null ||
|
|
51
85
|
selectors[0].type !== '&' ||
|
|
52
86
|
(!('guid' in selectors[0]) && !('equal' in selectors[0])) ||
|
|
53
87
|
('guid' in selectors[0] &&
|
|
54
|
-
|
|
88
|
+
(!((_c = selectors[0].guid) === null || _c === void 0 ? void 0 : _c.length) ||
|
|
89
|
+
!((_e = (_d = selectors[0].guid) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.length))) ||
|
|
55
90
|
('equal' in selectors[0] &&
|
|
56
|
-
((
|
|
91
|
+
((_g = (_f = selectors[0].equal) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g[0]) !== 'username' &&
|
|
92
|
+
((_j = (_h = selectors[0].equal) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j[0]) !== 'groupname'))) {
|
|
57
93
|
throw new errors_1.AccessControlError('No permission to search.');
|
|
58
94
|
}
|
|
59
95
|
}
|
|
60
|
-
|
|
96
|
+
tilmeld.addAccessControlSelectors(options, selectors);
|
|
61
97
|
}
|
|
62
98
|
};
|
|
63
|
-
|
|
99
|
+
handleQuery.skipOnClone = true;
|
|
100
|
+
const checkPermissionsDelete = function (_nymph, entity) {
|
|
64
101
|
if (typeof entity.$tilmeldDeleteSkipAC === 'function' &&
|
|
65
102
|
entity.$tilmeldDeleteSkipAC()) {
|
|
66
103
|
return;
|
|
67
104
|
}
|
|
68
|
-
if (
|
|
105
|
+
if (tilmeld.checkPermissions(entity, nymph_1.TilmeldAccessLevels.FULL_ACCESS)) {
|
|
69
106
|
throw new errors_1.AccessControlError('No permission to delete.');
|
|
70
107
|
}
|
|
71
108
|
};
|
|
72
|
-
|
|
73
|
-
|
|
109
|
+
checkPermissionsDelete.skipOnClone = true;
|
|
110
|
+
const checkPermissionsDeleteByID = function (nymph, guid, className) {
|
|
111
|
+
const entity = tilmeld.nymph.driver.getEntitySync({ class: tilmeld.nymph.getEntityClass(className !== null && className !== void 0 ? className : 'Entity') }, { type: '&', guid: guid });
|
|
74
112
|
if (entity != null) {
|
|
75
|
-
checkPermissionsDelete(entity);
|
|
113
|
+
checkPermissionsDelete(nymph, entity);
|
|
76
114
|
}
|
|
77
115
|
};
|
|
78
|
-
|
|
116
|
+
checkPermissionsDeleteByID.skipOnClone = true;
|
|
117
|
+
const checkPermissionsSaveAndFilterAcChanges = function (_nymph, entity) {
|
|
79
118
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
80
119
|
if (!entity) {
|
|
81
120
|
return;
|
|
@@ -108,16 +147,17 @@ class Tilmeld {
|
|
|
108
147
|
}
|
|
109
148
|
};
|
|
110
149
|
setAcProperties(originalAc);
|
|
111
|
-
if (
|
|
150
|
+
if (tilmeld.checkPermissions(entity, nymph_1.TilmeldAccessLevels.FULL_ACCESS)) {
|
|
112
151
|
setAcProperties(newAc);
|
|
113
152
|
}
|
|
114
153
|
}
|
|
115
|
-
if (!
|
|
154
|
+
if (!tilmeld.checkPermissions(entity, nymph_1.TilmeldAccessLevels.WRITE_ACCESS)) {
|
|
116
155
|
throw new errors_1.AccessControlError('No permission to write.');
|
|
117
156
|
}
|
|
118
157
|
};
|
|
119
|
-
|
|
120
|
-
|
|
158
|
+
checkPermissionsSaveAndFilterAcChanges.skipOnClone = true;
|
|
159
|
+
const addAccess = function (_nymph, entity) {
|
|
160
|
+
const user = tilmeld.currentUser;
|
|
121
161
|
if (user != null &&
|
|
122
162
|
entity.guid == null &&
|
|
123
163
|
!(entity instanceof User_1.default) &&
|
|
@@ -131,13 +171,13 @@ class Tilmeld {
|
|
|
131
171
|
entity.group = user.group;
|
|
132
172
|
}
|
|
133
173
|
if (entity.acUser == null) {
|
|
134
|
-
entity.acUser =
|
|
174
|
+
entity.acUser = nymph_1.TilmeldAccessLevels.FULL_ACCESS;
|
|
135
175
|
}
|
|
136
176
|
if (entity.acGroup == null) {
|
|
137
|
-
entity.acGroup =
|
|
177
|
+
entity.acGroup = nymph_1.TilmeldAccessLevels.READ_ACCESS;
|
|
138
178
|
}
|
|
139
179
|
if (entity.acOther == null) {
|
|
140
|
-
entity.acOther =
|
|
180
|
+
entity.acOther = nymph_1.TilmeldAccessLevels.NO_ACCESS;
|
|
141
181
|
}
|
|
142
182
|
if (entity.acRead == null) {
|
|
143
183
|
entity.acRead = [];
|
|
@@ -150,12 +190,13 @@ class Tilmeld {
|
|
|
150
190
|
}
|
|
151
191
|
}
|
|
152
192
|
};
|
|
153
|
-
|
|
193
|
+
addAccess.skipOnClone = true;
|
|
194
|
+
const validate = function (_nymph, entity) {
|
|
154
195
|
if (!(entity instanceof User_1.default) && !(entity instanceof Group_1.default)) {
|
|
155
196
|
const ownershipAcPropertyValidator = (prop) => {
|
|
156
197
|
if (typeof prop != 'number' ||
|
|
157
|
-
prop <
|
|
158
|
-
prop >
|
|
198
|
+
prop < nymph_1.TilmeldAccessLevels.NO_ACCESS ||
|
|
199
|
+
prop > nymph_1.TilmeldAccessLevels.FULL_ACCESS) {
|
|
159
200
|
throw new errors_1.AccessControlError('Invalid access control property.');
|
|
160
201
|
}
|
|
161
202
|
};
|
|
@@ -199,16 +240,16 @@ class Tilmeld {
|
|
|
199
240
|
}
|
|
200
241
|
}
|
|
201
242
|
};
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
243
|
+
validate.skipOnClone = true;
|
|
244
|
+
this.nymph.on('query', handleQuery);
|
|
245
|
+
this.nymph.on('beforeSaveEntity', addAccess);
|
|
246
|
+
this.nymph.on('beforeSaveEntity', validate);
|
|
247
|
+
this.nymph.on('beforeSaveEntity', checkPermissionsSaveAndFilterAcChanges);
|
|
248
|
+
this.nymph.on('beforeDeleteEntity', checkPermissionsDelete);
|
|
249
|
+
this.nymph.on('beforeDeleteEntityByID', checkPermissionsDeleteByID);
|
|
209
250
|
}
|
|
210
|
-
|
|
211
|
-
var _a, _b, _c;
|
|
251
|
+
addAccessControlSelectors(options, selectors) {
|
|
252
|
+
var _a, _b, _c, _d, _e;
|
|
212
253
|
const user = this.currentUser;
|
|
213
254
|
if (user != null &&
|
|
214
255
|
((_b = (_a = user.abilities) === null || _a === void 0 ? void 0 : _a.indexOf('system/admin')) !== null && _b !== void 0 ? _b : -1) !== -1) {
|
|
@@ -218,17 +259,20 @@ class Tilmeld {
|
|
|
218
259
|
throw new Error('No options in argument.');
|
|
219
260
|
}
|
|
220
261
|
else if ('class' in options &&
|
|
221
|
-
(options.class ===
|
|
262
|
+
(((_c = options.class) === null || _c === void 0 ? void 0 : _c.factorySync()) instanceof User_1.default ||
|
|
263
|
+
((_d = options.class) === null || _d === void 0 ? void 0 : _d.factorySync()) instanceof Group_1.default)) {
|
|
222
264
|
return;
|
|
223
265
|
}
|
|
224
266
|
if (user === null) {
|
|
225
267
|
selectors.push({
|
|
226
268
|
type: '|',
|
|
227
|
-
gte: ['acOther',
|
|
228
|
-
selector:
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
269
|
+
gte: [['acOther', nymph_1.TilmeldAccessLevels.READ_ACCESS]],
|
|
270
|
+
selector: [
|
|
271
|
+
{
|
|
272
|
+
type: '&',
|
|
273
|
+
'!defined': ['user', 'group'],
|
|
274
|
+
},
|
|
275
|
+
],
|
|
232
276
|
});
|
|
233
277
|
}
|
|
234
278
|
else {
|
|
@@ -239,13 +283,13 @@ class Tilmeld {
|
|
|
239
283
|
},
|
|
240
284
|
{
|
|
241
285
|
type: '&',
|
|
242
|
-
ref: ['user', user],
|
|
243
|
-
gte: ['acUser',
|
|
286
|
+
ref: [['user', user]],
|
|
287
|
+
gte: [['acUser', nymph_1.TilmeldAccessLevels.READ_ACCESS]],
|
|
244
288
|
},
|
|
245
289
|
];
|
|
246
290
|
const selector = {
|
|
247
291
|
type: '|',
|
|
248
|
-
gte: ['acOther',
|
|
292
|
+
gte: [['acOther', nymph_1.TilmeldAccessLevels.READ_ACCESS]],
|
|
249
293
|
selector: subSelectors,
|
|
250
294
|
ref: [
|
|
251
295
|
['acRead', user],
|
|
@@ -261,7 +305,7 @@ class Tilmeld {
|
|
|
261
305
|
acRefs.push(['acWrite', user.group]);
|
|
262
306
|
acRefs.push(['acFull', user.group]);
|
|
263
307
|
}
|
|
264
|
-
for (let curSecondaryGroup of (
|
|
308
|
+
for (let curSecondaryGroup of (_e = user.groups) !== null && _e !== void 0 ? _e : []) {
|
|
265
309
|
if (curSecondaryGroup != null && curSecondaryGroup.guid != null) {
|
|
266
310
|
groupRefs.push(['group', curSecondaryGroup]);
|
|
267
311
|
acRefs.push(['acRead', curSecondaryGroup]);
|
|
@@ -280,11 +324,13 @@ class Tilmeld {
|
|
|
280
324
|
if (groupRefs.length) {
|
|
281
325
|
subSelectors.push({
|
|
282
326
|
type: '&',
|
|
283
|
-
gte: ['acGroup',
|
|
284
|
-
selector:
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
327
|
+
gte: [['acGroup', nymph_1.TilmeldAccessLevels.READ_ACCESS]],
|
|
328
|
+
selector: [
|
|
329
|
+
{
|
|
330
|
+
type: '|',
|
|
331
|
+
ref: groupRefs,
|
|
332
|
+
},
|
|
333
|
+
],
|
|
288
334
|
});
|
|
289
335
|
}
|
|
290
336
|
if (acRefs.length) {
|
|
@@ -296,16 +342,16 @@ class Tilmeld {
|
|
|
296
342
|
selectors.push(selector);
|
|
297
343
|
}
|
|
298
344
|
}
|
|
299
|
-
|
|
345
|
+
checkPermissions(entity, type = nymph_1.TilmeldAccessLevels.READ_ACCESS, user) {
|
|
300
346
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
301
347
|
if (typeof entity !== 'object' || typeof entity.$is !== 'function') {
|
|
302
348
|
return false;
|
|
303
349
|
}
|
|
304
350
|
let userOrNull = null;
|
|
305
|
-
let userOrEmpty =
|
|
351
|
+
let userOrEmpty = this.User.factorySync();
|
|
306
352
|
if (user == null) {
|
|
307
353
|
userOrNull = this.currentUser;
|
|
308
|
-
userOrEmpty =
|
|
354
|
+
userOrEmpty = this.User.current(true);
|
|
309
355
|
}
|
|
310
356
|
else if (user !== false) {
|
|
311
357
|
userOrNull = user;
|
|
@@ -315,15 +361,16 @@ class Tilmeld {
|
|
|
315
361
|
return true;
|
|
316
362
|
}
|
|
317
363
|
if ((entity instanceof User_1.default || entity instanceof Group_1.default) &&
|
|
318
|
-
(type ===
|
|
364
|
+
(type === nymph_1.TilmeldAccessLevels.READ_ACCESS ||
|
|
365
|
+
userOrEmpty.$gatekeeper('tilmeld/admin'))) {
|
|
319
366
|
return true;
|
|
320
367
|
}
|
|
321
368
|
if (entity.user == null && entity.group == null) {
|
|
322
369
|
return true;
|
|
323
370
|
}
|
|
324
|
-
const acUser = (_a = entity.acUser) !== null && _a !== void 0 ? _a :
|
|
325
|
-
const acGroup = (_b = entity.acGroup) !== null && _b !== void 0 ? _b :
|
|
326
|
-
const acOther = (_c = entity.acOther) !== null && _c !== void 0 ? _c :
|
|
371
|
+
const acUser = (_a = entity.acUser) !== null && _a !== void 0 ? _a : nymph_1.TilmeldAccessLevels.FULL_ACCESS;
|
|
372
|
+
const acGroup = (_b = entity.acGroup) !== null && _b !== void 0 ? _b : nymph_1.TilmeldAccessLevels.READ_ACCESS;
|
|
373
|
+
const acOther = (_c = entity.acOther) !== null && _c !== void 0 ? _c : nymph_1.TilmeldAccessLevels.NO_ACCESS;
|
|
327
374
|
if (userOrNull === null) {
|
|
328
375
|
return acOther >= type;
|
|
329
376
|
}
|
|
@@ -333,16 +380,25 @@ class Tilmeld {
|
|
|
333
380
|
if (userOrEmpty.group != null &&
|
|
334
381
|
typeof userOrEmpty.group.$is === 'function' &&
|
|
335
382
|
userOrEmpty.group.$is(entity) &&
|
|
336
|
-
type ===
|
|
383
|
+
type === nymph_1.TilmeldAccessLevels.READ_ACCESS) {
|
|
337
384
|
return true;
|
|
338
385
|
}
|
|
339
386
|
let allGroups = userOrEmpty.group == null ? [] : [userOrEmpty.group];
|
|
340
387
|
allGroups = allGroups.concat((_d = userOrEmpty.groups) !== null && _d !== void 0 ? _d : []);
|
|
341
388
|
allGroups = allGroups.concat(userOrEmpty.$getDescendantGroupsSync());
|
|
342
389
|
const checks = [
|
|
343
|
-
{
|
|
344
|
-
|
|
345
|
-
|
|
390
|
+
{
|
|
391
|
+
type: nymph_1.TilmeldAccessLevels.FULL_ACCESS,
|
|
392
|
+
array: [...((_e = entity.acFull) !== null && _e !== void 0 ? _e : [])],
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
type: nymph_1.TilmeldAccessLevels.WRITE_ACCESS,
|
|
396
|
+
array: [...((_f = entity.acWrite) !== null && _f !== void 0 ? _f : [])],
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
type: nymph_1.TilmeldAccessLevels.READ_ACCESS,
|
|
400
|
+
array: [...((_g = entity.acRead) !== null && _g !== void 0 ? _g : [])],
|
|
401
|
+
},
|
|
346
402
|
];
|
|
347
403
|
for (let curCheck of checks) {
|
|
348
404
|
if (type <= curCheck.type) {
|
|
@@ -369,7 +425,38 @@ class Tilmeld {
|
|
|
369
425
|
}
|
|
370
426
|
return acOther >= type;
|
|
371
427
|
}
|
|
372
|
-
|
|
428
|
+
checkClientUIDPermissions(name, type = nymph_1.TilmeldAccessLevels.READ_ACCESS, user) {
|
|
429
|
+
let userOrEmpty = this.User.factorySync();
|
|
430
|
+
if (user == null) {
|
|
431
|
+
userOrEmpty = this.User.current(true);
|
|
432
|
+
}
|
|
433
|
+
else if (user !== false) {
|
|
434
|
+
userOrEmpty = user;
|
|
435
|
+
}
|
|
436
|
+
if (userOrEmpty.$gatekeeper('system/admin')) {
|
|
437
|
+
return true;
|
|
438
|
+
}
|
|
439
|
+
if (type === nymph_1.TilmeldAccessLevels.FULL_ACCESS) {
|
|
440
|
+
return (this.config.clientSetabledUIDs.indexOf(name) !== -1 ||
|
|
441
|
+
userOrEmpty.$gatekeeper(`uid/set/${name}`));
|
|
442
|
+
}
|
|
443
|
+
else if (type === nymph_1.TilmeldAccessLevels.WRITE_ACCESS) {
|
|
444
|
+
return (this.config.clientEnabledUIDs.indexOf(name) !== -1 ||
|
|
445
|
+
this.config.clientSetabledUIDs.indexOf(name) !== -1 ||
|
|
446
|
+
userOrEmpty.$gatekeeper(`uid/new/${name}`) ||
|
|
447
|
+
userOrEmpty.$gatekeeper(`uid/set/${name}`));
|
|
448
|
+
}
|
|
449
|
+
else if (type === nymph_1.TilmeldAccessLevels.READ_ACCESS) {
|
|
450
|
+
return (this.config.clientReadableUIDs.indexOf(name) !== -1 ||
|
|
451
|
+
this.config.clientEnabledUIDs.indexOf(name) !== -1 ||
|
|
452
|
+
this.config.clientSetabledUIDs.indexOf(name) !== -1 ||
|
|
453
|
+
userOrEmpty.$gatekeeper(`uid/get/${name}`) ||
|
|
454
|
+
userOrEmpty.$gatekeeper(`uid/new/${name}`) ||
|
|
455
|
+
userOrEmpty.$gatekeeper(`uid/set/${name}`));
|
|
456
|
+
}
|
|
457
|
+
return false;
|
|
458
|
+
}
|
|
459
|
+
fillSession(user) {
|
|
373
460
|
var _a;
|
|
374
461
|
const _group = user.group;
|
|
375
462
|
const _groups = user.groups;
|
|
@@ -382,7 +469,7 @@ class Tilmeld {
|
|
|
382
469
|
group.$updateDataProtection();
|
|
383
470
|
}
|
|
384
471
|
}
|
|
385
|
-
|
|
472
|
+
clearSession() {
|
|
386
473
|
var _a;
|
|
387
474
|
const user = this.currentUser;
|
|
388
475
|
this.currentUser = null;
|
|
@@ -396,14 +483,14 @@ class Tilmeld {
|
|
|
396
483
|
}
|
|
397
484
|
}
|
|
398
485
|
}
|
|
399
|
-
|
|
486
|
+
extractToken(token) {
|
|
400
487
|
return __awaiter(this, void 0, void 0, function* () {
|
|
401
|
-
const extract = this.config.jwtExtract(token);
|
|
488
|
+
const extract = this.config.jwtExtract(this.config, token);
|
|
402
489
|
if (extract == null) {
|
|
403
490
|
return null;
|
|
404
491
|
}
|
|
405
492
|
const { guid } = extract;
|
|
406
|
-
const user = yield
|
|
493
|
+
const user = yield this.nymph.getEntity({ class: this.User }, {
|
|
407
494
|
type: '&',
|
|
408
495
|
guid: guid,
|
|
409
496
|
});
|
|
@@ -413,7 +500,7 @@ class Tilmeld {
|
|
|
413
500
|
return user;
|
|
414
501
|
});
|
|
415
502
|
}
|
|
416
|
-
|
|
503
|
+
authenticate(skipXsrfToken = false) {
|
|
417
504
|
var _a;
|
|
418
505
|
if (this.request == null) {
|
|
419
506
|
return false;
|
|
@@ -421,9 +508,9 @@ class Tilmeld {
|
|
|
421
508
|
const cookies = (_a = this.request.cookies) !== null && _a !== void 0 ? _a : {};
|
|
422
509
|
let fromAuthHeader = false;
|
|
423
510
|
let authToken;
|
|
424
|
-
if (this.request.header('
|
|
511
|
+
if (this.request.header('x-tilmeldauth') != null) {
|
|
425
512
|
fromAuthHeader = true;
|
|
426
|
-
authToken = this.request.header('
|
|
513
|
+
authToken = this.request.header('x-tilmeldauth');
|
|
427
514
|
}
|
|
428
515
|
else if ('TILMELDAUTH' in cookies) {
|
|
429
516
|
fromAuthHeader = false;
|
|
@@ -435,21 +522,21 @@ class Tilmeld {
|
|
|
435
522
|
let extract;
|
|
436
523
|
if (skipXsrfToken ||
|
|
437
524
|
this.request.originalUrl.startsWith(this.config.setupPath)) {
|
|
438
|
-
extract = this.config.jwtExtract(authToken);
|
|
525
|
+
extract = this.config.jwtExtract(this.config, authToken);
|
|
439
526
|
}
|
|
440
527
|
else {
|
|
441
|
-
const xsrfToken = this.request.header('
|
|
528
|
+
const xsrfToken = this.request.header('x-xsrf-token');
|
|
442
529
|
if (xsrfToken == null && !fromAuthHeader) {
|
|
443
530
|
return false;
|
|
444
531
|
}
|
|
445
|
-
extract = this.config.jwtExtract(authToken, xsrfToken);
|
|
532
|
+
extract = this.config.jwtExtract(this.config, authToken, xsrfToken);
|
|
446
533
|
}
|
|
447
534
|
if (extract == null) {
|
|
448
535
|
this.logout();
|
|
449
536
|
return false;
|
|
450
537
|
}
|
|
451
538
|
const { guid, expire } = extract;
|
|
452
|
-
const user =
|
|
539
|
+
const user = this.User.factorySync(guid);
|
|
453
540
|
if (user.guid == null || !user.enabled) {
|
|
454
541
|
this.logout();
|
|
455
542
|
return false;
|
|
@@ -462,10 +549,10 @@ class Tilmeld {
|
|
|
462
549
|
}
|
|
463
550
|
return true;
|
|
464
551
|
}
|
|
465
|
-
|
|
552
|
+
login(user, sendAuthHeader) {
|
|
466
553
|
if (user.guid != null && user.enabled) {
|
|
467
554
|
if (this.response && !this.response.headersSent) {
|
|
468
|
-
const token = this.config.jwtBuilder(user);
|
|
555
|
+
const token = this.config.jwtBuilder(this.config, user);
|
|
469
556
|
const appUrl = new URL(this.config.appUrl);
|
|
470
557
|
this.response.cookie('TILMELDAUTH', token, {
|
|
471
558
|
domain: this.config.cookieDomain,
|
|
@@ -484,7 +571,7 @@ class Tilmeld {
|
|
|
484
571
|
}
|
|
485
572
|
return false;
|
|
486
573
|
}
|
|
487
|
-
|
|
574
|
+
logout() {
|
|
488
575
|
this.clearSession();
|
|
489
576
|
if (this.response && !this.response.headersSent) {
|
|
490
577
|
this.response.clearCookie('TILMELDAUTH', {
|
|
@@ -496,11 +583,4 @@ class Tilmeld {
|
|
|
496
583
|
}
|
|
497
584
|
}
|
|
498
585
|
exports.default = Tilmeld;
|
|
499
|
-
Tilmeld.NO_ACCESS = 0;
|
|
500
|
-
Tilmeld.READ_ACCESS = 1;
|
|
501
|
-
Tilmeld.WRITE_ACCESS = 2;
|
|
502
|
-
Tilmeld.FULL_ACCESS = 4;
|
|
503
|
-
Tilmeld.currentUser = null;
|
|
504
|
-
Tilmeld.request = null;
|
|
505
|
-
Tilmeld.response = null;
|
|
506
586
|
//# sourceMappingURL=Tilmeld.js.map
|
package/dist/Tilmeld.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tilmeld.js","sourceRoot":"","sources":["../src/Tilmeld.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tilmeld.js","sourceRoot":"","sources":["../src/Tilmeld.ts"],"names":[],"mappings":"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"}
|