UNPKG

@grouparoo/core

Version:
34 lines (33 loc) 1.59 kB
import { Team } from "./Team"; import { ApiKey } from "./ApiKey"; import { LockableHelper } from "../modules/lockableHelper"; import { CommonModel } from "../classes/commonModel"; export declare const PermissionTopics: readonly ["apiKey", "app", "destination", "export", "export", "file", "group", "import", "log", "model", "notification", "record", "property", "resque", "run", "setupStep", "source", "system", "team"]; export declare type ActionPermissionTopic = typeof PermissionTopics[number] | "*"; export declare type ActionPermissionMode = "read" | "write"; export declare type ActionPermission = { topic: ActionPermissionTopic; mode: ActionPermissionMode; }; export declare class Permission extends CommonModel<Permission> { idPrefix(): string; ownerId: string; ownerType: string; topic: typeof PermissionTopics[number]; read: boolean; write: boolean; locked: string; team: Team; apiKey: ApiKey; uniqueIdentifier: string[]; apiData(): Promise<{ id: string; topic: "file" | "record" | "source" | "group" | "import" | "system" | "run" | "resque" | "log" | "model" | "app" | "property" | "export" | "destination" | "apiKey" | "notification" | "setupStep" | "team"; read: boolean; write: boolean; locked: string; }>; static noUpdateIfLocked(instance: LockableHelper.LockableModel): Promise<void>; static authorizeAction(topic: ActionPermissionTopic, mode: ActionPermissionMode, instance: Team | ApiKey): Promise<boolean>; static validateTopic(topic: ActionPermissionTopic): void; }