clientAcl.d.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435
  1. export interface ClientAcl {
  2. id?: number;
  3. clientid?: string;
  4. username: string;
  5. topic: string;
  6. action: 'publish' | 'subscribe' | 'pubsub';
  7. permission: 'allow' | 'deny';
  8. priority?: number;
  9. description?: string;
  10. created_at?: Date;
  11. updated_at?: Date;
  12. }
  13. export declare class ClientAclModel {
  14. static getAll(limit?: number, offset?: number): Promise<ClientAcl[]>;
  15. static getById(id: number): Promise<ClientAcl | null>;
  16. static getByUsername(username: string): Promise<ClientAcl[]>;
  17. static getByAction(action: string): Promise<ClientAcl[]>;
  18. static getByTopic(topic: string): Promise<ClientAcl[]>;
  19. static getByPermission(permission: string): Promise<ClientAcl[]>;
  20. static getCount(): Promise<number>;
  21. static getActionStats(): Promise<any[]>;
  22. static getPermissionStats(): Promise<any[]>;
  23. static create(aclData: Omit<ClientAcl, 'id' | 'created_at' | 'updated_at'>): Promise<ClientAcl>;
  24. static update(id: number, updateData: Partial<Omit<ClientAcl, 'id' | 'created_at'>>): Promise<boolean>;
  25. static delete(id: number): Promise<boolean>;
  26. static deleteByUsername(username: string): Promise<boolean>;
  27. static search(searchTerm: string, limit?: number, offset?: number): Promise<ClientAcl[]>;
  28. static getSearchCount(searchTerm: string): Promise<number>;
  29. static createBatch(aclDataList: Omit<ClientAcl, 'id' | 'created_at' | 'updated_at'>[]): Promise<boolean>;
  30. static copyToUser(sourceUsername: string, targetUsername: string): Promise<boolean>;
  31. static deleteMultiple(ids: number[]): Promise<boolean>;
  32. static getByUsernameAndAction(username: string, action: string): Promise<ClientAcl[]>;
  33. static checkPermission(username: string, topic: string, action: string): Promise<boolean>;
  34. }
  35. //# sourceMappingURL=clientAcl.d.ts.map