summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2007-11-24 15:14:32 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2007-11-24 15:14:32 +0000
commitf80f04e379a8e0eef1bd72432c6a252d3559a9c6 (patch)
treeee2eb61aac3384bfb768e46fbcd4c79c505f1258
parentfde4a42e2aa5327c81d159d5f79026e5d0246c08 (diff)
downloadredmine-f80f04e379a8e0eef1bd72432c6a252d3559a9c6.tar.gz
redmine-f80f04e379a8e0eef1bd72432c6a252d3559a9c6.zip
Slight optimization in User#role_for_project.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@928 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/user.rb16
1 files changed, 9 insertions, 7 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index 5297b31b0..37512fda0 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -178,14 +178,16 @@ class User < ActiveRecord::Base
def role_for_project(project)
# No role on archived projects
return nil unless project && project.active?
- # Find project membership
- membership = memberships.detect {|m| m.project_id == project.id}
- if membership
- membership.role
- elsif logged?
- Role.non_member
+ if logged?
+ # Find project membership
+ membership = memberships.detect {|m| m.project_id == project.id}
+ if membership
+ membership.role
+ else
+ @role_non_member ||= Role.non_member
+ end
else
- Role.anonymous
+ @role_anonymous ||= Role.anonymous
end
end