Commit f309c8f791e6ba4c8fabcbce9dd2e89635f81d98
Committed by
Rodrigo Souto
1 parent
7e6f215a
Exists in
master
and in
29 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 | ... | ... |