@cartoriocriciuma/rbac-types v1.0.0-alpha.1
@cartoriocriciuma/rbac-types
Pacote contendo as definições de tipos para o sistema centralizado de RBAC (Role-Based Access Control).
Instalação
npm install @cartoriocriciuma/rbac-typesConteúdo
Interfaces de Permissões
Permission: Define a estrutura básica de uma permissão no sistema.interface Permission { id: string; codigo: string; nome: string; descricao: string; modulo: string; grupo?: string; }PermissionCheck: Interface para verificação de permissões.interface PermissionCheck { codigo: string; modulo?: string; }PermissionCheckResult: Resultado da verificação de permissões.interface PermissionCheckResult { granted: boolean; permission?: Permission; }GrupoPermissao: Definição de um grupo de permissões.interface GrupoPermissao { nome: string; descricao: string; permissoes: Permission[]; }PermissoesAgrupadas: Permissões organizadas por grupos.interface PermissoesAgrupadas { [grupo: string]: Permission[]; }
Interfaces de Papéis (Roles)
Papel: Definição básica de um papel no sistema.interface Papel { id: string; nome: string; descricao: string; ativo: boolean; }PapelPermissao: Associação entre papel e permissão.interface PapelPermissao { papelId: string; permissionId: string; }PapelDetalhado: Papel com suas permissões.interface PapelDetalhado extends Papel { permissoes: Permission[]; }CreatePapelDto: DTO para criação de papéis.interface CreatePapelDto { nome: string; descricao: string; ativo: boolean; permissaoIds?: string[]; }UpdatePapelDto: DTO para atualização de papéis.interface UpdatePapelDto { nome?: string; descricao?: string; ativo?: boolean; permissaoIds?: string[]; }
Interfaces de Manifestos
PermissaoManifesto: Definição de permissão em um manifesto.interface PermissaoManifesto { codigo: string; nome: string; descricao: string; grupo?: string; }ManifestoRBAC: Estrutura completa de um manifesto de permissões.interface ManifestoRBAC { modulo: string; versao: string; permissoes: PermissaoManifesto[]; }ModuloResultado: Resultado do processamento de um módulo.interface ModuloResultado { modulo: string; adicionadas: number; atualizadas: number; removidas: number; ignoradas: number; erros: string[]; }ResultadoSincronizacao: Resultado completo da sincronização.interface ResultadoSincronizacao { sucesso: boolean; mensagem: string; timestamp: Date; modulos: ModuloResultado[]; }
Uso
import { Permission, Papel, ManifestoRBAC } from '@cartoriocriciuma/rbac-types';
// Exemplo de definição de uma permissão
const minhaPermissao: Permission = {
id: '1',
codigo: 'USUARIO:VISUALIZAR',
nome: 'Visualizar Usuários',
descricao: 'Permite visualizar a lista de usuários do sistema',
modulo: 'usuarios',
grupo: 'Usuários'
};
// Exemplo de manifesto
const meuManifesto: ManifestoRBAC = {
modulo: 'financeiro',
versao: '1.0.0',
permissoes: [
{
codigo: 'FINANCEIRO:RELATORIO:GERAR',
nome: 'Gerar Relatório Financeiro',
descricao: 'Permite gerar relatórios financeiros',
grupo: 'Relatórios'
},
{
codigo: 'FINANCEIRO:PAGAMENTO:APROVAR',
nome: 'Aprovar Pagamento',
descricao: 'Permite aprovar pagamentos',
grupo: 'Pagamentos'
}
]
};Contribuindo
Veja as instruções de contribuição no arquivo CONTRIBUTING.md.
Licença
ISC
8 months ago