Merge pull request #288 from Ducz0r/lm-sci-675-fix

Fix a bug where user could be assigned to same project twice [SCI-675]
This commit is contained in:
Luka Murn 2016-11-16 10:34:37 +01:00 committed by GitHub
commit e4b3d397a0

View file

@ -29,9 +29,15 @@ class UserOrganization < ActiveRecord::Base
# If any project of the organization has the sole owner and that
# owner is the user to be removed from the organization, then we must
# create a new owner of the project (the provided user).
organization.projects.each do |project|
organization.projects.find_each do |project|
owners = project.user_projects.where(role: 0)
if owners.count == 1 && owners.first.user == user
if project.users.exists?(new_owner.id)
# If the new owner is already assigned onto project,
# update its role
project.user_projects.find_by(user: new_owner).update(role: 0)
else
# Else, create a new association
UserProject.create(
user: new_owner,
project: project,
@ -40,6 +46,7 @@ class UserOrganization < ActiveRecord::Base
)
end
end
end
# Also, make new owner author of all protocols that belong
# to the departing user.