记录用户在sfDoctrineGuard中所做的任何操作

时间:2013-06-26 04:06:41

标签: symfony1 symfony-1.4 sfdoctrineguard

我需要记录用户在sfDoctrineGuard插件中所做的任何操作。基本上我需要记录:

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

任何插件?那可能吗?怎么样?

1 个答案:

答案 0 :(得分:1)

这可能是您需要的插件sfDoctrineGuardLoginHistoryPlugin,并允许扩展您保存的信息。

检查更多插件here

看一下插件的代码,您只需要更改以下文件:PluginUserLoginHistoryTable.class.php

在函数writeLoginHistorycreateHistoryEntry中添加您想要的信息:

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
  }
}

请记住将这些值传递给createHistoryEntry函数,并使用更多输入值来更新该函数。