Pacote contendo as definições de tipos para o sistema centralizado de RBAC (Role-Based Access Control).
npm install @cartoriocriciuma/rbac-types
-
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[]; }
-
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[]; }
-
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[]; }
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'
}
]
};
Veja as instruções de contribuição no arquivo CONTRIBUTING.md.
ISC