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