mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-03-06 12:43:06 +08:00
Skip create assignments during team import [SCI-6280] (#3679)
Co-authored-by: Anton <anton@scinote.net>
This commit is contained in:
parent
21c97027c1
commit
06577e2f8b
3 changed files with 18 additions and 5 deletions
|
@ -6,6 +6,8 @@ module Assignable
|
|||
included do
|
||||
include Canaid::Helpers::PermissionsHelper
|
||||
|
||||
attr_accessor :skip_user_assignments
|
||||
|
||||
has_many :user_assignments, as: :assignable, dependent: :destroy
|
||||
|
||||
default_scope { includes(user_assignments: :user_role).distinct }
|
||||
|
@ -28,7 +30,17 @@ module Assignable
|
|||
.where('? = ANY(user_roles.permissions)', permission)
|
||||
}
|
||||
|
||||
after_create do
|
||||
after_create :create_users_assignments
|
||||
|
||||
def role_for_user(user)
|
||||
user_assignments.find_by(user: user)&.user_role
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def create_users_assignments
|
||||
return if skip_user_assignments
|
||||
|
||||
role = if self.class == Project
|
||||
UserRole.find_by(name: I18n.t('user_roles.predefined.owner'))
|
||||
else
|
||||
|
@ -44,9 +56,5 @@ module Assignable
|
|||
|
||||
UserAssignments::GenerateUserAssignmentsJob.perform_later(self, created_by)
|
||||
end
|
||||
|
||||
def role_for_user(user)
|
||||
user_assignments.find_by(user: user)&.user_role
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -319,6 +319,8 @@ class Project < ApplicationRecord
|
|||
end
|
||||
|
||||
def auto_assign_project_members
|
||||
return if skip_user_assignments
|
||||
|
||||
UserAssignments::GroupAssignmentJob.perform_now(
|
||||
team,
|
||||
self,
|
||||
|
|
|
@ -576,6 +576,7 @@ class TeamImporter
|
|||
project.last_modified_by_id = find_user(project.last_modified_by_id)
|
||||
project.archived_by_id = find_user(project.archived_by_id)
|
||||
project.restored_by_id = find_user(project.restored_by_id)
|
||||
project.skip_user_assignments = true
|
||||
project.project_folder_id = @project_folder_mappings[project.project_folder_id]
|
||||
project.save!
|
||||
@project_mappings[orig_project_id] = project.id
|
||||
|
@ -635,6 +636,7 @@ class TeamImporter
|
|||
user_id || find_user(experiment.last_modified_by_id)
|
||||
experiment.archived_by_id = find_user(experiment.archived_by_id)
|
||||
experiment.restored_by_id = find_user(experiment.restored_by_id)
|
||||
experiment.skip_user_assignments = true
|
||||
experiment.save!
|
||||
@experiment_mappings[orig_experiment_id] = experiment.id
|
||||
|
||||
|
@ -669,6 +671,7 @@ class TeamImporter
|
|||
my_module.archived_by_id = find_user(my_module.archived_by_id)
|
||||
my_module.restored_by_id = find_user(my_module.restored_by_id)
|
||||
my_module.experiment = experiment
|
||||
my_module.skip_user_assignments = true
|
||||
|
||||
# Find matching status from default flow
|
||||
default_flow = MyModuleStatusFlow.global.first
|
||||
|
|
Loading…
Reference in a new issue