Skip to content

Commit

Permalink
Atualização do README de acordo com última refatoração
Browse files Browse the repository at this point in the history
  • Loading branch information
CauanCabral committed Feb 27, 2012
1 parent 5e27043 commit fb09c83
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 7 deletions.
1 change: 0 additions & 1 deletion Model/Behavior/AuditableBehavior.php
Expand Up @@ -103,7 +103,6 @@ public function __construct() {
* @param array $config
*
* Opções de configurações:
* format : ':action record with :data',
* skip : array. Lista com nome das ações que devem ser ignoradas pelo log.
* fields : array. Aceita os dois índices abaixo
* - created : string. Nome do campo presente em cada modelo para armazenar quem criou o registro
Expand Down
44 changes: 38 additions & 6 deletions README.textile
Expand Up @@ -5,15 +5,34 @@ A ideia central é manter a informação de qual usuário fez o quê, e quando i

h2. Como usar

Existem duas configurações, a primeira é definir, logo que esteja disponível, a informação
O Plugin utiliza uma classe estática como "repositório" das configurações globais dele. Estas
configurações ficam então acessíveis ao Behavior e Helper, garantindo funcionamento correto
de ambos.

h3. Classe AuditableConfig

É a classe que armazena as configurações do Plugin. Tem acesso estático aos seus quatro atributos, que são:

* *userId* Um inteiro que representa o ID do usuário logado no sistema;
* *Logger* A instância de um Modelo válido para salvar os logs;
* *serialize* Uma string contendo o nome de uma função válida para serializar arrays;
* *unserialize* Uma string contendo o nome de uma função válida para deserializar strings geradas pela função definida no atributo anterior.

No próximo item é sugerido uma forma de definir esses atributos para toda a aplicação.

h3. Configuração mínima do Plugin

Existem duas configurações mínimas, a primeira é definir, logo que esteja disponível, a informação
sobre o usuário logado e o modelo que salvará a mensagem de log no BD. Para isso, uma sugestão
é usar o callback do AppController, deixando-o mais ou menos assim:

<pre>
public function beforeFilter() {
parent::beforeFilter();

AuditableConfig::$userId = $this->Auth->user('id');
if($this->Auth->loggedIn()) {
AuditableConfig::$userId = $this->Auth->user('id');
}

// Caso deseje usar o modelo padrão, utilize como abaixo, caso contrário você pode usar qualquer modelo
AuditableConfig::$Logger =& ClassRegistry::init('Auditable.Logger');
Expand All @@ -25,19 +44,32 @@ ele em seu $actsAs da seguinte maneira

bc. public $actsAs = array('Auditable.Auditable');

h3. Behavior Auditable

É possível configurar alguns items do behavior, são eles:

* *skip* : Lista com nome dos campos que devem ser ignoradas no log.
* *fields* : Aceita os dois índices abaixo
** *created* : Nome do campo presente em cada modelo para armazenar quem criou o registro
** *modified* : Nome do campo presente em cada modelo para armazenar quem alterou o registro

h3. Helper Auditor

Suas configurações são:

* *formats* : Um array com os diferentes formatos utilizados nos logs, conforme abaixo
** *general* : Uma string que será usada como descrição do log. Aceita dois placeholders: ':action' e ':data' que representam respectivamente a ação (criação ou modificação) e o que foi efetivamente alterado.
** *prepend* : Uma string que será prefixada em cada campo do log. Não aceita placeholders.
** *pospend* : Uma string que será pósfixada em cada campo do log. Não aceita placeholders.
** *create* : Uma string que será usado para logs de criação. Aceita os placeholders ':field' e ':value'
** *modify* : Um string que será usada para logs de modificação. Aceita os placeholders ':field', ':old' e ':new'
** *delete* : Uma string que será usada para logs de remoção. Aceita os placeholders ':field' e ':value'
* *skip* : Lista com nome dos campos que devem ser ignoradas no log.
* *fields* : Aceita os dois índices abaixo
** *created* : Nome do campo presente em cada modelo para armazenar quem criou o registro
** *modified* : Nome do campo presente em cada modelo para armazenar quem alterou o registro

Para usa-lo na view, basta invocar o método _format_

bc. echo $this->Auditor->format($data['LogDetail']['difference'], $data['Logger']['type']);

Onde o primeiro parâmetro é a coluna 'difference' do modelo LogDetail e o segundo é o tipo de log ('create', 'modify', 'delete').

h2. Autor e Copyright

Expand Down

0 comments on commit fb09c83

Please sign in to comment.