From 9e058af0a37ea83fc64f8ce599219af20636c0bb Mon Sep 17 00:00:00 2001 From: Alex Kriuchykhin Date: Fri, 21 Apr 2023 11:58:34 +0200 Subject: [PATCH 1/5] Fix default public user role assignment for projects [SCI-7969] (#5334) --- .../access_permissions/projects_controller.rb | 18 +++++++++--------- .../project_group_assignment_job.rb | 2 ++ app/models/project.rb | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/controllers/access_permissions/projects_controller.rb b/app/controllers/access_permissions/projects_controller.rb index ad2fd52d5..124b1fd45 100644 --- a/app/controllers/access_permissions/projects_controller.rb +++ b/app/controllers/access_permissions/projects_controller.rb @@ -70,7 +70,6 @@ module AccessPermissions @project.update!(visibility: :visible, default_public_user_role_id: user_assignment_params[:user_role_id]) log_activity(:change_project_visibility, { visibility: t('projects.activity.visibility_visible') }) else - user_assignment = UserAssignment.find_or_initialize_by( assignable: @project, user_id: user_assignment_params[:user_id], @@ -137,18 +136,19 @@ module AccessPermissions def update_default_public_user_role Project.transaction do - @project.visibility = :hidden if permitted_default_public_user_role_params[:default_public_user_role_id].blank? - @project.assign_attributes(permitted_default_public_user_role_params) - @project.save! - - UserAssignments::ProjectGroupAssignmentJob.perform_later(current_team, @project, current_user) - - # revoke all team members access + @project.visibility_will_change! + @project.last_modified_by = current_user if permitted_default_public_user_role_params[:default_public_user_role_id].blank? + # revoke all team members access + @project.visibility = :hidden + @project.save! log_activity(:change_project_visibility, { visibility: t('projects.activity.visibility_hidden') }) - render json: { flash: t('access_permissions.update.revoke_all_team_members') }, status: :ok + render json: { flash: t('access_permissions.update.revoke_all_team_members') } else # update all team members access + @project.visibility = :visible + @project.assign_attributes(permitted_default_public_user_role_params) + @project.save! log_activity(:project_access_changed_all_team_members, { team: @project.team.id, role: @project.default_public_user_role&.name }) end diff --git a/app/jobs/user_assignments/project_group_assignment_job.rb b/app/jobs/user_assignments/project_group_assignment_job.rb index 1ce227a4d..437717562 100644 --- a/app/jobs/user_assignments/project_group_assignment_job.rb +++ b/app/jobs/user_assignments/project_group_assignment_job.rb @@ -8,6 +8,8 @@ module UserAssignments @team = team @assigned_by = assigned_by + return unless project.visible? + ActiveRecord::Base.transaction do team.users.where.not(id: assigned_by).find_each do |user| user_assignment = UserAssignment.find_or_initialize_by( diff --git a/app/models/project.rb b/app/models/project.rb index 6b8b4e73d..5730ab865 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -330,7 +330,7 @@ class Project < ApplicationRecord def auto_assign_project_members return if skip_user_assignments - UserAssignments::ProjectGroupAssignmentJob.perform_now( + UserAssignments::ProjectGroupAssignmentJob.perform_later( team, self, last_modified_by || created_by From 8eb7d9fa9d6f01a03f8e541806550f58ec02d970 Mon Sep 17 00:00:00 2001 From: ajugo Date: Fri, 21 Apr 2023 12:00:02 +0200 Subject: [PATCH 2/5] Fix docx report generation for step tables with unknown metadata [SCI-8353] (#5330) --- app/services/reports/docx/draw_step_table.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/reports/docx/draw_step_table.rb b/app/services/reports/docx/draw_step_table.rb index e7b53d1d5..968cf7673 100644 --- a/app/services/reports/docx/draw_step_table.rb +++ b/app/services/reports/docx/draw_step_table.rb @@ -7,8 +7,8 @@ module Reports::Docx::DrawStepTable obj = self @docx.p @docx.table JSON.parse(table.contents_utf_8)['data'], border_size: Constants::REPORT_DOCX_TABLE_BORDER_SIZE do - if table.metadata - table.metadata['cells'].each do |cell| + if table.metadata.present? + table.metadata['cells']&.each do |cell| data = cell[1] next unless data.present? && data['row'].present? && data['col'].present? && data['className'].present? From 7af146a5803f442c2d26a2e23af474ffd5f9b40a Mon Sep 17 00:00:00 2001 From: Martin Artnik Date: Fri, 21 Apr 2023 12:25:42 +0200 Subject: [PATCH 3/5] Fix team dropdown on automatic team change [SCI-8352] --- app/javascript/vue/navigation/top_menu.vue | 33 +++++++++++++++------- app/views/layouts/application.html.erb | 1 + 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/javascript/vue/navigation/top_menu.vue b/app/javascript/vue/navigation/top_menu.vue index 17f38ada2..15aa1fa60 100644 --- a/app/javascript/vue/navigation/top_menu.vue +++ b/app/javascript/vue/navigation/top_menu.vue @@ -8,7 +8,7 @@