@@ -1436,6 +1436,11 class Issue < ActiveRecord::Base | |||||
1436 | private |
|
1436 | private | |
1437 |
|
1437 | |||
1438 | def user_tracker_permission?(user, permission) |
|
1438 | def user_tracker_permission?(user, permission) | |
|
1439 | if project && !project.active? | |||
|
1440 | perm = Redmine::AccessControl.permission(permission) | |||
|
1441 | return false unless perm && perm.read? | |||
|
1442 | end | |||
|
1443 | ||||
1439 | if user.admin? |
|
1444 | if user.admin? | |
1440 | true |
|
1445 | true | |
1441 | else |
|
1446 | else |
@@ -1679,6 +1679,25 class IssuesControllerTest < Redmine::ControllerTest | |||||
1679 | assert_response 404 |
|
1679 | assert_response 404 | |
1680 | end |
|
1680 | end | |
1681 |
|
1681 | |||
|
1682 | def test_show_on_active_project_should_display_edit_links | |||
|
1683 | @request.session[:user_id] = 1 | |||
|
1684 | ||||
|
1685 | get :show, :id => 1 | |||
|
1686 | assert_response :success | |||
|
1687 | assert_select 'a', :text => 'Edit' | |||
|
1688 | assert_select 'a', :text => 'Delete' | |||
|
1689 | end | |||
|
1690 | ||||
|
1691 | def test_show_on_closed_project_should_not_display_edit_links | |||
|
1692 | Issue.find(1).project.close | |||
|
1693 | @request.session[:user_id] = 1 | |||
|
1694 | ||||
|
1695 | get :show, :id => 1 | |||
|
1696 | assert_response :success | |||
|
1697 | assert_select 'a', :text => 'Edit', :count => 0 | |||
|
1698 | assert_select 'a', :text => 'Delete', :count => 0 | |||
|
1699 | end | |||
|
1700 | ||||
1682 | def test_get_new |
|
1701 | def test_get_new | |
1683 | @request.session[:user_id] = 2 |
|
1702 | @request.session[:user_id] = 2 | |
1684 | get :new, :project_id => 1, :tracker_id => 1 |
|
1703 | get :new, :project_id => 1, :tracker_id => 1 |
@@ -519,6 +519,22 class IssueTest < ActiveSupport::TestCase | |||||
519 | assert_equal [issue], Issue.assigned_to(user).to_a |
|
519 | assert_equal [issue], Issue.assigned_to(user).to_a | |
520 | end |
|
520 | end | |
521 |
|
521 | |||
|
522 | def test_issue_should_be_readonly_on_closed_project | |||
|
523 | issue = Issue.find(1) | |||
|
524 | user = User.find(1) | |||
|
525 | ||||
|
526 | assert_equal true, issue.visible?(user) | |||
|
527 | assert_equal true, issue.editable?(user) | |||
|
528 | assert_equal true, issue.deletable?(user) | |||
|
529 | ||||
|
530 | issue.project.close | |||
|
531 | issue.reload | |||
|
532 | ||||
|
533 | assert_equal true, issue.visible?(user) | |||
|
534 | assert_equal false, issue.editable?(user) | |||
|
535 | assert_equal false, issue.deletable?(user) | |||
|
536 | end | |||
|
537 | ||||
522 | def test_errors_full_messages_should_include_custom_fields_errors |
|
538 | def test_errors_full_messages_should_include_custom_fields_errors | |
523 | field = IssueCustomField.find_by_name('Database') |
|
539 | field = IssueCustomField.find_by_name('Database') | |
524 |
|
540 |
General Comments 0
You need to be logged in to leave comments.
Login now