otwarchive-symphonyarchive/app/models/roles_user.rb

39 lines
1.1 KiB
Ruby
Raw Normal View History

2026-03-11 22:22:11 +00:00
class RolesUser < ApplicationRecord
belongs_to :user
belongs_to :role
delegate :enqueue_to_index, to: :user
after_create :log_role_addition
after_create :enqueue_to_index
after_destroy :log_role_removal
after_destroy :destroy_last_wrangling_activity
after_destroy :enqueue_to_index
def log_role_addition
admin = User.current_user
note = "Change made by #{admin&.login}"
user.create_log_item({ admin_id: admin&.id,
action: ArchiveConfig.ACTION_ADD_ROLE,
note: note,
role_id: role_id })
end
def log_role_removal
admin = User.current_user
note = "Change made by #{admin&.login}"
user.create_log_item({ admin_id: admin&.id,
action: ArchiveConfig.ACTION_REMOVE_ROLE,
note: note,
role_id: role_id })
end
# After removing the tag_wrangler role, remove the
# user's last wrangling activity as well.
def destroy_last_wrangling_activity
return unless role.name == "tag_wrangler"
user.last_wrangling_activity&.destroy
end
end