Reynier
Reynier

Reputation: 2478

Log any action made by users in sfDoctrineGuard

I need to log any action made by users in sfDoctrineGuard plugin. Basically I'll need to log:

module/action
date
IP from where users are accessing the application

Any plugin? Is that possible? How?

Upvotes: 0

Views: 49

Answers (1)

starnetdev
starnetdev

Reputation: 978

This could be probably the plugin you need, sfDoctrineGuardLoginHistoryPlugin and allows to extend the information that you save.

Check for more plugins here.

Take a look at the code of the plugin, you just need to change the following file: PluginUserLoginHistoryTable.class.php

Add in the function writeLoginHistory and createHistoryEntry the information you want:

writeLoginHistory(sfEvent $event) {
//... same code than in the plugin
//lets save module and action
  if (!isset($request) )
  {
    $sActionName = sfContext::getInstance()->getActionName();
    $sModuleName = sfContext::getInstance()->getModuleName();
  }
  else
  {
    if (isset($request["module"]))
    {
      $sActionName = $request["action"];
      $sModuleName = $request["module"];
    }
  }

  //get values from the http bar URL
  if (!isset($sModuleName))
  {
    $sFullURL = sfContext::getInstance()->getRouting()->getCurrentInternalUri();
    ///... strip action and module name from the above URL
  }
}

Remember to pass those values to createHistoryEntry function and also to update that function with more input values to be saved.

Upvotes: 1

Related Questions