Browse Source

Check for user in request because of public page

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

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

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

Loading…
Cancel
Save