mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-21 02:35:23 -04:00
32 lines
1 KiB
TypeScript
32 lines
1 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
import { ExecutionContext, Injectable } from '@nestjs/common';
|
|
import { Request } from 'express';
|
|
|
|
import { User } from '../users/user.entity';
|
|
import { UsersService } from '../users/users.service';
|
|
|
|
@Injectable()
|
|
export class MockAuthGuard {
|
|
private user: User;
|
|
|
|
constructor(private usersService: UsersService) {}
|
|
|
|
async canActivate(context: ExecutionContext): Promise<boolean> {
|
|
const req: Request = context.switchToHttp().getRequest();
|
|
if (!this.user) {
|
|
// this assures that we can create the user 'hardcoded', if we need them before any calls are made or
|
|
// create them on the fly when the first call to the api is made
|
|
try {
|
|
this.user = await this.usersService.getUserByUsername('hardcoded');
|
|
} catch (e) {
|
|
this.user = await this.usersService.createUser('hardcoded', 'Testy');
|
|
}
|
|
}
|
|
req.user = this.user;
|
|
return true;
|
|
}
|
|
}
|