@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
74 lines • 2.27 kB
TypeScript
/**
* @description
* Representa uma permissão concedida a um perfil, indicando se uma determinada ação é permitida sobre um recurso.
*
* Cada permissão é definida por um par `ação + recurso`, e vinculada a um `perfilId`.
*
* @remarks
* - O campo `permitido` define se a ação está explicitamente permitida (`true`) ou negada (`false`)
* - Pode ser modelado em conjunto com enums como `AcaoPermissao`, `RecursoPermissao` e `PermissaoConcedida`
* - Esse DTO é frequentemente usado em telas de gestão de perfis, segurança e controle de acesso (RBAC)
*
* @example
* {
* id: 7,
* acao: "Editar",
* recurso: "Processo",
* permitido: true,
* perfilId: 3
* }
*/
import type { BaseEntity } from "../base/base-entity.interface";
/**
* @interface PermissaoDto
* @extends BaseEntity
* @description
* DTO que representa uma permissão concedida a um perfil, indicando se uma determinada ação é permitida sobre um recurso específico.
*
* @property {string} acao - Ação permitida ou negada (ex: 'Exibir', 'Editar', 'Cadastrar').
* @property {string} recurso - Recurso ao qual a permissão se aplica (ex: 'Processo', 'Usuario').
* @property {boolean} permitido - Define se a ação sobre o recurso está permitida.
* @property {number} [perfilId] - ID do perfil ao qual a permissão está vinculada.
*
* @example
* ```typescript
* const permissao: PermissaoDto = {
* id: 1,
* acao: "Editar",
* recurso: "Usuario",
* permitido: true,
* perfilId: 2
* }
* ```
*/
export interface PermissaoDto extends BaseEntity {
/**
* Ação permitida ou negada (ex: 'Exibir', 'Editar', 'Cadastrar')
*
* @type {string}
* @memberof PermissaoDto
*/
acao: string;
/**
* Recurso ao qual a permissão se aplica (ex: 'Processo', 'Usuario')
*
* @type {string}
* @memberof PermissaoDto
*/
recurso: string;
/**
* Define se a ação sobre o recurso está permitida
*
* @type {boolean}
* @memberof PermissaoDto
*/
permitido: boolean;
/**
* ID do perfil ao qual a permissão está vinculada
*
* @type {number}
* @memberof PermissaoDto
*/
perfilId?: number;
}
//# sourceMappingURL=permissao.dto.d.ts.map