Cauan Cabral's.

CakePHP: Plugin Auditable

Cauan Cabral
Cauan Cabral
Posted underDesenvolvimento Web

Cenário: você desenvolve um sistema para uma empresa e 4 meses depois a gerência da empresa detecta um problema nos dados e solicita uma auditoria pra saber o que causou aquilo e quem é o responsável.

Este cenário é mais comum do que parece, em várias situações talvez não chegue a diretoria, mas algum usuário pede informação de como dada informação chegou ou saiu do sistema. Como você atenderia a solicitação? Se você não tem ainda uma resposta, vou apresentar uma alternativa, um plugin para CakePHP desenvolvido pela equipe da Radig (eu incluso) e disponível no seu github: github.com/radig/auditable

O objetivo do Auditable é muito simples: tornar qualquer sistema em CakePHP auditável.

O plugin é composto de duas peças chaves: uma classe de configuração e um behavior. Para tornar um modelo auditável, basta “plugar” o behavior à ele, a partir daí todas as informações criadas, alteradas ou removidas.

Há ainda um helper para ajudar na formatação das entradas do log e um controller simples que pode ser usado para visualizar o log.

Há casos de teste para todo o behavior e informações sobre sua configuração em seu readme: https://github.com/radig/auditable/blob/master/README.textile

Bom proveito =]

————–

Conforme o assunto se desenrolou nos comentários, implementamos os modelos Logger e LogDetail para uso junto ao CakeMongoDb para armazenar os logs no banco de dados MongoDB. Você pode conferir no plugin AuditableMongoLogger

Qualquer dúvida ou sugestão pode usar os comentários ou o Github ;]


pgModeler – gerando o seu binário

Cauan Cabral
Cauan Cabral

Tem algumas aplicações que são icônicas pra gente – por diversas razões – no meu caso, alguns destes são winamp, mIRC, Macromedia Flash MX, Amarok, Kompare, MySQL Workbench e Gitlab. Outro que conheci e me deixou admirado quando descobri foi o pgModeler, primeiro pela qualidade da aplicação em si que é o mais próximo do […]

Dica Rápida: usando tipos “complexos” com Migrations no Phinx

Cauan Cabral
Cauan Cabral

Essa é uma dica bem curta e realmente rápida pra registrar algo que precisei pesquisar algumas vezes nos últimos anos e sempre me esqueço. Cena: você define uma tabela no seu projeto e gostaria de usar uma coluna com o tipo tsvector (como citei em posts recentes) ou então uuid. Você quer usar as funções […]