2011-10-14 21:45:58 +01:00
|
|
|
class EventLog < ActiveRecord::Base
|
|
|
|
belongs_to :user
|
|
|
|
belongs_to :object, :polymorphic => true
|
|
|
|
|
|
|
|
# self.per_page = 1
|
|
|
|
|
|
|
|
scope :eager_loading, preload(:user)
|
|
|
|
scope :default_order, order('id DESC') # order('created_at DESC')
|
|
|
|
|
|
|
|
before_create do
|
2011-10-21 18:17:49 +01:00
|
|
|
self.user_name = user.try(:uname) || 'guest'
|
2011-10-14 21:45:58 +01:00
|
|
|
self.object_name ||= object.name if object.respond_to?(:name)
|
|
|
|
end
|
|
|
|
# after_create { self.class.current_controller = nil }
|
|
|
|
|
|
|
|
class << self
|
|
|
|
def create_with_current_controller(attributes)
|
|
|
|
create(attributes) do |el|
|
|
|
|
el.user = current_controller.current_user
|
|
|
|
el.ip = current_controller.request.remote_ip
|
|
|
|
el.protocol = 'web' # TODO pass protocol through controller or calculate by name
|
|
|
|
el.controller = current_controller.class.to_s
|
|
|
|
el.action = current_controller.action_name
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def current_controller
|
|
|
|
Thread.current[:current_controller]
|
|
|
|
end
|
|
|
|
|
|
|
|
def current_controller=(ctrl)
|
|
|
|
Thread.current[:current_controller] = ctrl
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|