hedgedoc/backend/src/permissions/require-permission.decorator.ts
Tilman Vatteroth 9ca6485219 refactor: extract permission metadata key
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00

19 lines
795 B
TypeScript

/*
* SPDX-FileCopyrightText: 2023 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { CustomDecorator, SetMetadata } from '@nestjs/common';
import { RequiredPermission } from './required-permission.enum';
export const PERMISSION_METADATA_KEY = 'requiredPermission';
/**
* This decorator gathers the {@link RequiredPermission Permission} a user must hold for the {@link PermissionsGuard}
* @param permissions - an array of permissions. In practice this should always contain exactly one {@link RequiredPermission}
*/
// eslint-disable-next-line func-style,@typescript-eslint/naming-convention
export const RequirePermission = (
...permissions: RequiredPermission[]
): CustomDecorator => SetMetadata(PERMISSION_METADATA_KEY, permissions);