Do not build a projects_by_role Hash that gets updated when accessing a key that is not present (#11662).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10242 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2012-08-27 10:11:20 +00:00
parent 50506ef621
commit d33fa1f8c8
2 changed files with 13 additions and 3 deletions
+6 -3
View File
@@ -418,10 +418,13 @@ class User < Principal
def projects_by_role
return @projects_by_role if @projects_by_role
@projects_by_role = Hash.new {|h,k| h[k]=[]}
@projects_by_role = Hash.new([])
memberships.each do |membership|
membership.roles.each do |role|
@projects_by_role[role] << membership.project if membership.project
if membership.project
membership.roles.each do |role|
@projects_by_role[role] = [] unless @projects_by_role.key?(role)
@projects_by_role[role] << membership.project
end
end
end
@projects_by_role.each do |role, projects|