@intuitionrobotics/permissions
Version:
55 lines (54 loc) • 2.57 kB
TypeScript
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 {};