Merge pull request #3693 from artoscinote/ma_SCI_6292

Make all except public project assignments manual [SCI-6292]
This commit is contained in:
Alex Kriuchykhin 2021-11-23 11:00:03 +01:00 committed by GitHub
commit 5bb26ae6fa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 10 deletions

View file

@ -41,7 +41,7 @@ module Assignable
def create_users_assignments
return if skip_user_assignments
role = if self.class == Project
role = if is_a?(Project)
UserRole.find_by(name: I18n.t('user_roles.predefined.owner'))
else
permission_parent.user_assignments.find_by(user: created_by).user_role
@ -50,7 +50,7 @@ module Assignable
UserAssignment.create!(
user: created_by,
assignable: self,
assigned: :automatically,
assigned: is_a?(Project) ? :manually : :automatically,
user_role: role
)

View file

@ -30,11 +30,11 @@ class MigrateToNewUserRoles < ActiveRecord::Migration[6.1]
private
def new_user_assignment(user, assignable, user_role)
def new_user_assignment(user, assignable, user_role, assigned)
UserAssignment.new(
user: user,
assignable: assignable,
assigned: :automatically,
assigned: assigned,
user_role: user_role
)
end
@ -52,11 +52,11 @@ class MigrateToNewUserRoles < ActiveRecord::Migration[6.1]
unassigned_users = team.users.reject { |u| already_assigned_user_ids.include?(u.id) }
unassigned_users.each do |user|
user_assignments << new_user_assignment(user, project, viewer_role)
user_assignments << new_user_assignment(user, project, viewer_role, :automatically)
project.experiments.each do |experiment|
user_assignments << new_user_assignment(user, experiment, viewer_role)
user_assignments << new_user_assignment(user, experiment, viewer_role, :automatically)
experiment.my_modules.each do |my_module|
user_assignments << new_user_assignment(user, my_module, viewer_role)
user_assignments << new_user_assignment(user, my_module, viewer_role, :automatically)
end
end
end
@ -69,11 +69,11 @@ class MigrateToNewUserRoles < ActiveRecord::Migration[6.1]
user_projects.includes(:user, :project).find_in_batches(batch_size: 100) do |user_project_batch|
user_assignments = []
user_project_batch.each do |user_project|
user_assignments << new_user_assignment(user_project.user, user_project.project, user_role)
user_assignments << new_user_assignment(user_project.user, user_project.project, user_role, :manually)
user_project.project.experiments.preload(:my_modules).each do |experiment|
user_assignments << new_user_assignment(user_project.user, experiment, user_role)
user_assignments << new_user_assignment(user_project.user, experiment, user_role, :automatically)
experiment.my_modules.each do |my_module|
user_assignments << new_user_assignment(user_project.user, my_module, user_role)
user_assignments << new_user_assignment(user_project.user, my_module, user_role, :automatically)
end
end
end