@superawesome/permissions
Version:
Fine grained permissions / access control with ownerships & attribute picking, done right.
44 lines (43 loc) • 1.85 kB
TypeScript
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>;