2021-06-06 15:54:47 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Assignable
|
|
|
|
extend ActiveSupport::Concern
|
|
|
|
|
|
|
|
included do
|
|
|
|
has_many :user_assignments, as: :assignable, dependent: :destroy
|
|
|
|
|
|
|
|
default_scope { includes(user_assignments: :user_role) }
|
|
|
|
|
|
|
|
after_create_commit do
|
2021-06-19 23:17:57 +08:00
|
|
|
UserAssignment.create(
|
|
|
|
user: created_by,
|
|
|
|
assignable: self,
|
2021-09-15 20:39:47 +08:00
|
|
|
user_role: UserRole.find_by(name: I18n.t('user_roles.predefined.owner'))
|
2021-06-19 23:17:57 +08:00
|
|
|
)
|
|
|
|
|
2021-06-06 15:54:47 +08:00
|
|
|
UserAssignments::GenerateUserAssignmentsJob.perform_later(self, created_by)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|