]> source.dussan.org Git - redmine.git/commitdiff
Code cleanup.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 14 Apr 2011 17:49:20 +0000 (17:49 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 14 Apr 2011 17:49:20 +0000 (17:49 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5459 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/project.rb

index 6d1d8eae62acc61a11925373afddde19ee17aa92..ab345be4fd7393415b92f9f2cbda9ce8d663fbdd 100644 (file)
@@ -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"