mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-19 09:45:37 -04:00
feat: add LoginEnabledGuard and RegistrationEnabledGuard
These guards check if the login or registration are enabled in the config. If so the guarded method is executed, if not the client will get the HTTP Error 400 Forbidden as an answer Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
parent
46d03571c1
commit
cd4ee84ec3
2 changed files with 66 additions and 0 deletions
33
src/api/utils/login-enabled.guard.ts
Normal file
33
src/api/utils/login-enabled.guard.ts
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
import {
|
||||||
|
BadRequestException,
|
||||||
|
CanActivate,
|
||||||
|
Inject,
|
||||||
|
Injectable,
|
||||||
|
} from '@nestjs/common';
|
||||||
|
|
||||||
|
import authConfiguration, { AuthConfig } from '../../config/auth.config';
|
||||||
|
import { ConsoleLoggerService } from '../../logger/console-logger.service';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class LoginEnabledGuard implements CanActivate {
|
||||||
|
constructor(
|
||||||
|
private readonly logger: ConsoleLoggerService,
|
||||||
|
@Inject(authConfiguration.KEY)
|
||||||
|
private authConfig: AuthConfig,
|
||||||
|
) {
|
||||||
|
this.logger.setContext(LoginEnabledGuard.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
canActivate(): boolean {
|
||||||
|
if (!this.authConfig.local.enableLogin) {
|
||||||
|
this.logger.debug('Local auth is disabled.', 'canActivate');
|
||||||
|
throw new BadRequestException('Local auth is disabled.');
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
33
src/api/utils/registration-enabled.guard.ts
Normal file
33
src/api/utils/registration-enabled.guard.ts
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
import {
|
||||||
|
BadRequestException,
|
||||||
|
CanActivate,
|
||||||
|
Inject,
|
||||||
|
Injectable,
|
||||||
|
} from '@nestjs/common';
|
||||||
|
|
||||||
|
import authConfiguration, { AuthConfig } from '../../config/auth.config';
|
||||||
|
import { ConsoleLoggerService } from '../../logger/console-logger.service';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class RegistrationEnabledGuard implements CanActivate {
|
||||||
|
constructor(
|
||||||
|
private readonly logger: ConsoleLoggerService,
|
||||||
|
@Inject(authConfiguration.KEY)
|
||||||
|
private authConfig: AuthConfig,
|
||||||
|
) {
|
||||||
|
this.logger.setContext(RegistrationEnabledGuard.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
canActivate(): boolean {
|
||||||
|
if (!this.authConfig.local.enableRegister) {
|
||||||
|
this.logger.debug('User registration is disabled.', 'canActivate');
|
||||||
|
throw new BadRequestException('User registration is disabled.');
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue