If you are using a later version of MySQL (>= 5.0.2), you could add a
database trigger (ON UPDATE, ON DELETE, etc.) to log changes
automatically without having to change your code.

See: http://dev.mysql.com/doc/refman/5.0/en/triggers.html


On Aug 20, 11:59 am, <[EMAIL PROTECTED]> wrote:
> This my attempt to solve the problem (logfile is a table for auditing):
>
>   function beforeSave() {
>     $this->currentAction = $this->id ? 'Update' : 'Insert';
>     return true;
>   }
>
>   function afterSave() {
>     // hope that this is not necessary
>     // because cake has filled in the id after save
>
>     if(!$this->id) {
>       $id = $this->getLastInsertId();
>     } else {
>       $id = $this->id ;
>     }
>
>     /*
>     ** Save Log
>     **
>     */
>     loadModel("Logfile");
>     $Logfile = new Logfile;
>     $data['Logfile']['created']   = date("Y-m-d H:i:s");
>     $data['Logfile']['tablename'] = $this->name;
>     $data['Logfile']['tableid']   = $this->getLastUsedId();
>     $data['Logfile']['username']  = @$_SESSION['cakeAuth']['login'];
>     $data['Logfile']['action']    = $this->currentAction;
>     $data['Logfile']['ipaddress'] = @$_SERVER['REMOTE_ADDR'];
>     $Logfile->save($data);
>     $Logfile = null;
>
>     $this->currentAction = '';
>
>     return true;
>   }
>
>   function afterDelete() {
>     /*
>     ** save Log
>     */
>     loadModel("Logfile");
>     $Logfile = new Logfile;
>     $data['Logfile']['created']   = date("Y-m-d H:i:s");
>     $data['Logfile']['tablename'] = $this->name;
>     $data['Logfile']['tableid']   = $this->getLastUsedId();
>     $data['Logfile']['username']  = @$_SESSION['cakeAuth']['login'];
>     $data['Logfile']['action']    = 'Delete';
>     $data['Logfile']['ipaddress'] = @$_SERVER['REMOTE_ADDR'];
>     $Logfile->save($data);
>     $Logfile = null;
>
>     return true;
>   }
>
> > -----Messaggio originale-----
> > Da: [email protected]
> > [mailto:[EMAIL PROTECTED] Per conto di zipman
> > Inviato: lunedì 20 agosto 2007 12.42
> > A: Cake PHP
> > Oggetto: Auditing
>
> > Hello,
>
> > I have finished a project and now I want to add auditing
> > support, as to know when an update or delete occured and with
> > what parameters.
> > I guess the solution to my problem is the afterSave callback
> > which I'll have to put in the app_model.php. The problem is I
> > don't know how to access the parameters used for save (the
> > model on which the save function was called and with what
> > parameters). How can I do this?


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to