@grouparoo/core
Version:
The Grouparoo Core
34 lines (33 loc) • 1.59 kB
TypeScript
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;
}