@nymphjs/tilmeld 1.0.0-beta.85 → 1.0.0-beta.87
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 +12 -0
- package/README.md +1 -1
- package/dist/Group.d.ts +6 -1
- package/dist/Group.js +140 -54
- package/dist/Group.js.map +1 -1
- package/dist/Tilmeld.js +18 -0
- package/dist/Tilmeld.js.map +1 -1
- package/dist/User.d.ts +16 -1
- package/dist/User.js +299 -53
- package/dist/User.js.map +1 -1
- package/dist/User.test.js +63 -0
- package/dist/User.test.js.map +1 -1
- package/dist/conf/d.d.ts +31 -0
- package/dist/conf/defaults.js +3 -0
- package/dist/conf/defaults.js.map +1 -1
- package/package.json +8 -8
- package/src/Group.ts +191 -66
- package/src/Tilmeld.ts +31 -1
- package/src/User.test.ts +81 -0
- package/src/User.ts +376 -63
- package/src/conf/d.ts +31 -0
- package/src/conf/defaults.ts +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.0.0-beta.87](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.86...v1.0.0-beta.87) (2025-01-20)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- deprecate node client and allow multiple client instances to each log in own users ([17b42f4](https://github.com/sciactive/nymphjs/commit/17b42f449f2355a3ce896b8e86a47edd660e9277))
|
|
11
|
+
|
|
12
|
+
# [1.0.0-beta.86](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.85...v1.0.0-beta.86) (2024-12-28)
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
- add domain support ([c965008](https://github.com/sciactive/nymphjs/commit/c96500811a4d64ab4e80eca6acdfbfdfae1de076))
|
|
17
|
+
|
|
6
18
|
# [1.0.0-beta.85](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.84...v1.0.0-beta.85) (2024-12-27)
|
|
7
19
|
|
|
8
20
|
**Note:** Version bump only for package @nymphjs/tilmeld
|
package/README.md
CHANGED
|
@@ -64,7 +64,7 @@ The admin and switch abilities cannot be inherited from groups.
|
|
|
64
64
|
|
|
65
65
|
# License
|
|
66
66
|
|
|
67
|
-
Copyright 2021-
|
|
67
|
+
Copyright 2021-2025 SciActive Inc
|
|
68
68
|
|
|
69
69
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
70
70
|
you may not use this file except in compliance with the License.
|
package/dist/Group.d.ts
CHANGED
|
@@ -84,6 +84,10 @@ export default class Group extends AbleObject<GroupData> {
|
|
|
84
84
|
* This should only be used by the backend.
|
|
85
85
|
*/
|
|
86
86
|
private $skipAcWhenDeleting;
|
|
87
|
+
/**
|
|
88
|
+
* Used to save the current groupname for domain admin permissions.
|
|
89
|
+
*/
|
|
90
|
+
$originalGroupname?: string;
|
|
87
91
|
static factoryGroupname(groupname?: string): Promise<Group & GroupData>;
|
|
88
92
|
/**
|
|
89
93
|
* Get all the groups that can be assigned as primary groups.
|
|
@@ -108,7 +112,8 @@ export default class Group extends AbleObject<GroupData> {
|
|
|
108
112
|
$getAvatar(): string;
|
|
109
113
|
$jsonAcceptData(input: EntityJson, allowConflict?: boolean): void;
|
|
110
114
|
$jsonAcceptPatch(patch: EntityPatch, allowConflict?: boolean): void;
|
|
111
|
-
$
|
|
115
|
+
private $checkIncomingAbilities;
|
|
116
|
+
$putData(data: EntityData, sdata?: SerializedEntityData, source?: 'server'): void;
|
|
112
117
|
/**
|
|
113
118
|
* Update the data protection arrays for a user.
|
|
114
119
|
*
|
package/dist/Group.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import crypto from 'node:crypto';
|
|
2
|
-
import { difference } from 'lodash-es';
|
|
2
|
+
import { difference, xor } from 'lodash-es';
|
|
3
|
+
import { splitn } from '@sciactive/splitn';
|
|
3
4
|
import { enforceTilmeld } from './enforceTilmeld.js';
|
|
4
5
|
import AbleObject from './AbleObject.js';
|
|
5
|
-
import { BadDataError, BadEmailError, BadUsernameError, CouldNotChangeDefaultPrimaryGroupError, } from './errors/index.js';
|
|
6
|
+
import { AccessControlError, BadDataError, BadEmailError, BadUsernameError, CouldNotChangeDefaultPrimaryGroupError, } from './errors/index.js';
|
|
6
7
|
/**
|
|
7
8
|
* A user group data model.
|
|
8
9
|
*
|
|
@@ -46,6 +47,10 @@ export default class Group extends AbleObject {
|
|
|
46
47
|
* This should only be used by the backend.
|
|
47
48
|
*/
|
|
48
49
|
$skipAcWhenDeleting = false;
|
|
50
|
+
/**
|
|
51
|
+
* Used to save the current groupname for domain admin permissions.
|
|
52
|
+
*/
|
|
53
|
+
$originalGroupname;
|
|
49
54
|
static async factoryGroupname(groupname) {
|
|
50
55
|
const entity = new this();
|
|
51
56
|
if (groupname != null) {
|
|
@@ -160,59 +165,55 @@ export default class Group extends AbleObject {
|
|
|
160
165
|
'?d=identicon&s=40');
|
|
161
166
|
}
|
|
162
167
|
$jsonAcceptData(input, allowConflict = false) {
|
|
163
|
-
const tilmeld = enforceTilmeld(this);
|
|
164
168
|
this.$check();
|
|
165
|
-
if ('abilities' in input.data
|
|
166
|
-
input.data.abilities
|
|
167
|
-
this.$data.abilities?.includes('system/admin') &&
|
|
168
|
-
(!tilmeld.currentUser ||
|
|
169
|
-
!tilmeld.currentUser.abilities?.includes('system/admin'))) {
|
|
170
|
-
throw new BadDataError("You don't have the authority to grant or revoke system/admin.");
|
|
171
|
-
}
|
|
172
|
-
if ('abilities' in input.data &&
|
|
173
|
-
input.data.abilities?.includes('tilmeld/admin') !==
|
|
174
|
-
this.$data.abilities?.includes('tilmeld/admin') &&
|
|
175
|
-
(!tilmeld.currentUser ||
|
|
176
|
-
!tilmeld.currentUser.abilities?.includes('system/admin'))) {
|
|
177
|
-
throw new BadDataError("You don't have the authority to grant or revoke tilmeld/admin.");
|
|
178
|
-
}
|
|
179
|
-
if ('abilities' in input.data &&
|
|
180
|
-
input.data.abilities?.includes('tilmeld/switch') !==
|
|
181
|
-
this.$data.abilities?.includes('tilmeld/switch') &&
|
|
182
|
-
(!tilmeld.currentUser ||
|
|
183
|
-
!tilmeld.currentUser.abilities?.includes('system/admin'))) {
|
|
184
|
-
throw new BadDataError("You don't have the authority to grant or revoke tilmeld/switch.");
|
|
169
|
+
if ('abilities' in input.data) {
|
|
170
|
+
this.$checkIncomingAbilities(input.data.abilities);
|
|
185
171
|
}
|
|
186
172
|
super.$jsonAcceptData(input, allowConflict);
|
|
187
173
|
}
|
|
188
174
|
$jsonAcceptPatch(patch, allowConflict = false) {
|
|
189
|
-
const tilmeld = enforceTilmeld(this);
|
|
190
175
|
this.$check();
|
|
191
|
-
if ('abilities' in patch.set
|
|
192
|
-
patch.set.abilities
|
|
193
|
-
|
|
176
|
+
if ('abilities' in patch.set) {
|
|
177
|
+
this.$checkIncomingAbilities(patch.set.abilities);
|
|
178
|
+
}
|
|
179
|
+
super.$jsonAcceptPatch(patch, allowConflict);
|
|
180
|
+
}
|
|
181
|
+
$checkIncomingAbilities(incoming) {
|
|
182
|
+
const tilmeld = enforceTilmeld(this);
|
|
183
|
+
if (!Array.isArray(incoming) ||
|
|
184
|
+
incoming.find((ability) => typeof ability !== 'string')) {
|
|
185
|
+
throw new BadDataError('Abilities must be an array of strings.');
|
|
186
|
+
}
|
|
187
|
+
if (incoming.includes('system/admin') !==
|
|
188
|
+
this.$data.abilities?.includes('system/admin') &&
|
|
194
189
|
(!tilmeld.currentUser ||
|
|
195
190
|
!tilmeld.currentUser.abilities?.includes('system/admin'))) {
|
|
196
191
|
throw new BadDataError("You don't have the authority to grant or revoke system/admin.");
|
|
197
192
|
}
|
|
198
|
-
if ('
|
|
199
|
-
|
|
200
|
-
this.$data.abilities?.includes('tilmeld/admin') &&
|
|
193
|
+
if (incoming.includes('tilmeld/admin') !==
|
|
194
|
+
this.$data.abilities?.includes('tilmeld/admin') &&
|
|
201
195
|
(!tilmeld.currentUser ||
|
|
202
196
|
!tilmeld.currentUser.abilities?.includes('system/admin'))) {
|
|
203
197
|
throw new BadDataError("You don't have the authority to grant or revoke tilmeld/admin.");
|
|
204
198
|
}
|
|
205
|
-
if ('
|
|
206
|
-
|
|
207
|
-
this.$data.abilities?.includes('tilmeld/switch') &&
|
|
199
|
+
if (incoming.includes('tilmeld/switch') !==
|
|
200
|
+
this.$data.abilities?.includes('tilmeld/switch') &&
|
|
208
201
|
(!tilmeld.currentUser ||
|
|
209
202
|
!tilmeld.currentUser.abilities?.includes('system/admin'))) {
|
|
210
203
|
throw new BadDataError("You don't have the authority to grant or revoke tilmeld/switch.");
|
|
211
204
|
}
|
|
212
|
-
|
|
205
|
+
if (xor(incoming.filter((ability) => ability.startsWith('tilmeld/')), this.$data.abilities?.filter((ability) => ability.startsWith('tilmeld/')) ?? []).length &&
|
|
206
|
+
(!tilmeld.currentUser ||
|
|
207
|
+
(!tilmeld.currentUser.abilities?.includes('system/admin') &&
|
|
208
|
+
!tilmeld.currentUser.abilities?.includes('tilmeld/admin')))) {
|
|
209
|
+
throw new BadDataError("You don't have the authority to grant or revoke Tilmeld abilities.");
|
|
210
|
+
}
|
|
213
211
|
}
|
|
214
|
-
$putData(data, sdata) {
|
|
215
|
-
super.$putData(data, sdata);
|
|
212
|
+
$putData(data, sdata, source) {
|
|
213
|
+
super.$putData(data, sdata, source);
|
|
214
|
+
if (source === 'server') {
|
|
215
|
+
this.$originalGroupname = this.$data.groupname;
|
|
216
|
+
}
|
|
216
217
|
this.$updateDataProtection();
|
|
217
218
|
}
|
|
218
219
|
/**
|
|
@@ -223,6 +224,13 @@ export default class Group extends AbleObject {
|
|
|
223
224
|
$updateDataProtection(givenUser) {
|
|
224
225
|
const tilmeld = enforceTilmeld(this);
|
|
225
226
|
let user = givenUser ?? tilmeld.User.current();
|
|
227
|
+
let [_groupname, domain] = tilmeld.config.domainSupport
|
|
228
|
+
? splitn(this.$data.groupname ?? '', '@', 2)
|
|
229
|
+
: [this.$data.groupname, null];
|
|
230
|
+
// Lowercase the domain part.
|
|
231
|
+
if (domain) {
|
|
232
|
+
domain = domain.toLowerCase();
|
|
233
|
+
}
|
|
226
234
|
this.$privateData = [...Group.DEFAULT_PRIVATE_DATA];
|
|
227
235
|
this.$allowlistData = [...Group.DEFAULT_ALLOWLIST_DATA];
|
|
228
236
|
if (tilmeld.config.emailUsernames) {
|
|
@@ -241,6 +249,13 @@ export default class Group extends AbleObject {
|
|
|
241
249
|
// Users can see their group's data.
|
|
242
250
|
this.$privateData = [];
|
|
243
251
|
}
|
|
252
|
+
else if (user != null &&
|
|
253
|
+
tilmeld.config.domainSupport &&
|
|
254
|
+
domain &&
|
|
255
|
+
user.abilities?.includes(`tilmeld/domain/${domain}/admin`)) {
|
|
256
|
+
// Domain admins can see their groups' data.
|
|
257
|
+
this.$privateData = [];
|
|
258
|
+
}
|
|
244
259
|
}
|
|
245
260
|
/**
|
|
246
261
|
* Check whether the group is a descendant of a group.
|
|
@@ -379,10 +394,21 @@ export default class Group extends AbleObject {
|
|
|
379
394
|
async $checkGroupname() {
|
|
380
395
|
const tilmeld = enforceTilmeld(this);
|
|
381
396
|
if (!tilmeld.config.emailUsernames) {
|
|
382
|
-
|
|
397
|
+
let [groupname, domain] = tilmeld.config.domainSupport
|
|
398
|
+
? splitn(this.$data.groupname ?? '', '@', 2)
|
|
399
|
+
: [this.$data.groupname, null];
|
|
400
|
+
// Lowercase the domain part.
|
|
401
|
+
if (domain) {
|
|
402
|
+
domain = domain.toLowerCase();
|
|
403
|
+
this.$data.groupname = `${groupname}@${domain}`;
|
|
404
|
+
}
|
|
405
|
+
if (this.$data.groupname == null ||
|
|
406
|
+
!this.$data.groupname.length ||
|
|
407
|
+
groupname == null ||
|
|
408
|
+
!groupname.length) {
|
|
383
409
|
return { result: false, message: 'Please specify a groupname.' };
|
|
384
410
|
}
|
|
385
|
-
if (
|
|
411
|
+
if (groupname.length < tilmeld.config.minUsernameLength) {
|
|
386
412
|
return {
|
|
387
413
|
result: false,
|
|
388
414
|
message: 'Groupnames must be at least ' +
|
|
@@ -390,7 +416,7 @@ export default class Group extends AbleObject {
|
|
|
390
416
|
' characters.',
|
|
391
417
|
};
|
|
392
418
|
}
|
|
393
|
-
if (
|
|
419
|
+
if (groupname.length > tilmeld.config.maxUsernameLength) {
|
|
394
420
|
return {
|
|
395
421
|
result: false,
|
|
396
422
|
message: 'Groupnames must not exceed ' +
|
|
@@ -398,18 +424,34 @@ export default class Group extends AbleObject {
|
|
|
398
424
|
' characters.',
|
|
399
425
|
};
|
|
400
426
|
}
|
|
401
|
-
if (difference(
|
|
427
|
+
if (difference(groupname.split(''), tilmeld.config.validChars.split(''))
|
|
428
|
+
.length) {
|
|
402
429
|
return {
|
|
403
430
|
result: false,
|
|
404
431
|
message: tilmeld.config.validCharsNotice,
|
|
405
432
|
};
|
|
406
433
|
}
|
|
407
|
-
if (!tilmeld.config.validRegex.test(
|
|
434
|
+
if (!tilmeld.config.validRegex.test(groupname)) {
|
|
408
435
|
return {
|
|
409
436
|
result: false,
|
|
410
437
|
message: tilmeld.config.validRegexNotice,
|
|
411
438
|
};
|
|
412
439
|
}
|
|
440
|
+
if (domain != null) {
|
|
441
|
+
if (!tilmeld.config.validDomainRegex.test(domain)) {
|
|
442
|
+
return {
|
|
443
|
+
result: false,
|
|
444
|
+
message: tilmeld.config.validDomainRegexNotice,
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
if (!this.$is(tilmeld.currentUser?.group) &&
|
|
448
|
+
!tilmeld.gatekeeper(`tilmeld/domain/${domain}/admin`)) {
|
|
449
|
+
return {
|
|
450
|
+
result: false,
|
|
451
|
+
message: "You don't have the authority to manage groups on this domain.",
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
}
|
|
413
455
|
const selector = {
|
|
414
456
|
type: '&',
|
|
415
457
|
ilike: [
|
|
@@ -496,6 +538,37 @@ export default class Group extends AbleObject {
|
|
|
496
538
|
if (this.$data.groupname == null || !this.$data.groupname.trim().length) {
|
|
497
539
|
return false;
|
|
498
540
|
}
|
|
541
|
+
// Lowercase the domain part.
|
|
542
|
+
if (tilmeld.config.domainSupport) {
|
|
543
|
+
const [groupname, domain] = splitn(this.$data.groupname ?? '', '@', 2);
|
|
544
|
+
if (domain) {
|
|
545
|
+
this.$data.groupname = `${groupname}@${domain.toLowerCase()}`;
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
if (tilmeld.config.domainSupport) {
|
|
549
|
+
const [_groupname, domain] = splitn(this.$data.groupname ?? '', '@', 2);
|
|
550
|
+
const [_originalGroupname, originalDomain] = splitn(this.$originalGroupname ?? '', '@', 2);
|
|
551
|
+
if (this.guid != null &&
|
|
552
|
+
((originalDomain == null && domain != null) ||
|
|
553
|
+
(domain == null && originalDomain != null))) {
|
|
554
|
+
throw new AccessControlError("Groups can't switch to or from having a domain once created.");
|
|
555
|
+
}
|
|
556
|
+
if (!this.$skipAcWhenSaving &&
|
|
557
|
+
!tilmeld.gatekeeper('tilmeld/admin') &&
|
|
558
|
+
!tilmeld.gatekeeper('system/admin')) {
|
|
559
|
+
if (domain != null &&
|
|
560
|
+
!this.$is(tilmeld.currentUser) &&
|
|
561
|
+
!tilmeld.gatekeeper(`tilmeld/domain/${domain}/admin`)) {
|
|
562
|
+
throw new AccessControlError("You don't have the authority to modify groups on this domain.");
|
|
563
|
+
}
|
|
564
|
+
if (originalDomain != null &&
|
|
565
|
+
originalDomain !== domain &&
|
|
566
|
+
(!tilmeld.gatekeeper(`tilmeld/domain/${domain}/admin`) ||
|
|
567
|
+
!tilmeld.gatekeeper(`tilmeld/domain/${originalDomain}/admin`))) {
|
|
568
|
+
throw new AccessControlError("You don't have the authority to modify groups on this domain.");
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
}
|
|
499
572
|
// Formatting.
|
|
500
573
|
this.$data.groupname = this.$data.groupname.trim();
|
|
501
574
|
if (tilmeld.config.emailUsernames) {
|
|
@@ -535,15 +608,21 @@ export default class Group extends AbleObject {
|
|
|
535
608
|
if (!this.$data.unverifiedSecondary) {
|
|
536
609
|
delete this.$data.unverifiedSecondary;
|
|
537
610
|
}
|
|
538
|
-
// Groups should never have 'system/admin', 'tilmeld/admin',
|
|
539
|
-
// 'tilmeld/switch' abilities.
|
|
540
|
-
this.$data.abilities =
|
|
541
|
-
'system/admin',
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
611
|
+
// Groups should never have 'system/admin', 'tilmeld/admin',
|
|
612
|
+
// 'tilmeld/switch', or domain admin abilities.
|
|
613
|
+
this.$data.abilities = (this.$data.abilities ?? []).filter((ability) => {
|
|
614
|
+
if (['system/admin', 'tilmeld/admin', 'tilmeld/switch'].indexOf(ability) !==
|
|
615
|
+
-1) {
|
|
616
|
+
return false;
|
|
617
|
+
}
|
|
618
|
+
if (ability == null) {
|
|
619
|
+
return false;
|
|
620
|
+
}
|
|
621
|
+
if (ability.startsWith('tilmeld/domain/') && ability.endsWith('/admin')) {
|
|
622
|
+
return false;
|
|
623
|
+
}
|
|
624
|
+
return true;
|
|
625
|
+
});
|
|
547
626
|
// Verification.
|
|
548
627
|
const unCheck = await this.$checkGroupname();
|
|
549
628
|
if (!unCheck.result) {
|
|
@@ -584,7 +663,11 @@ export default class Group extends AbleObject {
|
|
|
584
663
|
}
|
|
585
664
|
}
|
|
586
665
|
}
|
|
587
|
-
|
|
666
|
+
const ret = await super.$save();
|
|
667
|
+
if (ret) {
|
|
668
|
+
this.$originalGroupname = this.$data.groupname;
|
|
669
|
+
}
|
|
670
|
+
return ret;
|
|
588
671
|
}
|
|
589
672
|
/*
|
|
590
673
|
* This should *never* be accessible on the client.
|
|
@@ -603,7 +686,10 @@ export default class Group extends AbleObject {
|
|
|
603
686
|
async $delete() {
|
|
604
687
|
let tilmeld = enforceTilmeld(this);
|
|
605
688
|
if (!this.$skipAcWhenDeleting && !tilmeld.gatekeeper('tilmeld/admin')) {
|
|
606
|
-
throw new
|
|
689
|
+
throw new AccessControlError("You don't have the authority to delete groups.");
|
|
690
|
+
}
|
|
691
|
+
if (this.$data.groupname !== this.$originalGroupname) {
|
|
692
|
+
throw new AccessControlError("You can't delete a group while switching its groupname.");
|
|
607
693
|
}
|
|
608
694
|
const transaction = 'tilmeld-delete-' + this.guid;
|
|
609
695
|
const nymph = this.$nymph;
|
|
@@ -659,9 +745,9 @@ export default class Group extends AbleObject {
|
|
|
659
745
|
}
|
|
660
746
|
}
|
|
661
747
|
// Delete the group.
|
|
662
|
-
|
|
748
|
+
let success = await super.$delete();
|
|
663
749
|
if (success) {
|
|
664
|
-
await tnymph.commit(transaction);
|
|
750
|
+
success = await tnymph.commit(transaction);
|
|
665
751
|
}
|
|
666
752
|
else {
|
|
667
753
|
await tnymph.rollback(transaction);
|
package/dist/Group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Group.js","sourceRoot":"","sources":["../src/Group.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Group.js","sourceRoot":"","sources":["../src/Group.ts"],"names":[],"mappings":"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"}
|
package/dist/Tilmeld.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { URL } from 'node:url';
|
|
2
2
|
import { TilmeldAccessLevels, } from '@nymphjs/nymph';
|
|
3
3
|
import { xor } from 'lodash-es';
|
|
4
|
+
import { splitn } from '@sciactive/splitn';
|
|
4
5
|
import { ConfigDefaults as defaults } from './conf/index.js';
|
|
5
6
|
import { AccessControlError } from './errors/index.js';
|
|
6
7
|
import Group from './Group.js';
|
|
@@ -80,6 +81,9 @@ export default class Tilmeld {
|
|
|
80
81
|
throw new Error(`All fields in regFields must also be in userFields: ${field}`);
|
|
81
82
|
}
|
|
82
83
|
}
|
|
84
|
+
if (this.config.emailUsernames && this.config.domainSupport) {
|
|
85
|
+
throw new Error('Email usernames and domain support cannot both be enabled.');
|
|
86
|
+
}
|
|
83
87
|
}
|
|
84
88
|
/**
|
|
85
89
|
* This is used internally by Nymph. Don't call it yourself.
|
|
@@ -131,6 +135,8 @@ export default class Tilmeld {
|
|
|
131
135
|
user.mdate = currentUserMDate;
|
|
132
136
|
user.tags = currentUserTags;
|
|
133
137
|
user.$putData(currentUserData, currentUserSData);
|
|
138
|
+
user.$originalEmail = this.currentUser.$originalEmail;
|
|
139
|
+
user.$originalUsername = this.currentUser.$originalUsername;
|
|
134
140
|
this.currentUser = user;
|
|
135
141
|
this.currentUser.$updateDataProtection();
|
|
136
142
|
this.currentUser.$updateGroupDataProtection();
|
|
@@ -596,6 +602,18 @@ export default class Tilmeld {
|
|
|
596
602
|
userOrEmpty.abilities?.includes('system/admin'))) {
|
|
597
603
|
return true;
|
|
598
604
|
}
|
|
605
|
+
// Users and groups that belong to a domain are readable and editable by
|
|
606
|
+
// that domain's admins.
|
|
607
|
+
if (this.config.domainSupport &&
|
|
608
|
+
(entity instanceof User || entity instanceof Group)) {
|
|
609
|
+
const [_local, domain] = splitn((entity instanceof User
|
|
610
|
+
? entity.username
|
|
611
|
+
: entity.groupname) ?? '', '@', 2);
|
|
612
|
+
if (domain &&
|
|
613
|
+
userOrEmpty.abilities?.includes(`tilmeld/domain/${domain}/admin`)) {
|
|
614
|
+
return true;
|
|
615
|
+
}
|
|
616
|
+
}
|
|
599
617
|
// Load access control, since we need it now...
|
|
600
618
|
const acUser = acProperties.acUser ?? TilmeldAccessLevels.FULL_ACCESS;
|
|
601
619
|
const acGroup = acProperties.acGroup ?? TilmeldAccessLevels.READ_ACCESS;
|