Merged r11508 from trunk (#13301).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.3-stable@11516 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang committed 2013-03-01 16:22:02 +00:00
1 parent b0fa5e7305
commit 33ef9fbe29
2 files changed
+39 -1

No files matched your search

+13 -1
View File
@@ -131,6 +131,7 @@ class User < Principal
def reload(*args)
@name = nil
@projects_by_role = nil
@membership_by_project_id = nil
super
end
@@ -415,6 +416,17 @@ class User < Principal
!logged?
end
# Returns user's membership for the given project
# or nil if the user is not a member of project
def membership(project)
project_id = project.is_a?(Project) ? project.id : project
@membership_by_project_id ||= Hash.new {|h, project_id|
h[project_id] = memberships.where(:project_id => project_id).first
}
@membership_by_project_id[project_id]
end
# Return user's roles for project
def roles_for_project(project)
roles = []
@@ -422,7 +434,7 @@ class User < Principal
return roles if project.nil? || project.archived?
if logged?
# Find project membership
membership = memberships.detect {|m| m.project_id == project.id}
membership = membership(project)
if membership
roles = membership.roles
else