summaryrefslogtreecommitdiffstats
path: root/app/models/project.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-04-14 17:49:20 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-04-14 17:49:20 +0000
commit80e2eed70291d4ec81bc2e21e47a717bfaba1b1d (patch)
tree4c3262bdc9578b53f81e99d9eeff3e9bf1ffe056 /app/models/project.rb
parent5beef163780b5e2a0f39ff2d0475369fcd408100 (diff)
downloadredmine-80e2eed70291d4ec81bc2e21e47a717bfaba1b1d.tar.gz
redmine-80e2eed70291d4ec81bc2e21e47a717bfaba1b1d.zip
Code cleanup.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5459 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/project.rb')
-rw-r--r--app/models/project.rb13
1 files changed, 6 insertions, 7 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 6d1d8eae6..ab345be4f 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -157,19 +157,18 @@ class Project < ActiveRecord::Base
base_statement
else
statement_by_role = {}
- if user.logged?
- if Role.non_member.allowed_to?(permission) && !options[:member]
- statement_by_role[Role.non_member] = "#{Project.table_name}.is_public = #{connection.quoted_true}"
+ unless options[:member]
+ role = user.logged? ? Role.non_member : Role.anonymous
+ if role.allowed_to?(permission)
+ statement_by_role[role] = "#{Project.table_name}.is_public = #{connection.quoted_true}"
end
+ end
+ if user.logged?
user.projects_by_role.each do |role, projects|
if role.allowed_to?(permission)
statement_by_role[role] = "#{Project.table_name}.id IN (#{projects.collect(&:id).join(',')})"
end
end
- else
- if Role.anonymous.allowed_to?(permission) && !options[:member]
- statement_by_role[Role.anonymous] = "#{Project.table_name}.is_public = #{connection.quoted_true}"
- end
end
if statement_by_role.empty?
"1=0"