You are here: Home > Latest news from Darcs > Moves user.can_edit?(page) method to page.editable_by?(user)

Revision 20080415225807-9043f-35034b...

Moves user.can_edit?(page) method to page.editable_by?(user)

app/models/page.rb
app/models/user.rb
test/unit/page_test.rb
test/unit/user_test.rb

Changes to page.rb

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

Changes to user.rb

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

Changes to page_test.rb

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

Changes to user_test.rb

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