Defect #28765 » 0001-do-not-propose-locked-watchers-when-copying-an-issue.patch
| app/helpers/issues_helper.rb | ||
|---|---|---|
| 312 | 312 |
# Returns an array of users that are proposed as watchers |
| 313 | 313 |
# on the new issue form |
| 314 | 314 |
def users_for_new_issue_watchers(issue) |
| 315 |
users = issue.watcher_users |
|
| 315 |
users = issue.watcher_users.select{|u| u.status == User::STATUS_ACTIVE}
|
|
| 316 | 316 |
if issue.project.users.count <= 20 |
| 317 | 317 |
users = (users + issue.project.users.sort).uniq |
| 318 | 318 |
end |
| test/functional/issues_controller_test.rb | ||
|---|---|---|
| 3916 | 3916 |
assert_select 'input[type=hidden][name=?][value=?]', 'issue[watcher_user_ids][]', '', 1 |
| 3917 | 3917 |
end |
| 3918 | 3918 | |
| 3919 |
def test_new_as_copy_should_not_propose_locked_watchers |
|
| 3920 |
@request.session[:user_id] = 2 |
|
| 3921 | ||
| 3922 |
issue = Issue.find(1) |
|
| 3923 |
user = User.generate! |
|
| 3924 |
user2 = User.generate! |
|
| 3925 | ||
| 3926 |
Watcher.create!(:watchable => issue, :user => user) |
|
| 3927 |
Watcher.create!(:watchable => issue, :user => user2) |
|
| 3928 | ||
| 3929 |
user2.status = User::STATUS_LOCKED |
|
| 3930 |
user2.save! |
|
| 3931 |
get :new, :params => {
|
|
| 3932 |
:project_id => 1, |
|
| 3933 |
:copy_from => 1 |
|
| 3934 |
} |
|
| 3935 | ||
| 3936 |
assert_select 'input[type=checkbox][name=?][checked=checked]', 'issue[watcher_user_ids][]', 1 |
|
| 3937 |
assert_select 'input[type=checkbox][name=?][checked=checked][value=?]', 'issue[watcher_user_ids][]', user.id.to_s |
|
| 3938 |
assert_select 'input[type=checkbox][name=?][checked=checked][value=?]', 'issue[watcher_user_ids][]', user2.id.to_s, 0 |
|
| 3939 |
assert_select 'input[type=hidden][name=?][value=?]', 'issue[watcher_user_ids][]', '', 1 |
|
| 3940 |
end |
|
| 3941 | ||
| 3919 | 3942 |
def test_new_as_copy_with_invalid_issue_should_respond_with_404 |
| 3920 | 3943 |
@request.session[:user_id] = 2 |
| 3921 | 3944 |
get :new, :params => {
|