unleash-server
Version:
Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.
54 lines (53 loc) • 2.96 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { Knex } from 'knex';
import { IAccessInfo, IAccessStore, IRole, IRoleWithProject, IUserPermission, IUserRole } from '../types/stores/access-store';
import { IPermission } from '../types/model';
interface IPermissionRow {
id: number;
permission: string;
display_name: string;
environment?: string;
type: string;
project?: string;
role_id: number;
}
export declare class AccessStore implements IAccessStore {
private logger;
private timer;
private db;
constructor(db: Knex, eventBus: EventEmitter, getLogger: Function);
delete(key: number): Promise<void>;
deleteAll(): Promise<void>;
destroy(): void;
exists(key: number): Promise<boolean>;
get(key: number): Promise<IRole>;
getAll(): Promise<IRole[]>;
getAvailablePermissions(): Promise<IPermission[]>;
mapPermission(permission: IPermissionRow): IPermission;
getPermissionsForUser(userId: number): Promise<IUserPermission[]>;
mapUserPermission(row: IPermissionRow): IUserPermission;
getPermissionsForRole(roleId: number): Promise<IPermission[]>;
addEnvironmentPermissionsToRole(role_id: number, permissions: IPermission[]): Promise<void>;
unlinkUserRoles(userId: number): Promise<void>;
unlinkUserGroups(userId: number): Promise<void>;
clearUserPersonalAccessTokens(userId: number): Promise<void>;
clearPublicSignupUserTokens(userId: number): Promise<void>;
getProjectUsersForRole(roleId: number, projectId?: string): Promise<IUserRole[]>;
getRolesForUserId(userId: number): Promise<IRoleWithProject[]>;
getUserIdsForRole(roleId: number): Promise<number[]>;
addUserToRole(userId: number, roleId: number, projectId?: string): Promise<void>;
removeUserFromRole(userId: number, roleId: number, projectId?: string): Promise<void>;
addGroupToRole(groupId: number, roleId: number, createdBy: string, projectId?: string): Promise<void>;
removeGroupFromRole(groupId: number, roleId: number, projectId?: string): Promise<void>;
updateUserProjectRole(userId: number, roleId: number, projectId: string): Promise<void>;
updateGroupProjectRole(groupId: number, roleId: number, projectId: string): Promise<void>;
addAccessToProject(users: IAccessInfo[], groups: IAccessInfo[], projectId: string, roleId: number, createdBy: string): Promise<void>;
removeRolesOfTypeForUser(userId: number, roleType: string): Promise<void>;
addPermissionsToRole(role_id: number, permissions: string[], environment?: string): Promise<void>;
removePermissionFromRole(role_id: number, permission: string, environment?: string): Promise<void>;
wipePermissionsFromRole(role_id: number): Promise<void>;
cloneEnvironmentPermissions(sourceEnvironment: string, destinationEnvironment: string): Promise<void>;
isChangeRequestsEnabled(project: string, environment: string): Promise<boolean>;
}
export {};