Moves user.can_edit?(page) method to page.editable_by?(user)
| 135 | :description => inject_title_into_text) | :description => inject_title_into_text) | 135 |
|---|---|---|---|
| 136 | end | end | 136 |
| 137 | 137 | ||
def editable_by?(user) | 138 | ||
user == original_author || | 139 | ||
is_open_to_all? || | 140 | ||
editors.split.include?(user.login) | 141 | ||
end | 142 | ||
| 143 | |||
| 138 | private | private | 144 |
| 139 | 145 | ||
| 140 | def update_references(input) | def update_references(input) | 146 |
| 35 | end | end | 35 |
|---|---|---|---|
| 36 | 36 | ||
| 37 | def can_edit?(page) | def can_edit?(page) | 37 |
| 38 | self == page.original_author || | page.editable_by?(self) | 38 |
| 39 | page.is_open_to_all? || | ||
| 40 | page.editors.split.include?(login) | ||
| 41 | end | end | 39 |
| 42 | 40 | ||
| 43 | def can_change_editors?(page) | def can_change_editors?(page) | 41 |
| 396 | assert_equal WIKI_NOT_FOUND_TEXT, refered_page.text | assert_equal WIKI_NOT_FOUND_TEXT, refered_page.text | 396 |
|---|---|---|---|
| 397 | end | end | 397 |
| 398 | 398 | ||
def test_pages_can_be_edited_by_the_latest_editors_only | 399 | ||
paul = User.new(:login => 'paul') | 400 | ||
| 401 | |||
page = revise_brand_new_page(:editors => 'bob') | 402 | ||
assert page.editable_by?(bob) | 403 | ||
assert !page.editable_by?(john) | 404 | ||
| 405 | |||
page.revise(bob, now, :editors => 'bob john paul') | 406 | ||
assert page.editable_by?(bob) | 407 | ||
assert page.editable_by?(john) | 408 | ||
assert page.editable_by?(paul) | 409 | ||
| 410 | |||
page.revise(bob, now, :editors => 'john') | 411 | ||
assert page.editable_by?(john) | 412 | ||
assert !page.editable_by?(paul) | 413 | ||
| 414 | |||
page.revise(bob, now, :editors => ' ') | 415 | ||
assert page.editable_by?(bob) | 416 | ||
assert page.editable_by?(john) | 417 | ||
assert page.editable_by?(paul) | 418 | ||
end | 419 | ||
| 420 | |||
def test_original_author_can_always_edit_page | 421 | ||
bobs_page = pages('bob_and_erics_page') | 422 | ||
| 423 | |||
bobs_page.revise(bob, now, :editors => 'john') | 424 | ||
assert bobs_page.editable_by?(john) | 425 | ||
assert bobs_page.editable_by?(bob) | 426 | ||
end | 427 | ||
| 428 | |||
| 399 | private | private | 429 |
| 400 | 430 | ||
| 401 | def create_page_with_one_revision | def create_page_with_one_revision | 431 |
| 21 | 21 | ||
|---|---|---|---|
| 22 | self.use_instantiated_fixtures = true | self.use_instantiated_fixtures = true | 22 |
| 23 | 23 | ||
| 24 | fixtures :users, :pages | ||
| 25 | |||
| 26 | def test_auth | def test_auth | 24 |
| 27 | |||
| 28 | assert_equal @bob, User.authenticate("bob", "test") | assert_equal @bob, User.authenticate("bob", "test") | 25 |
| 29 | assert_nil User.authenticate("nonbob", "test") | assert_nil User.authenticate("nonbob", "test") | 26 |
| 30 | |||
| 31 | end | end | 27 |
| 32 | 28 | ||
| 33 | def test_disallowed_passwords | def test_disallowed_passwords | 29 |
| 71 more lines | |||
| 105 | 101 | ||
| 106 | def test_page_edition_authorization | def test_page_edition_authorization | 102 |
| 107 | u = User.new(:login => 'john') | u = User.new(:login => 'john') | 103 |
| 108 | attrs = { :name => 'TestPage', :text => '' } | ||
| 109 | 104 | ||
| 110 | assert u.can_edit?(revise_brand_new_page(:editors => 'john')) | assert u.can_edit?(revise_brand_new_page(:editors => 'john')) | 105 |
assert u.can_edit?(revise_brand_new_page(:editors => 'eric john')) | 106 | ||
| 111 | assert !u.can_edit?(revise_brand_new_page(:editors => 'eric')) | assert !u.can_edit?(revise_brand_new_page(:editors => 'eric')) | 107 |
| 112 | assert u.can_edit?(revise_brand_new_page(:editors => ' ')) | assert u.can_edit?(revise_brand_new_page(:editors => ' ')) | 108 |
| 113 | end | end | 109 |