UNPKG

armor-editor

Version:

Advanced rich text editor with premium armor-grade security, real-time collaboration, spell checking, track changes, and framework-agnostic design for React, Vue, Angular, Next.js, Nuxt.js

49 lines (48 loc) 1.59 kB
export interface User { id: string; name: string; email: string; role: UserRole; avatar?: string; } export interface UserRole { id: string; name: string; permissions: Permission[]; } export interface Permission { action: PermissionAction; resource: PermissionResource; conditions?: PermissionCondition[]; } export type PermissionAction = 'read' | 'write' | 'delete' | 'share' | 'export' | 'comment' | 'suggest' | 'approve' | 'admin'; export type PermissionResource = 'document' | 'comments' | 'suggestions' | 'settings' | 'users' | 'analytics' | 'templates'; export interface PermissionCondition { field: string; operator: 'equals' | 'contains' | 'startsWith' | 'endsWith'; value: any; } export declare class PermissionsSystem { private currentUser; private documentPermissions; private roles; private editor; constructor(editor: any); private initializeDefaultRoles; setCurrentUser(user: User): void; hasPermission(action: PermissionAction, resource: PermissionResource): boolean; canEdit(): boolean; canComment(): boolean; canShare(): boolean; canExport(): boolean; canDelete(): boolean; private applyPermissions; private updateToolbarVisibility; private applyContentRestrictions; shareDocument(userEmail: string, roleId: string): Promise<boolean>; revokeAccess(userId: string): Promise<boolean>; getAvailableRoles(): UserRole[]; createCustomRole(role: UserRole): void; logAction(action: string, details?: any): void; getAuditLogs(): any[]; }