@stamhoofd/models 2.1.1 → 2.2.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/LICENSE +661 -0
- package/dist/src/factories/GroupFactory.d.ts.map +1 -1
- package/dist/src/factories/GroupFactory.js +1 -0
- package/dist/src/factories/GroupFactory.js.map +1 -1
- package/dist/src/factories/MemberFactory.d.ts.map +1 -1
- package/dist/src/factories/MemberFactory.js +0 -2
- package/dist/src/factories/MemberFactory.js.map +1 -1
- package/dist/src/factories/RegistrationFactory.d.ts.map +1 -1
- package/dist/src/factories/RegistrationFactory.js +2 -0
- package/dist/src/factories/RegistrationFactory.js.map +1 -1
- package/dist/src/factories/UserFactory.d.ts +1 -0
- package/dist/src/factories/UserFactory.d.ts.map +1 -1
- package/dist/src/factories/UserFactory.js +14 -4
- package/dist/src/factories/UserFactory.js.map +1 -1
- package/dist/src/helpers/GroupBuilder.d.ts.map +1 -1
- package/dist/src/helpers/GroupBuilder.js +25 -2
- package/dist/src/helpers/GroupBuilder.js.map +1 -1
- package/dist/src/migrations/1605262046-import-postcodes-nl.js +1 -1
- package/dist/src/migrations/1605262046-import-postcodes-nl.js.map +1 -1
- package/dist/src/migrations/1714985451-user-nullable-organization-id.sql +2 -0
- package/dist/src/migrations/1714985452-email-verification-code-nullable-organization-id.sql +2 -0
- package/dist/src/migrations/1714985453-user-organization-permissions.sql +2 -0
- package/dist/src/migrations/1714985454-user-organization-permissions.sql +2 -0
- package/dist/src/migrations/1715079362-platform.sql +6 -0
- package/dist/src/migrations/1715181649-registrations-organization-id.sql +2 -0
- package/dist/src/migrations/1715181650-registrations-organization-id-fill.sql +1 -0
- package/dist/src/migrations/1715181651-registrations-organization-id-drop-null.sql +2 -0
- package/dist/src/migrations/1716117067-members-nullable-organization-id.sql +2 -0
- package/dist/src/migrations/1719567581-registration-periods.sql +13 -0
- package/dist/src/migrations/1719567582-organization-registration-periods.sql +13 -0
- package/dist/src/migrations/1719567881-organization-periodId.sql +2 -0
- package/dist/src/migrations/1719567882-groups-periodId.sql +2 -0
- package/dist/src/migrations/1719567883-platform-periodId.sql +2 -0
- package/dist/src/migrations/1719568079-default-period.sql +2 -0
- package/dist/src/migrations/1719568080-set-default-period-platform.sql +1 -0
- package/dist/src/migrations/1719568081-set-default-period-organizations.sql +1 -0
- package/dist/src/migrations/1719568082-set-default-period-groups.sql +1 -0
- package/dist/src/migrations/1719580828-registrations-periodId.sql +2 -0
- package/dist/src/migrations/1719580829-set-default-period-registrations.sql +1 -0
- package/dist/src/migrations/1719931362-groups-default-age-group-id.sql +2 -0
- package/dist/src/migrations/1720080975-convert-charset.sql +87 -0
- package/dist/src/migrations/1720080976-responsibilities.sql +14 -0
- package/dist/src/migrations/1720088136-member-membership-types.sql +23 -0
- package/dist/src/migrations/1720088137-member-membership-types-expire-date.sql +2 -0
- package/dist/src/migrations/1720444931-organization-active.sql +2 -0
- package/dist/src/models/BalanceItem.d.ts +1 -1
- package/dist/src/models/BalanceItem.d.ts.map +1 -1
- package/dist/src/models/BalanceItem.js +15 -5
- package/dist/src/models/BalanceItem.js.map +1 -1
- package/dist/src/models/Document.d.ts.map +1 -1
- package/dist/src/models/Document.js +6 -2
- package/dist/src/models/Document.js.map +1 -1
- package/dist/src/models/DocumentTemplate.d.ts +3 -3
- package/dist/src/models/DocumentTemplate.d.ts.map +1 -1
- package/dist/src/models/DocumentTemplate.js +23 -24
- package/dist/src/models/DocumentTemplate.js.map +1 -1
- package/dist/src/models/EmailVerificationCode.d.ts +6 -7
- package/dist/src/models/EmailVerificationCode.d.ts.map +1 -1
- package/dist/src/models/EmailVerificationCode.js +37 -30
- package/dist/src/models/EmailVerificationCode.js.map +1 -1
- package/dist/src/models/Group.d.ts +6 -4
- package/dist/src/models/Group.d.ts.map +1 -1
- package/dist/src/models/Group.js +28 -9
- package/dist/src/models/Group.js.map +1 -1
- package/dist/src/models/Member.d.ts +10 -9
- package/dist/src/models/Member.d.ts.map +1 -1
- package/dist/src/models/Member.js +99 -15
- package/dist/src/models/Member.js.map +1 -1
- package/dist/src/models/MemberPlatformMembership.d.ts +19 -0
- package/dist/src/models/MemberPlatformMembership.d.ts.map +1 -0
- package/dist/src/models/MemberPlatformMembership.js +123 -0
- package/dist/src/models/MemberPlatformMembership.js.map +1 -0
- package/dist/src/models/Organization.d.ts +8 -6
- package/dist/src/models/Organization.d.ts.map +1 -1
- package/dist/src/models/Organization.js +38 -59
- package/dist/src/models/Organization.js.map +1 -1
- package/dist/src/models/OrganizationRegistrationPeriod.d.ts +3 -0
- package/dist/src/models/OrganizationRegistrationPeriod.d.ts.map +1 -1
- package/dist/src/models/OrganizationRegistrationPeriod.js +49 -0
- package/dist/src/models/OrganizationRegistrationPeriod.js.map +1 -1
- package/dist/src/models/PasswordToken.d.ts +1 -1
- package/dist/src/models/PasswordToken.d.ts.map +1 -1
- package/dist/src/models/PasswordToken.js +9 -10
- package/dist/src/models/PasswordToken.js.map +1 -1
- package/dist/src/models/Payment.d.ts +5 -3
- package/dist/src/models/Payment.d.ts.map +1 -1
- package/dist/src/models/Payment.js +13 -5
- package/dist/src/models/Payment.js.map +1 -1
- package/dist/src/models/Platform.d.ts +1 -0
- package/dist/src/models/Platform.d.ts.map +1 -1
- package/dist/src/models/Platform.js +3 -0
- package/dist/src/models/Platform.js.map +1 -1
- package/dist/src/models/Registration.d.ts +7 -2
- package/dist/src/models/Registration.d.ts.map +1 -1
- package/dist/src/models/Registration.js +11 -0
- package/dist/src/models/Registration.js.map +1 -1
- package/dist/src/models/STInvoice.d.ts.map +1 -1
- package/dist/src/models/STInvoice.js +1 -0
- package/dist/src/models/STInvoice.js.map +1 -1
- package/dist/src/models/Token.d.ts.map +1 -1
- package/dist/src/models/Token.js +1 -0
- package/dist/src/models/Token.js.map +1 -1
- package/dist/src/models/User.d.ts +20 -11
- package/dist/src/models/User.d.ts.map +1 -1
- package/dist/src/models/User.js +84 -26
- package/dist/src/models/User.js.map +1 -1
- package/dist/src/models/index.d.ts +5 -0
- package/dist/src/models/index.d.ts.map +1 -1
- package/dist/src/models/index.js +5 -0
- package/dist/src/models/index.js.map +1 -1
- package/package.json +3 -2
- package/src/migrations/1719931362-groups-default-age-group-id.sql +2 -0
- package/src/migrations/1720080975-convert-charset.sql +87 -0
- package/src/migrations/1720080976-responsibilities.sql +14 -0
- package/src/migrations/1720088136-member-membership-types.sql +23 -0
- package/src/migrations/1720088137-member-membership-types-expire-date.sql +2 -0
- package/src/migrations/1720444931-organization-active.sql +2 -0
- package/src/models/Group.ts +3 -0
- package/src/models/Member.ts +86 -2
- package/src/models/MemberPlatformMembership.ts +122 -0
- package/src/models/Organization.ts +4 -61
- package/src/models/OrganizationRegistrationPeriod.ts +60 -0
- package/src/models/Payment.ts +4 -4
- package/src/models/Platform.ts +4 -0
- package/src/models/Registration.ts +6 -0
- package/src/models/STInvoice.ts +2 -0
- package/src/models/index.ts +1 -0
|
@@ -6,7 +6,7 @@ import { I18n } from "@stamhoofd/backend-i18n";
|
|
|
6
6
|
export declare class EmailVerificationCode extends Model {
|
|
7
7
|
static table: string;
|
|
8
8
|
id: string;
|
|
9
|
-
organizationId: string;
|
|
9
|
+
organizationId: string | null;
|
|
10
10
|
userId: string;
|
|
11
11
|
/**
|
|
12
12
|
* The e-mail that will get verified. If on verification, the user e-mail differs from this one,
|
|
@@ -33,13 +33,12 @@ export declare class EmailVerificationCode extends Model {
|
|
|
33
33
|
createdAt: Date;
|
|
34
34
|
static CODE_LENGTH: number;
|
|
35
35
|
static MAX_TRIES: number;
|
|
36
|
-
static getFor(organizationId: string, email: string): Promise<EmailVerificationCode | undefined>;
|
|
37
36
|
generateCode(): Promise<void>;
|
|
38
|
-
getEmailVerificationUrl(user: import('./User').User, organization: import('./Organization').Organization, i18n: I18n): string;
|
|
37
|
+
getEmailVerificationUrl(user: import('./User').User, organization: import('./Organization').Organization | null, i18n: I18n): string;
|
|
39
38
|
/**
|
|
40
39
|
* Return true if this token is still valid (used for automatic polling in code view)
|
|
41
40
|
*/
|
|
42
|
-
static poll(organizationId: string, token: string): Promise<boolean>;
|
|
41
|
+
static poll(organizationId: string | null, token: string): Promise<boolean>;
|
|
43
42
|
/**
|
|
44
43
|
* We don't throw errors here, because we don't want to expose any information about the existance of the code.
|
|
45
44
|
* We just expose if it is valid or not, nothing else
|
|
@@ -47,9 +46,9 @@ export declare class EmailVerificationCode extends Model {
|
|
|
47
46
|
* Error => token okay, but too many attempts checking the code
|
|
48
47
|
*
|
|
49
48
|
*/
|
|
50
|
-
static verify(organizationId: string, token: string, code: string): Promise<EmailVerificationCode | undefined>;
|
|
51
|
-
send(user: import('./User').User, organization: import('./Organization').Organization, i18n: I18n, withCode?: boolean): void;
|
|
52
|
-
static resend(organization: import('./Organization').Organization, token: string, i18n: I18n): Promise<void>;
|
|
49
|
+
static verify(organizationId: string | null, token: string, code: string): Promise<EmailVerificationCode | undefined>;
|
|
50
|
+
send(user: import('./User').User, organization: import('./Organization').Organization | null, i18n: I18n, withCode?: boolean): void;
|
|
51
|
+
static resend(organization: import('./Organization').Organization | null, token: string, i18n: I18n): Promise<void>;
|
|
53
52
|
/**
|
|
54
53
|
* Create or reuse a verification code for a given email address
|
|
55
54
|
* If needed, it will update the code.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailVerificationCode.d.ts","sourceRoot":"","sources":["../../../src/models/EmailVerificationCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAkC/C;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC5C,MAAM,CAAC,KAAK,SAA8B;IAO1C,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"EmailVerificationCode.d.ts","sourceRoot":"","sources":["../../../src/models/EmailVerificationCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAkC/C;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC5C,MAAM,CAAC,KAAK,SAA8B;IAO1C,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,GAAC,IAAI,CAAQ;IAGnC,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IAEH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IAEH,KAAK,SAAM;IAGX,IAAI,SAAM;IAEV;;OAEG;IAEH,cAAc,SAAK;IAEnB;;OAEG;IAEH,KAAK,SAAK;IAGV,SAAS,EAAE,IAAI,CAAC;IAEhB;;OAEG;IAQH,SAAS,EAAE,IAAI,CAAA;IAEf,MAAM,CAAC,WAAW,SAAI;IACtB,MAAM,CAAC,SAAS,SAAI;IAEd,YAAY;IAiBlB,uBAAuB,CAAC,IAAI,EAAE,OAAO,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,gBAAgB,EAAE,YAAY,GAAC,IAAI,EAAE,IAAI,EAAE,IAAI;IAgBzH;;OAEG;WACU,IAAI,CAAC,cAAc,EAAE,MAAM,GAAC,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmC/E;;;;;;OAMG;WACU,MAAM,CAAC,cAAc,EAAE,MAAM,GAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAgEzH,IAAI,CAAC,IAAI,EAAE,OAAO,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,gBAAgB,EAAE,YAAY,GAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,UAAO;WAoC1G,MAAM,CAAC,YAAY,EAAE,OAAO,gBAAgB,EAAE,YAAY,GAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IA+BvG;;;;OAIG;WACU,SAAS,CAAC,IAAI,EAAE,OAAO,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAoCrG"}
|
|
@@ -38,6 +38,7 @@ async function randomInt(max) {
|
|
|
38
38
|
class EmailVerificationCode extends simple_database_1.Model {
|
|
39
39
|
constructor() {
|
|
40
40
|
super(...arguments);
|
|
41
|
+
this.organizationId = null;
|
|
41
42
|
/**
|
|
42
43
|
* This one is send to the sender. Allows for polling + extra length + sender authentication
|
|
43
44
|
*/
|
|
@@ -52,20 +53,6 @@ class EmailVerificationCode extends simple_database_1.Model {
|
|
|
52
53
|
*/
|
|
53
54
|
this.tries = 0;
|
|
54
55
|
}
|
|
55
|
-
// static user = new ManyToOneRelation(require('./User').default, "user");
|
|
56
|
-
static async getFor(organizationId, email) {
|
|
57
|
-
// TODO: make this constant time to avoid complex timing attacks (especially when under load)
|
|
58
|
-
// Do we already have a verificationCode for this email?
|
|
59
|
-
const verificationCodes = await this.where({ email, organizationId }, { limit: 1 });
|
|
60
|
-
if (verificationCodes.length == 1) {
|
|
61
|
-
const verificationCode = verificationCodes[0];
|
|
62
|
-
if (verificationCode.expiresAt < new Date()) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
return verificationCode;
|
|
66
|
-
}
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
56
|
async generateCode() {
|
|
70
57
|
this.code = ((await randomInt(Math.pow(10, EmailVerificationCode.CODE_LENGTH))) + "").padStart(EmailVerificationCode.CODE_LENGTH, "0");
|
|
71
58
|
this.token = bs58.encode(await randomBytes(100)).toLowerCase();
|
|
@@ -76,13 +63,13 @@ class EmailVerificationCode extends simple_database_1.Model {
|
|
|
76
63
|
}
|
|
77
64
|
// Reset the real tries
|
|
78
65
|
this.tries = 0;
|
|
79
|
-
// Expire in
|
|
80
|
-
this.expiresAt = new Date(new Date().getTime() + 1000 * 60 * 60 *
|
|
66
|
+
// Expire in 12 hours
|
|
67
|
+
this.expiresAt = new Date(new Date().getTime() + 1000 * 60 * 60 * 12);
|
|
81
68
|
}
|
|
82
69
|
getEmailVerificationUrl(user, organization, i18n) {
|
|
83
70
|
var _a;
|
|
84
71
|
let host;
|
|
85
|
-
if (user.permissions) {
|
|
72
|
+
if (user.permissions || !organization || STAMHOOFD.userMode === 'platform') {
|
|
86
73
|
host = "https://" + ((_a = STAMHOOFD.domains.dashboard) !== null && _a !== void 0 ? _a : "stamhoofd.app") + "/" + i18n.locale;
|
|
87
74
|
}
|
|
88
75
|
else {
|
|
@@ -92,13 +79,19 @@ class EmailVerificationCode extends simple_database_1.Model {
|
|
|
92
79
|
host += "/" + i18n.language;
|
|
93
80
|
}
|
|
94
81
|
}
|
|
95
|
-
return host + "/verify-email" + (user.
|
|
82
|
+
return host + "/verify-email" + (user.organizationPermissions && this.organizationId ? "/" + encodeURIComponent(this.organizationId) : "") + "?code=" + encodeURIComponent(this.code) + "&token=" + encodeURIComponent(this.token);
|
|
96
83
|
}
|
|
97
84
|
/**
|
|
98
85
|
* Return true if this token is still valid (used for automatic polling in code view)
|
|
99
86
|
*/
|
|
100
87
|
static async poll(organizationId, token) {
|
|
101
|
-
const verificationCodes = await this.where({
|
|
88
|
+
const verificationCodes = await this.where({
|
|
89
|
+
token,
|
|
90
|
+
organizationId: {
|
|
91
|
+
sign: 'IN',
|
|
92
|
+
value: [organizationId, null]
|
|
93
|
+
}
|
|
94
|
+
}, { limit: 1 });
|
|
102
95
|
if (verificationCodes.length == 0) {
|
|
103
96
|
return false; // = expired or invalid
|
|
104
97
|
}
|
|
@@ -130,7 +123,13 @@ class EmailVerificationCode extends simple_database_1.Model {
|
|
|
130
123
|
if (code.length != EmailVerificationCode.CODE_LENGTH) {
|
|
131
124
|
return;
|
|
132
125
|
}
|
|
133
|
-
const verificationCodes = await this.where({
|
|
126
|
+
const verificationCodes = await this.where({
|
|
127
|
+
token,
|
|
128
|
+
organizationId: {
|
|
129
|
+
sign: 'IN',
|
|
130
|
+
value: [organizationId, null]
|
|
131
|
+
}
|
|
132
|
+
}, { limit: 1 });
|
|
134
133
|
if (verificationCodes.length == 0) {
|
|
135
134
|
return; // = expired or invalid
|
|
136
135
|
}
|
|
@@ -174,23 +173,25 @@ class EmailVerificationCode extends simple_database_1.Model {
|
|
|
174
173
|
}
|
|
175
174
|
}
|
|
176
175
|
send(user, organization, i18n, withCode = true) {
|
|
176
|
+
var _a;
|
|
177
177
|
const { from, replyTo } = {
|
|
178
|
-
from: (user.
|
|
178
|
+
from: (user.organizationPermissions || !organization ? email_1.Email.getInternalEmailFor(i18n) : organization.getStrongEmail(i18n)),
|
|
179
179
|
replyTo: undefined // Don't use replyTo because it affects deliverability rates due to spam filters
|
|
180
180
|
};
|
|
181
181
|
const url = this.getEmailVerificationUrl(user, organization, i18n);
|
|
182
|
-
const footer = (!user.
|
|
183
|
-
const footerHTML = (!user.
|
|
182
|
+
const footer = (!user.organizationPermissions && organization ? "\n\n—\n\nOnze ledenadministratie werkt via het Stamhoofd platform, op maat van verenigingen. Probeer het ook via https://" + i18n.$t("shared.domains.marketing") + "/ledenadministratie\n\n" : '');
|
|
183
|
+
const footerHTML = (!user.organizationPermissions && organization ? "<br><br>—<br><br>Onze ledenadministratie werkt via het Stamhoofd platform, op maat van verenigingen. Probeer het ook via <a href=\"https://" + i18n.$t("shared.domains.marketing") + "/ledenadministratie\">Stamhoofd</a><br><br>" : '');
|
|
184
|
+
const name = (_a = organization === null || organization === void 0 ? void 0 : organization.name) !== null && _a !== void 0 ? _a : 'Stamhoofd';
|
|
184
185
|
if (withCode) {
|
|
185
186
|
const formattedCode = this.code.substr(0, 3) + " " + this.code.substr(3);
|
|
186
187
|
email_1.Email.send({
|
|
187
188
|
from,
|
|
188
189
|
replyTo,
|
|
189
190
|
to: this.email,
|
|
190
|
-
subject: `[${user.
|
|
191
|
+
subject: `[${user.organizationPermissions ? "Stamhoofd" : name}] Verifieer jouw e-mailadres`,
|
|
191
192
|
type: "transactional",
|
|
192
|
-
text: `Hallo${user.firstName ? (" " + user.firstName) : ""}!\n\nVerifieer jouw e-mailadres om te kunnen inloggen bij ${
|
|
193
|
-
html: `Hallo${user.firstName ? (" " + user.firstName) : ""}!<br><br>Verifieer jouw e-mailadres om te kunnen inloggen bij ${
|
|
193
|
+
text: `Hallo${user.firstName ? (" " + user.firstName) : ""}!\n\nVerifieer jouw e-mailadres om te kunnen inloggen bij ${name}. Vul de code "${formattedCode}" in op de website of klik op de onderstaande link om jouw e-mailadres te bevestigen.\n${url}\n\nDit is een automatische e-mail. Gelieve niet op dit e-mailadres te reageren.\n\n${user.organizationPermissions ? "Stamhoofd" : name}` + footer,
|
|
194
|
+
html: `Hallo${user.firstName ? (" " + user.firstName) : ""}!<br><br>Verifieer jouw e-mailadres om te kunnen inloggen bij ${name}. Vul de onderstaande code in op de website<br><br><strong style="font-size: 30px; font-weight: bold;">${formattedCode}</strong><br><br>Of klik op de onderstaande link om jouw e-mailadres te bevestigen:<br>${url}<br><br>Dit is een automatische e-mail. Gelieve niet op dit e-mailadres te reageren.<br><br>${user.organizationPermissions ? "Stamhoofd" : name}` + footerHTML
|
|
194
195
|
});
|
|
195
196
|
}
|
|
196
197
|
else {
|
|
@@ -199,13 +200,19 @@ class EmailVerificationCode extends simple_database_1.Model {
|
|
|
199
200
|
replyTo,
|
|
200
201
|
to: this.email,
|
|
201
202
|
type: "transactional",
|
|
202
|
-
subject: `[${user.
|
|
203
|
-
text: `Hallo${user.firstName ? (" " + user.firstName) : ""}!\n\nVerifieer jouw e-mailadres om te kunnen inloggen bij ${
|
|
203
|
+
subject: `[${user.organizationPermissions ? "Stamhoofd" : name}] Verifieer jouw e-mailadres`,
|
|
204
|
+
text: `Hallo${user.firstName ? (" " + user.firstName) : ""}!\n\nVerifieer jouw e-mailadres om te kunnen inloggen bij ${name}. Klik op de onderstaande link om jouw e-mailadres te bevestigen.\n${url}\n\nDit is een automatische e-mail. Gelieve niet op dit e-mailadres te reageren.\n\n${user.organizationPermissions ? "Stamhoofd" : name}` + footer
|
|
204
205
|
});
|
|
205
206
|
}
|
|
206
207
|
}
|
|
207
208
|
static async resend(organization, token, i18n) {
|
|
208
|
-
const verificationCodes = await this.where({
|
|
209
|
+
const verificationCodes = await this.where({
|
|
210
|
+
token,
|
|
211
|
+
organizationId: organization ? {
|
|
212
|
+
sign: 'IN',
|
|
213
|
+
value: [organization.id, null]
|
|
214
|
+
} : null
|
|
215
|
+
}, { limit: 1 });
|
|
209
216
|
if (verificationCodes.length == 0) {
|
|
210
217
|
console.log("Can't resend code, no coded found for token", token);
|
|
211
218
|
// TODO: maybe send a note via email
|
|
@@ -272,7 +279,7 @@ tslib_1.__decorate([
|
|
|
272
279
|
})
|
|
273
280
|
], EmailVerificationCode.prototype, "id", void 0);
|
|
274
281
|
tslib_1.__decorate([
|
|
275
|
-
(0, simple_database_1.column)({ type: "string" })
|
|
282
|
+
(0, simple_database_1.column)({ type: "string", nullable: true })
|
|
276
283
|
], EmailVerificationCode.prototype, "organizationId", void 0);
|
|
277
284
|
tslib_1.__decorate([
|
|
278
285
|
(0, simple_database_1.column)({ type: "string" })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailVerificationCode.js","sourceRoot":"","sources":["../../../src/models/EmailVerificationCode.ts"],"names":[],"mappings":";;;;AAAA,iEAA4D;AAC5D,6DAAwD;AAExD,4CAAyC;AACzC,4DAA2B;AAC3B,4DAA4B;AAC5B,+BAAoC;AAEpC,MAAM,QAAQ,GAAG,4DAA4D,CAAA;AAC7E,MAAM,IAAI,GAAG,IAAA,gBAAK,EAAC,QAAQ,CAAC,CAAA;AAE5B,KAAK,UAAU,WAAW,CAAC,IAAY;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,gBAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAiB,EAAE,GAAW,EAAE,EAAE;YACxD,IAAI,GAAG,EAAE,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO;YACX,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,gBAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAiB,EAAE,CAAS,EAAE,EAAE;YACnD,IAAI,GAAG,EAAE,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO;YACX,CAAC;YACD,OAAO,CAAC,CAAC,CAAC,CAAA;QACd,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AAGD;;GAEG;AACH,MAAa,qBAAsB,SAAQ,uBAAK;IAAhD;;
|
|
1
|
+
{"version":3,"file":"EmailVerificationCode.js","sourceRoot":"","sources":["../../../src/models/EmailVerificationCode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { Model } from '@simonbackx/simple-database';
|
|
2
|
-
import { Group as GroupStruct, GroupCategory, GroupPrivateSettings, GroupSettings, GroupStatus
|
|
3
|
-
import { MemberWithRegistrations } from './';
|
|
2
|
+
import { Group as GroupStruct, GroupCategory, GroupPrivateSettings, GroupSettings, GroupStatus } from '@stamhoofd/structures';
|
|
3
|
+
import { MemberWithRegistrations, OrganizationRegistrationPeriod } from './';
|
|
4
4
|
export declare class Group extends Model {
|
|
5
5
|
static table: string;
|
|
6
6
|
id: string;
|
|
7
7
|
settings: GroupSettings;
|
|
8
8
|
privateSettings: GroupPrivateSettings;
|
|
9
9
|
organizationId: string;
|
|
10
|
+
periodId: string;
|
|
11
|
+
defaultAgeGroupId: string | null;
|
|
10
12
|
/**
|
|
11
13
|
* Every time a new registration period starts, this number increases. This is used to mark all older registrations as 'out of date' automatically
|
|
12
14
|
*/
|
|
@@ -18,7 +20,7 @@ export declare class Group extends Model {
|
|
|
18
20
|
* Every time a new registration period starts, this number increases. This is used to mark all older registrations as 'out of date' automatically
|
|
19
21
|
*/
|
|
20
22
|
status: GroupStatus;
|
|
21
|
-
static getAll(organizationId: string, active?: boolean): Promise<Group[]>;
|
|
23
|
+
static getAll(organizationId: string, periodId: string | null, active?: boolean): Promise<Group[]>;
|
|
22
24
|
/**
|
|
23
25
|
* Returns all parent and grandparents of this group
|
|
24
26
|
*/
|
|
@@ -31,6 +33,6 @@ export declare class Group extends Model {
|
|
|
31
33
|
getPrivateStructure(): GroupStruct;
|
|
32
34
|
private static getCount;
|
|
33
35
|
updateOccupancy(): Promise<void>;
|
|
34
|
-
static deleteUnreachable(organizationId: string,
|
|
36
|
+
static deleteUnreachable(organizationId: string, period: OrganizationRegistrationPeriod, allGroups: Group[]): Promise<void>;
|
|
35
37
|
}
|
|
36
38
|
//# sourceMappingURL=Group.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/models/Group.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/models/Group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAoB,KAAK,IAAI,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGhJ,OAAO,EAAU,uBAAuB,EAAE,8BAA8B,EAA+B,MAAM,IAAI,CAAC;AAgBlH,qBAAa,KAAM,SAAQ,KAAK;IAC5B,MAAM,CAAC,KAAK,SAAY;IAOxB,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,aAAa,CAAC;IAKxB,eAAe,uBAAkC;IAGjD,cAAc,EAAE,MAAM,CAAC;IAGvB,QAAQ,EAAE,MAAM,CAAC;IAGjB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAO;IAEvC;;OAEG;IAEH,KAAK,SAAK;IAYV,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAMf,SAAS,EAAE,IAAI,GAAG,IAAI,CAAO;IAE7B;;OAEG;IAEH,MAAM,cAAoB;WAEb,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAC,IAAI,EAAE,MAAM,UAAO;IAUhF;;OAEG;IACH,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,SAAS,UAAO,GAAG,aAAa,EAAE;IAkB5E;;OAEG;IACG,0BAA0B,CAAC,WAAW,UAAQ,EAAE,WAAW,SAAI,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAgE1G,YAAY;IAIZ,mBAAmB;mBAIE,QAAQ;IAWvB,eAAe;WAiDR,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B,EAAE,SAAS,EAAE,KAAK,EAAE;CAuCpH"}
|
package/dist/src/models/Group.js
CHANGED
|
@@ -6,6 +6,7 @@ const simple_database_1 = require("@simonbackx/simple-database");
|
|
|
6
6
|
const structures_1 = require("@stamhoofd/structures");
|
|
7
7
|
const uuid_1 = require("uuid");
|
|
8
8
|
const _1 = require("./");
|
|
9
|
+
const utility_1 = require("@stamhoofd/utility");
|
|
9
10
|
if (_1.Member === undefined) {
|
|
10
11
|
throw new Error("Import Member is undefined");
|
|
11
12
|
}
|
|
@@ -22,6 +23,7 @@ class Group extends simple_database_1.Model {
|
|
|
22
23
|
constructor() {
|
|
23
24
|
super(...arguments);
|
|
24
25
|
this.privateSettings = structures_1.GroupPrivateSettings.create({});
|
|
26
|
+
this.defaultAgeGroupId = null;
|
|
25
27
|
/**
|
|
26
28
|
* Every time a new registration period starts, this number increases. This is used to mark all older registrations as 'out of date' automatically
|
|
27
29
|
*/
|
|
@@ -32,11 +34,14 @@ class Group extends simple_database_1.Model {
|
|
|
32
34
|
*/
|
|
33
35
|
this.status = structures_1.GroupStatus.Open;
|
|
34
36
|
}
|
|
35
|
-
static async getAll(organizationId, active = true) {
|
|
37
|
+
static async getAll(organizationId, periodId, active = true) {
|
|
38
|
+
const w = periodId ? { periodId } : {};
|
|
36
39
|
if (active) {
|
|
37
|
-
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
41
|
+
return await Group.where({ organizationId, deletedAt: null, ...w, status: { sign: '!=', value: structures_1.GroupStatus.Archived } });
|
|
38
42
|
}
|
|
39
|
-
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
44
|
+
return await Group.where({ organizationId, ...w });
|
|
40
45
|
}
|
|
41
46
|
/**
|
|
42
47
|
* Returns all parent and grandparents of this group
|
|
@@ -72,6 +77,8 @@ class Group extends simple_database_1.Model {
|
|
|
72
77
|
query += `where reg_filter.\`groupId\` = ? AND reg_filter.\`cycle\` = ?`;
|
|
73
78
|
const [results] = await simple_database_1.Database.select(query, [this.id, this.cycle - cycleOffset]);
|
|
74
79
|
const members = [];
|
|
80
|
+
const groupIds = results.map(r => { var _a; return (_a = r[_1.Registration.table]) === null || _a === void 0 ? void 0 : _a.groupId; }).filter(id => id);
|
|
81
|
+
const groups = await Group.getByIDs(...utility_1.Formatter.uniqueArray(groupIds));
|
|
75
82
|
for (const row of results) {
|
|
76
83
|
const foundMember = _1.Member.fromRow(row[_1.Member.table]);
|
|
77
84
|
if (!foundMember) {
|
|
@@ -89,7 +96,11 @@ class Group extends simple_database_1.Model {
|
|
|
89
96
|
if (registration) {
|
|
90
97
|
// Check if we already have this registration
|
|
91
98
|
if (!member.registrations.find(r => r.id == registration.id)) {
|
|
92
|
-
|
|
99
|
+
const group = groups.find(g => g.id == registration.groupId);
|
|
100
|
+
if (!group) {
|
|
101
|
+
throw new Error("Expected group");
|
|
102
|
+
}
|
|
103
|
+
member.registrations.push(registration.setRelation(_1.Registration.group, group));
|
|
93
104
|
}
|
|
94
105
|
}
|
|
95
106
|
// Check if we have a user
|
|
@@ -141,17 +152,17 @@ class Group extends simple_database_1.Model {
|
|
|
141
152
|
info.waitingListSize = await Group.getCount("groupId = ? and cycle = ? and waitingList = 1", [this.id, cycle, new Date()]);
|
|
142
153
|
}
|
|
143
154
|
}
|
|
144
|
-
static async deleteUnreachable(organizationId,
|
|
155
|
+
static async deleteUnreachable(organizationId, period, allGroups) {
|
|
145
156
|
const reachable = new Map();
|
|
146
157
|
const visited = new Map();
|
|
147
|
-
const queue = [
|
|
148
|
-
visited.set(
|
|
158
|
+
const queue = [period.settings.rootCategoryId];
|
|
159
|
+
visited.set(period.settings.rootCategoryId, true);
|
|
149
160
|
while (queue.length > 0) {
|
|
150
161
|
const id = queue.shift();
|
|
151
162
|
if (!id) {
|
|
152
163
|
break;
|
|
153
164
|
}
|
|
154
|
-
const category =
|
|
165
|
+
const category = period.settings.categories.find(c => c.id === id);
|
|
155
166
|
if (!category) {
|
|
156
167
|
continue;
|
|
157
168
|
}
|
|
@@ -167,7 +178,7 @@ class Group extends simple_database_1.Model {
|
|
|
167
178
|
}
|
|
168
179
|
for (const group of allGroups) {
|
|
169
180
|
if (!reachable.get(group.id) && group.status !== structures_1.GroupStatus.Archived) {
|
|
170
|
-
console.log("Archiving unreachable group " + group.id + " from organization " + organizationId);
|
|
181
|
+
console.log("Archiving unreachable group " + group.id + " from organization " + organizationId + " org period " + period.id);
|
|
171
182
|
group.status = structures_1.GroupStatus.Archived;
|
|
172
183
|
await group.save();
|
|
173
184
|
}
|
|
@@ -194,6 +205,12 @@ tslib_1.__decorate([
|
|
|
194
205
|
tslib_1.__decorate([
|
|
195
206
|
(0, simple_database_1.column)({ type: "string" })
|
|
196
207
|
], Group.prototype, "organizationId", void 0);
|
|
208
|
+
tslib_1.__decorate([
|
|
209
|
+
(0, simple_database_1.column)({ type: "string" })
|
|
210
|
+
], Group.prototype, "periodId", void 0);
|
|
211
|
+
tslib_1.__decorate([
|
|
212
|
+
(0, simple_database_1.column)({ type: "string", nullable: true })
|
|
213
|
+
], Group.prototype, "defaultAgeGroupId", void 0);
|
|
197
214
|
tslib_1.__decorate([
|
|
198
215
|
(0, simple_database_1.column)({ type: "integer" })
|
|
199
216
|
], Group.prototype, "cycle", void 0);
|
|
@@ -228,4 +245,6 @@ tslib_1.__decorate([
|
|
|
228
245
|
tslib_1.__decorate([
|
|
229
246
|
(0, simple_database_1.column)({ type: "string" })
|
|
230
247
|
], Group.prototype, "status", void 0);
|
|
248
|
+
_1.Registration.group = new simple_database_1.ManyToOneRelation(Group, "group");
|
|
249
|
+
_1.Registration.group.foreignKey = "groupId";
|
|
231
250
|
//# sourceMappingURL=Group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Group.js","sourceRoot":"","sources":["../../../src/models/Group.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Group.js","sourceRoot":"","sources":["../../../src/models/Group.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ManyToManyRelation, Model, OneToManyRelation } from '@simonbackx/simple-database';
|
|
2
|
-
import {
|
|
3
|
-
import { Registration, User } from './';
|
|
4
|
-
export type
|
|
2
|
+
import { MemberDetails, MemberWithRegistrationsBlob, RegistrationWithMember as RegistrationWithMemberStruct } from '@stamhoofd/structures';
|
|
3
|
+
import { Group, Registration, User } from './';
|
|
4
|
+
export type MemberWithRegistrations = Member & {
|
|
5
5
|
users: User[];
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
registrations: (Registration & {
|
|
7
|
+
group: Group;
|
|
8
|
+
})[];
|
|
9
9
|
};
|
|
10
10
|
export type RegistrationWithMember = Registration & {
|
|
11
11
|
member: Member;
|
|
@@ -13,7 +13,7 @@ export type RegistrationWithMember = Registration & {
|
|
|
13
13
|
export declare class Member extends Model {
|
|
14
14
|
static table: string;
|
|
15
15
|
id: string;
|
|
16
|
-
organizationId: string;
|
|
16
|
+
organizationId: string | null;
|
|
17
17
|
firstName: string;
|
|
18
18
|
lastName: string;
|
|
19
19
|
birthDay: string | null;
|
|
@@ -49,7 +49,7 @@ export declare class Member extends Model {
|
|
|
49
49
|
/**
|
|
50
50
|
* Fetch all members with their corresponding (valid) registrations, users
|
|
51
51
|
*/
|
|
52
|
-
static
|
|
52
|
+
static getBlobByIds(...ids: string[]): Promise<MemberWithRegistrations[]>;
|
|
53
53
|
/**
|
|
54
54
|
* Fetch all members with their corresponding (valid) registrations and payment
|
|
55
55
|
*/
|
|
@@ -58,9 +58,10 @@ export declare class Member extends Model {
|
|
|
58
58
|
* Fetch all members with their corresponding (valid) registrations or waiting lists and payments
|
|
59
59
|
*/
|
|
60
60
|
static getMembersWithRegistrationForUser(user: User): Promise<MemberWithRegistrations[]>;
|
|
61
|
-
getStructureWithRegistrations(this: MemberWithRegistrations, forOrganization?: null | boolean):
|
|
61
|
+
getStructureWithRegistrations(this: MemberWithRegistrations, forOrganization?: null | boolean): MemberWithRegistrationsBlob;
|
|
62
62
|
static getRegistrationWithMemberStructure(registration: RegistrationWithMember & {
|
|
63
63
|
group: import('./Group').Group;
|
|
64
64
|
}): RegistrationWithMemberStruct;
|
|
65
|
+
updateMemberships(this: MemberWithRegistrations): Promise<void>;
|
|
65
66
|
}
|
|
66
67
|
//# sourceMappingURL=Member.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Member.d.ts","sourceRoot":"","sources":["../../../src/models/Member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,kBAAkB,EAAqB,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"Member.d.ts","sourceRoot":"","sources":["../../../src/models/Member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,kBAAkB,EAAqB,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhI,OAAO,EAA0B,aAAa,EAAE,2BAA2B,EAAE,sBAAsB,IAAI,4BAA4B,EAAsB,MAAM,uBAAuB,CAAC;AAIvL,OAAO,EAAE,KAAK,EAA+C,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE5F,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG;IAC3C,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,CAAC,YAAY,GAAG;QAAC,KAAK,EAAE,KAAK,CAAA;KAAC,CAAC,EAAE,CAAA;CACnD,CAAA;AAGD,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE,qBAAa,MAAO,SAAQ,KAAK;IAC7B,MAAM,CAAC,KAAK,SAAY;IAQxB,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,GAAC,IAAI,CAAQ;IASnC,SAAS,EAAE,MAAM,CAAA;IAOjB,QAAQ,EAAE,MAAM,CAAA;IAUhB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAGvB,OAAO,EAAE,aAAa,CAAA;IAEtB;;OAEG;IAEH,kBAAkB,SAAI;IAYtB,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAEf,MAAM,CAAC,aAAa,2DAA2E;IAG/F,MAAM,CAAC,KAAK,uDAAiD;IAE7D;;OAEG;WACU,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAItF;;OAEG;WACU,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK;IAmCjE;;OAEG;WACU,+BAA+B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAoC9F;;OAEG;WACU,kCAAkC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAiCjH;;MAEE;WACU,oCAAoC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAwCtG;;MAEE;WACU,YAAY,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IA8D/E;;OAEG;WACU,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAmBtF;;MAEE;WACU,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAsB9F,6BAA6B,CAAC,IAAI,EAAE,uBAAuB,EAAE,eAAe,GAAE,IAAI,GAAG,OAAc;IAYnG,MAAM,CAAC,kCAAkC,CAAC,YAAY,EAAE,sBAAsB,GAAG;QAAC,KAAK,EAAE,OAAO,SAAS,EAAE,KAAK,CAAA;KAAC,GAAG,4BAA4B;IAQ1I,iBAAiB,CAAC,IAAI,EAAE,uBAAuB;CAkFxD"}
|