Skip to main content
Module

x/mandarinets/security-core/core/proxys/securityCoreDecorators.ts

Mandarine.TS is a typescript, decorator-driven framework that allows you to create server-side applications. Mandarine.TS provides a range of built-in solutions such as Dependency Injection, Components, ORM and more. Under its umbrella, Mandarine.TS has 4 modules: Core, Data, Security and MVC, these modules will offer you the requirements to build a Mandarine-powered application.
Latest
File
// Copyright 2020-2020 The Mandarine.TS Framework authors. All rights reserved. MIT license.
import type { Mandarine } from "../../../main-core/Mandarine.ns.ts";import { MandarineException } from "../../../main-core/exceptions/mandarineException.ts";import { Reflect } from "../../../main-core/reflectMetadata.ts";import { MandarineConstants } from "../../../main-core/mandarineConstants.ts";
export class SecurityCoreDecoratorsProxy {
public static registerAllowOnlyDecorator(targetClass: any, permissions: Mandarine.Security.Auth.Permissions, methodName: string) { let isMethod: boolean = methodName != null; if(!Array.isArray(permissions) && !(typeof permissions === 'string')) throw new MandarineException(MandarineException.INVALID_ALLOWONLY_DECORATOR_PERMISSIONS); let newPermissions; if(Array.isArray(permissions)) { newPermissions = [...permissions]; } else { newPermissions = permissions; } if(!isMethod) { Reflect.defineMetadata(MandarineConstants.REFLECTION_MANDARINE_SECURITY_ALLOWONLY_DECORATOR, newPermissions, targetClass); } else { Reflect.defineMetadata(`${MandarineConstants.REFLECTION_MANDARINE_SECURITY_ALLOWONLY_DECORATOR}:${methodName}`, newPermissions, targetClass, methodName); } }
}