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,6 +26,7 @@ class Article < ActiveRecord::Base | ||
| 26 | 26 | ||
| 27 | settings_items :display_hits, :type => :boolean, :default => true | 27 | settings_items :display_hits, :type => :boolean, :default => true |
| 28 | settings_items :author_name, :type => :string, :default => "" | 28 | settings_items :author_name, :type => :string, :default => "" |
| 29 | + settings_items :allow_members_to_edit, :type => :boolean, :default => false | ||
| 29 | 30 | ||
| 30 | belongs_to :reference_article, :class_name => "Article", :foreign_key => 'reference_article_id' | 31 | belongs_to :reference_article, :class_name => "Article", :foreign_key => 'reference_article_id' |
| 31 | 32 | ||
| @@ -410,12 +411,15 @@ class Article < ActiveRecord::Base | @@ -410,12 +411,15 @@ class Article < ActiveRecord::Base | ||
| 410 | 411 | ||
| 411 | alias :allow_delete? :allow_post_content? | 412 | alias :allow_delete? :allow_post_content? |
| 412 | alias :allow_spread? :allow_post_content? | 413 | alias :allow_spread? :allow_post_content? |
| 413 | - alias :allow_edit? :allow_post_content? | ||
| 414 | 414 | ||
| 415 | def allow_create?(user) | 415 | def allow_create?(user) |
| 416 | allow_post_content?(user) || allow_publish_content?(user) | 416 | allow_post_content?(user) || allow_publish_content?(user) |
| 417 | end | 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 | def comments_updated | 423 | def comments_updated |
| 420 | ferret_update | 424 | ferret_update |
| 421 | end | 425 | end |
test/fixtures/roles.yml
| @@ -58,9 +58,7 @@ profile_member: | @@ -58,9 +58,7 @@ profile_member: | ||
| 58 | name: 'Profile Member' | 58 | name: 'Profile Member' |
| 59 | system: true | 59 | system: true |
| 60 | permissions: | 60 | permissions: |
| 61 | - - edit_profile | ||
| 62 | - - post_content | ||
| 63 | - - manage_products | 61 | + - invite_members |
| 64 | profile_moderator: | 62 | profile_moderator: |
| 65 | id: 7 | 63 | id: 7 |
| 66 | environment_id: 1 | 64 | environment_id: 1 |
test/unit/article_test.rb
| @@ -1638,4 +1638,31 @@ class ArticleTest < ActiveSupport::TestCase | @@ -1638,4 +1638,31 @@ class ArticleTest < ActiveSupport::TestCase | ||
| 1638 | assert_equal [c1,c2,c5], Article.text_articles | 1638 | assert_equal [c1,c2,c5], Article.text_articles |
| 1639 | end | 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 | end | 1668 | end |