26 lines
581 B
Ruby
26 lines
581 B
Ruby
|
|
class AdminActivity < ApplicationRecord
|
||
|
|
belongs_to :admin
|
||
|
|
belongs_to :target, polymorphic: true
|
||
|
|
|
||
|
|
validates_presence_of :admin_id
|
||
|
|
|
||
|
|
delegate :login, to: :admin, prefix: true
|
||
|
|
|
||
|
|
def self.log_action(admin, target, options={})
|
||
|
|
self.create do |activity|
|
||
|
|
activity.admin = admin
|
||
|
|
activity.target = target
|
||
|
|
activity.action = options[:action]
|
||
|
|
activity.summary = options[:summary]
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
def target_name
|
||
|
|
if target.is_a?(Pseud)
|
||
|
|
"Pseud #{target.name} (#{target&.user&.login})"
|
||
|
|
else
|
||
|
|
"#{target_type} #{target_id}"
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|