UNPKG

@superawesome/permissions

Version:

Fine grained permissions / access control with ownerships & attribute picking, done right.

44 lines (43 loc) 1.85 kB
import { IUser, TisOwner, TlimitOwned, TlistOwned } from '../types'; export interface IMyUser { id: number; roles: string[]; } export declare const USERS: { [name: string]: IMyUser; }; export declare const USER_CREATED_DOCUMENTS: { [userId: number]: number[]; }; export interface IDocument { id: number; title: string; date: string; someRandomField: string; confidential: string; } export declare const ALL_DOCUMENTS_IDS: any[]; export declare const ALL_DOCUMENTS: IDocument[]; export declare const USER_MANAGES_MANY_USERS: { [userId: number]: number[]; }; export declare const USER_BELONGS_TO_ONE_COMPANY: { [userId: number]: number; }; export declare type DocumentFilterPredicate = (IDocument: any) => boolean; export declare const isUserCreatorOfDocument: ({ user, resourceId }: { user: any; resourceId: any; }) => boolean; export declare const listUserCreatedDocuments: (user: any) => Promise<number[]>; export declare const isOwner_isUserCreatorOfDocument: TisOwner; export declare const listOwned_listUserCreatedDocuments: TlistOwned; export declare const limitOwned_listUserCreatedDocuments: TlimitOwned<number, DocumentFilterPredicate>; export declare const listDocsOfMeAndMyManagedUsers: (user: IUser) => number[]; export declare const isOwner_isDocCreatedByMeAndMyManagedUsers: TisOwner; export declare const listOwned_DocsOfMeAndMyManagedUsers: TlistOwned; export declare const limitOwned_DocsOfMeAndMyManagedUsers: TlimitOwned<number, DocumentFilterPredicate>; export declare const listDocsOfMeAndMyCompanyUsers: (user: IUser) => any[]; export declare const isOwner_isDocCreatedByMeAndMyCompanyUsers: TisOwner; export declare const listOwned_DocsOfMeAndMyCompanyUsers: TlistOwned; export declare const limitOwned_DocsOfMeAndMyCompanyUsers: TlimitOwned<number, DocumentFilterPredicate>;