UNPKG

@rytass/member-base-nestjs-module

Version:

Rytass Member System NestJS Base Module

43 lines (42 loc) 1.55 kB
import type { ExecutionContext } from '@nestjs/common'; import type { Enforcer } from 'casbin'; import type { AuthTokenPayloadBase } from './auth-token-payload'; export type CasbinPermissionCheckerParams<TokenPayload extends { id: string; account?: string; domain?: string; } = AuthTokenPayloadBase> = { enforcer: Enforcer; payload: TokenPayload; actions: [string, string][]; context?: ExecutionContext; request?: unknown; }; export type CasbinAuthorizationDecision = { allowed: boolean; matchedDomain?: string; matchedAction?: [string, string]; meta?: Record<string, unknown>; }; export type CasbinPermissionCheckerSyncResult = boolean | CasbinAuthorizationDecision; export type CasbinPermissionCheckerResult = Promise<CasbinPermissionCheckerSyncResult>; export type CasbinPermissionChecker<TokenPayload extends { id: string; account?: string; domain?: string; } = AuthTokenPayloadBase> = (params: CasbinPermissionCheckerParams<TokenPayload>) => CasbinPermissionCheckerResult; export type CasbinDomainResolverParams<TokenPayload extends { id: string; account?: string; domain?: string; } = AuthTokenPayloadBase> = { context?: ExecutionContext; request?: unknown; payload: TokenPayload; actions: [string, string][]; }; export type CasbinDomainResolver<TokenPayload extends { id: string; account?: string; domain?: string; } = AuthTokenPayloadBase> = (params: CasbinDomainResolverParams<TokenPayload>) => string | string[] | Promise<string | string[]>;