@@ -188,7 +188,11 class Project < ActiveRecord::Base | |||||
188 | unless options[:member] |
|
188 | unless options[:member] | |
189 | role = user.builtin_role |
|
189 | role = user.builtin_role | |
190 | if role.allowed_to?(permission) |
|
190 | if role.allowed_to?(permission) | |
191 |
s |
|
191 | s = "#{Project.table_name}.is_public = #{connection.quoted_true}" | |
|
192 | if user.id | |||
|
193 | s = "(#{s} AND #{Project.table_name}.id NOT IN (SELECT project_id FROM #{Member.table_name} WHERE user_id = #{user.id}))" | |||
|
194 | end | |||
|
195 | statement_by_role[role] = s | |||
192 | end |
|
196 | end | |
193 | end |
|
197 | end | |
194 | user.projects_by_role.each do |role, projects| |
|
198 | user.projects_by_role.each do |role, projects| |
@@ -310,6 +310,15 class IssueTest < ActiveSupport::TestCase | |||||
310 | assert_visibility_match user, issues |
|
310 | assert_visibility_match user, issues | |
311 | end |
|
311 | end | |
312 |
|
312 | |||
|
313 | def test_visible_scope_for_member_without_view_issues_permission_and_non_member_role_having_the_permission | |||
|
314 | Role.non_member.add_permission!(:view_issues) | |||
|
315 | Role.find(1).remove_permission!(:view_issues) | |||
|
316 | user = User.find(2) | |||
|
317 | ||||
|
318 | assert_equal 0, Issue.where(:project_id => 1).visible(user).count | |||
|
319 | assert_equal false, Issue.where(:project_id => 1).first.visible?(user) | |||
|
320 | end | |||
|
321 | ||||
313 | def test_visible_scope_for_member_with_groups_should_return_assigned_issues |
|
322 | def test_visible_scope_for_member_with_groups_should_return_assigned_issues | |
314 | user = User.find(8) |
|
323 | user = User.find(8) | |
315 | assert user.groups.any? |
|
324 | assert user.groups.any? |
General Comments 0
You need to be logged in to leave comments.
Login now