@stamhoofd/models 2.74.0 → 2.75.1
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/src/factories/BalanceItemFactory.d.ts +25 -0
- package/dist/src/factories/BalanceItemFactory.d.ts.map +1 -0
- package/dist/src/factories/BalanceItemFactory.js +52 -0
- package/dist/src/factories/BalanceItemFactory.js.map +1 -0
- package/dist/src/factories/GroupFactory.d.ts +0 -2
- package/dist/src/factories/GroupFactory.d.ts.map +1 -1
- package/dist/src/factories/GroupFactory.js +0 -4
- package/dist/src/factories/GroupFactory.js.map +1 -1
- package/dist/src/helpers/Handlebars.d.ts.map +1 -1
- package/dist/src/helpers/Handlebars.js +51 -10
- package/dist/src/helpers/Handlebars.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/migrations/1739017508-event-notifications.sql +25 -0
- package/dist/src/migrations/1739017509-event-notifications-link.sql +10 -0
- package/dist/src/migrations/1739282590-event-notifications-submitted-at.sql +3 -0
- package/dist/src/models/Document.d.ts.map +1 -1
- package/dist/src/models/Document.js.map +1 -1
- package/dist/src/models/DocumentTemplate.d.ts.map +1 -1
- package/dist/src/models/DocumentTemplate.js +3 -1
- package/dist/src/models/DocumentTemplate.js.map +1 -1
- package/dist/src/models/EventNotification.d.ts +27 -0
- package/dist/src/models/EventNotification.d.ts.map +1 -0
- package/dist/src/models/EventNotification.js +95 -0
- package/dist/src/models/EventNotification.js.map +1 -0
- package/dist/src/models/Image.d.ts +1 -1
- package/dist/src/models/Image.d.ts.map +1 -1
- package/dist/src/models/Image.js +14 -2
- package/dist/src/models/Image.js.map +1 -1
- package/dist/src/models/MemberPlatformMembership.d.ts +1 -1
- package/dist/src/models/MemberPlatformMembership.d.ts.map +1 -1
- package/dist/src/models/MemberPlatformMembership.js +9 -2
- package/dist/src/models/MemberPlatformMembership.js.map +1 -1
- package/dist/src/models/MemberResponsibilityRecord.d.ts +1 -0
- package/dist/src/models/MemberResponsibilityRecord.d.ts.map +1 -1
- package/dist/src/models/MemberResponsibilityRecord.js +3 -0
- package/dist/src/models/MemberResponsibilityRecord.js.map +1 -1
- package/dist/src/models/Organization.js +1 -1
- package/dist/src/models/Organization.js.map +1 -1
- package/dist/src/models/User.d.ts +4 -1
- package/dist/src/models/User.d.ts.map +1 -1
- package/dist/src/models/User.js +31 -11
- package/dist/src/models/User.js.map +1 -1
- package/dist/src/models/index.d.ts +1 -0
- package/dist/src/models/index.d.ts.map +1 -1
- package/dist/src/models/index.js +1 -0
- package/dist/src/models/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/factories/BalanceItemFactory.ts +57 -0
- package/src/factories/GroupFactory.ts +1 -6
- package/src/helpers/Handlebars.ts +64 -10
- package/src/index.ts +1 -0
- package/src/migrations/1739017508-event-notifications.sql +25 -0
- package/src/migrations/1739017509-event-notifications-link.sql +10 -0
- package/src/migrations/1739282590-event-notifications-submitted-at.sql +3 -0
- package/src/models/Document.ts +1 -1
- package/src/models/DocumentTemplate.ts +3 -1
- package/src/models/EventNotification.ts +77 -0
- package/src/models/Image.ts +15 -2
- package/src/models/MemberPlatformMembership.ts +11 -2
- package/src/models/MemberResponsibilityRecord.ts +5 -1
- package/src/models/Organization.ts +1 -1
- package/src/models/User.ts +53 -14
- package/src/models/index.ts +1 -0
package/src/models/User.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { column, Database, ManyToOneRelation } from '@simonbackx/simple-database';
|
|
2
2
|
import { EmailInterfaceRecipient } from '@stamhoofd/email';
|
|
3
|
-
import { QueryableModel } from '@stamhoofd/sql';
|
|
3
|
+
import { QueryableModel, SQL, SQLExpression, SQLJsonExtract } from '@stamhoofd/sql';
|
|
4
4
|
import { LoginProviderType, NewUser, Permissions, Recipient, Replacement, UserMeta, UserPermissions, User as UserStruct } from '@stamhoofd/structures';
|
|
5
5
|
import argon2 from 'argon2';
|
|
6
6
|
import { v4 as uuidv4 } from 'uuid';
|
|
@@ -117,15 +117,52 @@ export class User extends QueryableModel {
|
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
static async
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
static async getPlatformAdmins(options?: { verified?: boolean }) {
|
|
121
|
+
// Custom implementation
|
|
122
|
+
const q = User.select()
|
|
123
|
+
.where('organizationId', null)
|
|
124
|
+
.where('permissions', '!=', null)
|
|
125
|
+
.where(
|
|
126
|
+
SQL.jsonValue(SQL.column('permissions'), '$.value.globalPermissions'),
|
|
127
|
+
'!=',
|
|
128
|
+
null,
|
|
129
|
+
)
|
|
130
|
+
.where('id', '!=', '1');
|
|
131
|
+
|
|
132
|
+
if (options?.verified !== undefined) {
|
|
133
|
+
q.where('verified', options.verified);
|
|
123
134
|
}
|
|
124
135
|
|
|
136
|
+
let global = await q.fetch();
|
|
137
|
+
|
|
138
|
+
// Hide api accounts
|
|
139
|
+
global = global.filter(a => !a.isApiUser);
|
|
140
|
+
|
|
141
|
+
return global;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
static async getAdmins(organizationId: string, options?: { verified?: boolean }) {
|
|
125
145
|
if (STAMHOOFD.userMode === 'platform') {
|
|
126
146
|
// Custom implementation
|
|
127
|
-
|
|
128
|
-
|
|
147
|
+
const q = User.select()
|
|
148
|
+
.where('organizationId', null)
|
|
149
|
+
.where('permissions', '!=', null)
|
|
150
|
+
.where(
|
|
151
|
+
SQL.jsonValue(
|
|
152
|
+
SQL.jsonValue(SQL.column('permissions'), '$.value.organizationPermissions'),
|
|
153
|
+
'$."' + organizationId + '"',
|
|
154
|
+
true,
|
|
155
|
+
),
|
|
156
|
+
'!=',
|
|
157
|
+
null,
|
|
158
|
+
)
|
|
159
|
+
;
|
|
160
|
+
|
|
161
|
+
if (options?.verified !== undefined) {
|
|
162
|
+
q.where('verified', options.verified);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
let global = await q.fetch();
|
|
129
166
|
|
|
130
167
|
// Hide api accounts
|
|
131
168
|
global = global.filter(a => !a.isApiUser);
|
|
@@ -133,19 +170,21 @@ export class User extends QueryableModel {
|
|
|
133
170
|
return global;
|
|
134
171
|
}
|
|
135
172
|
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
173
|
+
const q = User.select()
|
|
174
|
+
.where('organizationId', organizationId)
|
|
175
|
+
.where('permissions', '!=', null)
|
|
176
|
+
;
|
|
140
177
|
|
|
141
178
|
if (options?.verified !== undefined) {
|
|
142
|
-
|
|
179
|
+
q.where('verified', options.verified);
|
|
143
180
|
}
|
|
144
181
|
|
|
145
|
-
|
|
182
|
+
let global = await q.fetch();
|
|
183
|
+
|
|
184
|
+
// Hide api accounts
|
|
185
|
+
global = global.filter(a => !a.isApiUser);
|
|
146
186
|
|
|
147
|
-
|
|
148
|
-
).filter(a => !a.isApiUser);
|
|
187
|
+
return global;
|
|
149
188
|
}
|
|
150
189
|
|
|
151
190
|
static async getApiUsers(organizationIds: string[]) {
|
package/src/models/index.ts
CHANGED
|
@@ -51,6 +51,7 @@ export * from './MemberPlatformMembership';
|
|
|
51
51
|
export * from './Email';
|
|
52
52
|
export * from './EmailRecipient';
|
|
53
53
|
export * from './Event';
|
|
54
|
+
export * from './EventNotification';
|
|
54
55
|
export * from './CachedBalance';
|
|
55
56
|
export * from './AuditLog';
|
|
56
57
|
export * from './MemberUser';
|