import { DFWScheme } from "../.."; import DFWModule from "./DFWModule"; import dfw_credential from "../../model/dfw_credential.model"; import dfw_access from "../../model/dfw_access.model"; export default class SecurityManager extends DFWModule { static readonly RULE_LOGGED_SESSION = 0; static readonly RULE_ACCESS = 1; static readonly RULE_CREDENTIAL = 2; static readonly RULE_BODY_PARAMS_SETTED = 3; static readonly RULE_QUERY_PARAMS_SETTED = 4; static readonly LABEL_RULE_GENERIC = "access denied"; static readonly LABEL_RULE_LOGGED_SESSION = "access denied (you need to be logged)"; static readonly LABEL_RULE_ACCESS = "access denied (you dond have the access to this)"; static readonly LABEL_RULE_CREDENTIAL = "access denied (you dond have the credentials to this)"; static readonly LABEL_RULE_BODY_PARAMS_SETTED = "missing post arguments setted"; static readonly LABEL_RULE_QUERY_PARAMS_SETTED = "missing query arguments setted"; touchAsync(dfw: DFWScheme): Promise; checkBindingsAsync(dfw: DFWScheme, type: number, value: any | any[]): Promise; checkUserCredentialAsync(dfw: DFWScheme, credential: dfw_credential | dfw_credential[] | string | string[]): Promise; checkUserAccessAsync(dfw: DFWScheme, access: dfw_access | dfw_access[] | string | string[]): Promise; checkBodyParams(dfw: DFWScheme, params: string[]): boolean; checkQueryParams(dfw: DFWScheme, params: string[]): boolean; static verifyPassword(encoded: string, test: string): boolean; static encryptPassword(password: string): string; } export interface AccessBinding { type: number; value: any[] | any; } export interface DFWSecuritySchema { checkRuleAsync: (type: number, rule: any | any[]) => Promise; }