Commit f309c8f791e6ba4c8fabcbce9dd2e89635f81d98
Committed by
Rodrigo Souto
1 parent
7e6f215a
Exists in
master
and in
28 other branches
topic-forum: allow the author to edit and delete your own topic
AI3135
Showing
2 changed files
with
16 additions
and
0 deletions
Show diff stats
app/models/article.rb
... | ... | @@ -489,6 +489,7 @@ class Article < ActiveRecord::Base |
489 | 489 | end |
490 | 490 | |
491 | 491 | def allow_post_content?(user = nil) |
492 | + return true if allow_edit_topic?(user) | |
492 | 493 | user && (user.has_permission?('post_content', profile) || allow_publish_content?(user) && (user == author)) |
493 | 494 | end |
494 | 495 | |
... | ... | @@ -508,9 +509,14 @@ class Article < ActiveRecord::Base |
508 | 509 | end |
509 | 510 | |
510 | 511 | def allow_edit?(user) |
512 | + return true if allow_edit_topic?(user) | |
511 | 513 | allow_post_content?(user) || user && allow_members_to_edit && user.is_member_of?(profile) |
512 | 514 | end |
513 | 515 | |
516 | + def allow_edit_topic?(user) | |
517 | + self.belongs_to_forum? && (user == author) && user.is_member_of?(profile) | |
518 | + end | |
519 | + | |
514 | 520 | def moderate_comments? |
515 | 521 | moderate_comments == true |
516 | 522 | end | ... | ... |
test/unit/article_test.rb
... | ... | @@ -1660,6 +1660,16 @@ class ArticleTest < ActiveSupport::TestCase |
1660 | 1660 | a.allow_members_to_edit = true |
1661 | 1661 | assert !a.allow_edit?(nil) |
1662 | 1662 | end |
1663 | + | |
1664 | + should 'allow author to edit topic' do | |
1665 | + community = fast_create(Community) | |
1666 | + author = fast_create(Person) | |
1667 | + community.add_member(author) | |
1668 | + forum = Forum.create(:profile => community, :name => 'Forum test', :body => 'Forum test') | |
1669 | + post = fast_create(TextileArticle, :name => 'First post', :profile_id => community.id, :parent_id => forum.id, :last_changed_by_id => author.id) | |
1670 | + | |
1671 | + assert post.allow_edit?(author) | |
1672 | + end | |
1663 | 1673 | |
1664 | 1674 | should 'has a empty list of followers by default' do |
1665 | 1675 | a = Article.new | ... | ... |