UNPKG

@intuitionrobotics/permissions

Version:
55 lines (54 loc) 2.57 kB
import { Module, StringMap } from "@intuitionrobotics/ts-common"; import { ServerApi_Middleware } from "@intuitionrobotics/thunderstorm/backend"; import { Base_AccessLevels, DB_PermissionAccessLevel, DB_PermissionApi, DB_PermissionsGroup, DB_PermissionsUser, User_Group } from "../.."; export type UserCalculatedAccessLevel = { [domainId: string]: number; }; export type GroupPairWithBaseLevelsObj = { accessLevels: Base_AccessLevels[]; customFields: StringMap[]; }; export type RequestPairWithLevelsObj = { accessLevels: DB_PermissionAccessLevel[]; customFields: StringMap[]; }; type Config = { strictMode?: boolean; }; export declare class PermissionsAssert_Class extends Module<Config> { constructor(); readonly Middleware: (keys: string[]) => ServerApi_Middleware; readonly CustomMiddleware: (keys: string[], action: (projectId: string, customFields: StringMap) => Promise<void>) => ServerApi_Middleware; assertUserPermissions(projectId: string, path: string, userId: string, requestCustomField: StringMap): Promise<void>; _assertUserPermissionsImpl(apiDetails: { apiDb: DB_PermissionApi; requestPermissions: DB_PermissionAccessLevel[]; }, projectId: string, userDetails: { user: DB_PermissionsUser; userGroups: DB_PermissionsGroup[]; }, requestCustomField: StringMap): void; assertUserSharingGroup(granterUserId: string, userGroup: User_Group): Promise<void>; assertUserPermissionsImpl(userGroups: DB_PermissionsGroup[], requestPermissions: DB_PermissionAccessLevel[], requestCustomFields: StringMap[]): void; getUserDetails(uuid: string): Promise<{ user: DB_PermissionsUser; userGroups: DB_PermissionsGroup[]; }>; private getCombineUserGroupCF; private getCombineUserGroups; getApiDetails(_path: string, projectId: string): Promise<{ apiDb: DB_PermissionApi; requestPermissions: DB_PermissionAccessLevel[]; }>; getApisDetails(urls: string[], projectId: string): Promise<({ apiDb: DB_PermissionApi; requestPermissions: DB_PermissionAccessLevel[]; } | undefined)[]>; private getAccessLevels; isMatchWithLevelsObj(groupPair: GroupPairWithBaseLevelsObj, requestPair: RequestPairWithLevelsObj): boolean; private getDomainLevelMap; doesCustomFieldsSatisfies(groupCustomFields: StringMap[] | undefined, requestCustomField: StringMap): boolean; private doesCustomFieldSatisfies; private getRegEx; } export declare const PermissionsAssert: PermissionsAssert_Class; export {};