mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-10 23:25:31 +08:00
Fix user assignment creation for new objects [SCI-12187]
This commit is contained in:
parent
1f08b80513
commit
9c58856e1b
2 changed files with 11 additions and 6 deletions
|
@ -53,8 +53,12 @@ module Assignable
|
|||
false
|
||||
end
|
||||
|
||||
def role_for_user(user)
|
||||
user_assignments.find_by(user: user)&.user_role
|
||||
def role_for_user(user, team)
|
||||
user_assignments.find_by(user: user, team: team)&.user_role ||
|
||||
user_group_assignments.joins(user_group: :user_group_memberships)
|
||||
.where(team: team, user_groups: { user_group_memberships: { user_id: user.id } })
|
||||
.last&.user_role ||
|
||||
team_assignments.find_by(team: team)&.user_role
|
||||
end
|
||||
|
||||
def manually_assigned_users
|
||||
|
@ -116,7 +120,7 @@ module Assignable
|
|||
role = if top_level_assignable?
|
||||
UserRole.find_predefined_owner_role
|
||||
else
|
||||
permission_parent.user_assignments.find_by(user: created_by).user_role
|
||||
permission_parent.role_for_user(created_by, team)
|
||||
end
|
||||
|
||||
UserAssignment.create!(
|
||||
|
|
|
@ -12,7 +12,7 @@ describe Experiments::MoveToProjectService do
|
|||
create :project, team: team, created_by: user
|
||||
end
|
||||
let(:experiment) do
|
||||
create :experiment, :with_tasks, name: 'MyExp', project: project
|
||||
create :experiment, :with_tasks, name: 'MyExp', project: project, created_by: user
|
||||
end
|
||||
let(:service_call) do
|
||||
Experiments::MoveToProjectService.call(experiment_id: experiment.id,
|
||||
|
@ -95,8 +95,9 @@ describe Experiments::MoveToProjectService do
|
|||
end
|
||||
|
||||
it 'returns error if teams is not the same' do
|
||||
t = create :team
|
||||
project.update(team: t)
|
||||
another_team = create :team
|
||||
wrong_project = create :project, team: another_team
|
||||
service_call = Experiments::MoveToProjectService.call(experiment_id: experiment.id, project_id: wrong_project.id, user_id: user.id)
|
||||
|
||||
expect(service_call.errors).to have_key(:target_project_not_valid)
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue