UNPKG

@anpdgovbr/shared-types

Version:

Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)

74 lines 2.27 kB
/** * @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