Surveillance utilisateur dans les rails
-
02-07-2019 - |
Question
Nous avons une application avec une section administrateur étendue. Nous sommes un peu satisfaits des fonctionnalités (comme vous le faites) et nous cherchons un moyen rapide et facile de contrôler "qui utilise quoi".
Idéalement, un simple joyau nous permettant de suivre les actions / contrôleurs par utilisateur pour créer une image des fonctionnalités utilisées et de celles qui ne le sont pas.
Tout ce que vous recommanderiez là-bas.
Merci
Dom
La solution
Je ne sais pas s'il existe un joyau ou un plugin populaire pour cela; Dans le passé, j'ai implémenté ce type d'audit en tant que before_filter
dans ApplicationController:
de mémoire:
class ApplicationController < ActionController::Base
before_filter :audit_events
# ...
protected
def audit_events
local_params = params.clone
controller = local_params.delete(:controller)
action = local_params.delete(:action)
Audit.create(
:user => current_user,
:controller => controller,
:action => action,
:params => local_params
)
end
end
Cela suppose que vous utilisez quelque chose comme restful_authentication pour obtenir l'utilisateur actuel, bien sûr.
EDIT: en fonction de la configuration de vos associations, vous feriez encore mieux de remplacer le bit Audit.create par ceci:
current_user.audits.create({
:controller => controller,
:action => action,
:params => local_params
})
Création de la portée via les associations ActiveRecord == meilleure pratique