2013-06-26 11 views
0

Мне нужно зарегистрировать любое действие, сделанное пользователями в плагине sfDoctrineGuard. В основном мне нужно будет зайти в систему:Запишите любые действия, сделанные пользователями в sfDoctrineGuard

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

Любой плагин? Это возможно? Как?

ответ

1

Возможно, это может быть плагин, который вам нужен, sfDoctrineGuardLoginHistoryPlugin и позволяет расширять информацию, которую вы сохраняете.

Проверить наличие дополнительных плагинов here.

Взгляните на код плагина, вам просто нужно изменить следующий файл: PluginUserLoginHistoryTable.class.php

Добавить в функции writeLoginHistory и createHistoryEntry информацию, которую вы хотите:

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 функции, а также для обновления этой функции с большим количеством входных значений, которые будут сохранены.

+0

спасибо, это именно то, что я искал, я читал документы, но могу ли вы написать пример того, как сохранить 'module/action'? Я имею в виду, где или лучше, как мне получить эту часть. – Reynier

+0

Отредактировано выше, чтобы сохранить действие и модуль, проверьте информацию о плагине для получения дополнительных изменений. – xtrm