@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/dist/Tilmeld.d.ts CHANGED
@@ -1,28 +1,32 @@
1
- import { EntityInterface, Options, Selector } from '@nymphjs/nymph';
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
- static NO_ACCESS: number;
8
- static READ_ACCESS: number;
9
- static WRITE_ACCESS: number;
10
- static FULL_ACCESS: number;
11
- static config: Config;
12
- static currentUser: (User & UserData) | null;
13
- static request: Request | null;
14
- static response: Response | null;
15
- static gatekeeper(ability?: string): boolean;
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
- }): void;
19
- private static initAccessControl;
20
- static addAccessControlSelectors(options: Options, selectors: Selector[]): void;
21
- static checkPermissions(entity: EntityInterface & AccessControlData, type?: number, user?: (User & UserData) | false): boolean;
22
- static fillSession(user: User & UserData): void;
23
- static clearSession(): void;
24
- static extractToken(token: string): Promise<(User & UserData) | null>;
25
- static authenticate(skipXsrfToken?: boolean): boolean;
26
- static login(user: User & UserData, sendAuthHeader: boolean): boolean;
27
- static logout(): void;
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 = __importDefault(require("@nymphjs/nymph"));
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
- static gatekeeper(ability) {
22
- if (this.currentUser == null) {
23
- return false;
24
- }
25
- return this.currentUser.$gatekeeper(ability);
26
- }
27
- static init(config) {
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
- if (nymph_1.default.driver == null) {
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
- static initAccessControl() {
38
- const getEntities = function (options, selectors) {
39
- var _a, _b, _c;
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 (!Tilmeld.gatekeeper('tilmeld/admin') &&
46
- ((!Tilmeld.config.enableUserSearch &&
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
- (!Tilmeld.config.enableGroupSearch &&
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
- typeof selectors[0].guid !== 'string') ||
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
- ((_c = selectors[0]['equal']) === null || _c === void 0 ? void 0 : _c[0]) !== 'username'))) {
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
- Tilmeld.addAccessControlSelectors(options, selectors);
96
+ tilmeld.addAccessControlSelectors(options, selectors);
61
97
  }
62
98
  };
63
- const checkPermissionsDelete = function (entity) {
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 (Tilmeld.checkPermissions(entity, Tilmeld.FULL_ACCESS)) {
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
- const checkPermissionsDeleteByID = function (guid, className) {
73
- const entity = nymph_1.default.driver.getEntitySync({ class: nymph_1.default.getEntityClass(className !== null && className !== void 0 ? className : 'Entity') }, { type: '&', guid: guid });
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
- const checkPermissionsSaveAndFilterAcChanges = function (entity) {
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 (Tilmeld.checkPermissions(entity, Tilmeld.FULL_ACCESS)) {
150
+ if (tilmeld.checkPermissions(entity, nymph_1.TilmeldAccessLevels.FULL_ACCESS)) {
112
151
  setAcProperties(newAc);
113
152
  }
114
153
  }
115
- if (!Tilmeld.checkPermissions(entity, Tilmeld.WRITE_ACCESS)) {
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
- const addAccess = function (entity) {
120
- const user = Tilmeld.currentUser;
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 = Tilmeld.FULL_ACCESS;
174
+ entity.acUser = nymph_1.TilmeldAccessLevels.FULL_ACCESS;
135
175
  }
136
176
  if (entity.acGroup == null) {
137
- entity.acGroup = Tilmeld.READ_ACCESS;
177
+ entity.acGroup = nymph_1.TilmeldAccessLevels.READ_ACCESS;
138
178
  }
139
179
  if (entity.acOther == null) {
140
- entity.acOther = Tilmeld.NO_ACCESS;
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
- const validate = function (entity) {
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 < Tilmeld.NO_ACCESS ||
158
- prop > Tilmeld.FULL_ACCESS) {
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
- nymph_1.default.on('beforeGetEntity', getEntities);
203
- nymph_1.default.on('beforeGetEntities', getEntities);
204
- nymph_1.default.on('beforeSaveEntity', addAccess);
205
- nymph_1.default.on('beforeSaveEntity', validate);
206
- nymph_1.default.on('beforeSaveEntity', checkPermissionsSaveAndFilterAcChanges);
207
- nymph_1.default.on('beforeDeleteEntity', checkPermissionsDelete);
208
- nymph_1.default.on('beforeDeleteEntityByID', checkPermissionsDeleteByID);
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
- static addAccessControlSelectors(options, selectors) {
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 === User_1.default || options.class === Group_1.default)) {
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', Tilmeld.READ_ACCESS],
228
- selector: {
229
- type: '&',
230
- '!defined': ['user', 'group'],
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', Tilmeld.READ_ACCESS],
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', Tilmeld.READ_ACCESS],
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 (_c = user.groups) !== null && _c !== void 0 ? _c : []) {
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', Tilmeld.READ_ACCESS],
284
- selector: {
285
- type: '|',
286
- ref: groupRefs,
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
- static checkPermissions(entity, type = Tilmeld.READ_ACCESS, user) {
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 = User_1.default.factorySync();
351
+ let userOrEmpty = this.User.factorySync();
306
352
  if (user == null) {
307
353
  userOrNull = this.currentUser;
308
- userOrEmpty = User_1.default.current(true);
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 === Tilmeld.READ_ACCESS || userOrEmpty.$gatekeeper('tilmeld/admin'))) {
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 : Tilmeld.FULL_ACCESS;
325
- const acGroup = (_b = entity.acGroup) !== null && _b !== void 0 ? _b : Tilmeld.READ_ACCESS;
326
- const acOther = (_c = entity.acOther) !== null && _c !== void 0 ? _c : Tilmeld.NO_ACCESS;
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 === Tilmeld.READ_ACCESS) {
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
- { type: Tilmeld.FULL_ACCESS, array: [...((_e = entity.acFull) !== null && _e !== void 0 ? _e : [])] },
344
- { type: Tilmeld.WRITE_ACCESS, array: [...((_f = entity.acWrite) !== null && _f !== void 0 ? _f : [])] },
345
- { type: Tilmeld.READ_ACCESS, array: [...((_g = entity.acRead) !== null && _g !== void 0 ? _g : [])] },
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
- static fillSession(user) {
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
- static clearSession() {
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
- static extractToken(token) {
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 nymph_1.default.getEntity({ class: User_1.default }, {
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
- static authenticate(skipXsrfToken = false) {
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('HTTP_X_TILMELDAUTH') != null) {
511
+ if (this.request.header('x-tilmeldauth') != null) {
425
512
  fromAuthHeader = true;
426
- authToken = this.request.header('HTTP_X_TILMELDAUTH');
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('HTTP_X_XSRF_TOKEN');
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 = User_1.default.factorySync(guid);
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
- static login(user, sendAuthHeader) {
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
- static logout() {
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
@@ -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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"}