Browse Source

Check for user in request because of public page

pull/2065/head
Thomas 2 years ago
parent
commit
d0dcadd4b3
  1. 16
      apps/api/src/services/impersonation/impersonation.service.ts

16
apps/api/src/services/impersonation/impersonation.service.ts

@ -12,6 +12,7 @@ export class ImpersonationService {
) {} ) {}
public async validateImpersonationId(aId = '') { public async validateImpersonationId(aId = '') {
if (this.request.user) {
const accessObject = await this.prismaService.access.findFirst({ const accessObject = await this.prismaService.access.findFirst({
where: { where: {
GranteeUser: { id: this.request.user.id }, GranteeUser: { id: this.request.user.id },
@ -20,7 +21,7 @@ export class ImpersonationService {
}); });
if (accessObject?.userId) { if (accessObject?.userId) {
return accessObject?.userId; return accessObject.userId;
} else if ( } else if (
hasPermission( hasPermission(
this.request.user.permissions, this.request.user.permissions,
@ -29,6 +30,19 @@ export class ImpersonationService {
) { ) {
return aId; return aId;
} }
} else {
// Public access
const accessObject = await this.prismaService.access.findFirst({
where: {
GranteeUser: null,
User: { id: aId }
}
});
if (accessObject?.userId) {
return accessObject.userId;
}
}
return null; return null;
} }

Loading…
Cancel
Save