@@ -157,19 +157,18 class Project < ActiveRecord::Base | |||
|
157 | 157 | base_statement |
|
158 | 158 | else |
|
159 | 159 | statement_by_role = {} |
|
160 | if user.logged? | |
|
161 | if Role.non_member.allowed_to?(permission) && !options[:member] | |
|
162 | statement_by_role[Role.non_member] = "#{Project.table_name}.is_public = #{connection.quoted_true}" | |
|
160 | unless options[:member] | |
|
161 | role = user.logged? ? Role.non_member : Role.anonymous | |
|
162 | if role.allowed_to?(permission) | |
|
163 | statement_by_role[role] = "#{Project.table_name}.is_public = #{connection.quoted_true}" | |
|
163 | 164 | end |
|
165 | end | |
|
166 | if user.logged? | |
|
164 | 167 | user.projects_by_role.each do |role, projects| |
|
165 | 168 | if role.allowed_to?(permission) |
|
166 | 169 | statement_by_role[role] = "#{Project.table_name}.id IN (#{projects.collect(&:id).join(',')})" |
|
167 | 170 | end |
|
168 | 171 | end |
|
169 | else | |
|
170 | if Role.anonymous.allowed_to?(permission) && !options[:member] | |
|
171 | statement_by_role[Role.anonymous] = "#{Project.table_name}.is_public = #{connection.quoted_true}" | |
|
172 | end | |
|
173 | 172 | end |
|
174 | 173 | if statement_by_role.empty? |
|
175 | 174 | "1=0" |
General Comments 0
You need to be logged in to leave comments.
Login now