Skip to content

Commit 264d56f

Browse files
committed
Fix project owner assigment
1 parent ff5eac0 commit 264d56f

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

src/app.d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ declare global {
3939
OwnerId: number;
4040
OrganizationId: number;
4141
GroupId: number;
42-
}
42+
},
43+
// leave blank to use security userId
44+
userId?: number
4345
): this | never;
4446
requireMemberOfAnyOrg(): this | never;
4547
requireNothing(): this | never;

src/auth.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,13 +268,14 @@ export class Security {
268268

269269
requireProjectClaimable(
270270
userGroups: { GroupId: number }[],
271-
project?: { OwnerId: number; OrganizationId: number; GroupId: number } | null
271+
project?: { OwnerId: number; OrganizationId: number; GroupId: number } | null,
272+
userId?: number
272273
) {
273274
this.requireAuthenticated();
274275
if (!project) {
275276
error(404, 'Project not found');
276277
}
277-
if (this.userId === project.OwnerId) {
278+
if ((userId ?? this.userId) === project.OwnerId) {
278279
error(400, 'Project owner cannot claim own project');
279280
}
280281
if (!this.isSuperAdmin && !userGroups.some((ug) => ug.GroupId === project.GroupId)) {

src/routes/(authenticated)/projects/[id=idNumber]/+page.server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,8 @@ export const actions = {
330330
if (project.OwnerId !== form.data.owner) {
331331
event.locals.security.requireProjectClaimable(
332332
await userGroupsForOrg(form.data.owner, project.OrganizationId),
333-
project
333+
project,
334+
form.data.owner
334335
);
335336
if (!QueueConnected()) return error(503);
336337
}

0 commit comments

Comments
 (0)