Commit 10eab96c5d6345f794dd9d4dbf5ec988f1adad8b
1 parent
bbb067b5
Exists in
master
and in
29 other branches
Any community members can edit - backend
(ActionItem2345)
Showing
3 changed files
with
33 additions
and
4 deletions
Show diff stats
app/models/article.rb
... | ... | @@ -26,6 +26,7 @@ class Article < ActiveRecord::Base |
26 | 26 | |
27 | 27 | settings_items :display_hits, :type => :boolean, :default => true |
28 | 28 | settings_items :author_name, :type => :string, :default => "" |
29 | + settings_items :allow_members_to_edit, :type => :boolean, :default => false | |
29 | 30 | |
30 | 31 | belongs_to :reference_article, :class_name => "Article", :foreign_key => 'reference_article_id' |
31 | 32 | |
... | ... | @@ -410,12 +411,15 @@ class Article < ActiveRecord::Base |
410 | 411 | |
411 | 412 | alias :allow_delete? :allow_post_content? |
412 | 413 | alias :allow_spread? :allow_post_content? |
413 | - alias :allow_edit? :allow_post_content? | |
414 | 414 | |
415 | 415 | def allow_create?(user) |
416 | 416 | allow_post_content?(user) || allow_publish_content?(user) |
417 | 417 | end |
418 | 418 | |
419 | + def allow_edit?(user) | |
420 | + allow_post_content?(user) || allow_members_to_edit && user.is_member_of?(profile) | |
421 | + end | |
422 | + | |
419 | 423 | def comments_updated |
420 | 424 | ferret_update |
421 | 425 | end | ... | ... |
test/fixtures/roles.yml
test/unit/article_test.rb
... | ... | @@ -1638,4 +1638,31 @@ class ArticleTest < ActiveSupport::TestCase |
1638 | 1638 | assert_equal [c1,c2,c5], Article.text_articles |
1639 | 1639 | end |
1640 | 1640 | |
1641 | + should 'not allow all community members to edit by default' do | |
1642 | + community = fast_create(Community) | |
1643 | + admin = create_user('community-admin').person | |
1644 | + member = create_user.person | |
1645 | + | |
1646 | + community.add_admin(admin) | |
1647 | + community.add_member(member) | |
1648 | + a = Article.new(:profile => community) | |
1649 | + | |
1650 | + assert_equal false, a.allow_members_to_edit | |
1651 | + assert_equal false, a.allow_edit?(member) | |
1652 | + end | |
1653 | + | |
1654 | + should 'be able to allow all members of a community to edit' do | |
1655 | + community = fast_create(Community) | |
1656 | + admin = create_user('community-admin').person | |
1657 | + member = create_user.person | |
1658 | + | |
1659 | + community.add_admin(admin) | |
1660 | + community.add_member(member) | |
1661 | + a = Article.new(:profile => community) | |
1662 | + | |
1663 | + a.allow_members_to_edit = true | |
1664 | + | |
1665 | + assert_equal true, a.allow_edit?(member) | |
1666 | + end | |
1667 | + | |
1641 | 1668 | end | ... | ... |