diff --git a/app/assets/javascripts/discourse/controllers/topic_controller.js.coffee b/app/assets/javascripts/discourse/controllers/topic_controller.js.coffee index cd8101f27..43c4a9b23 100644 --- a/app/assets/javascripts/discourse/controllers/topic_controller.js.coffee +++ b/app/assets/javascripts/discourse/controllers/topic_controller.js.coffee @@ -304,10 +304,12 @@ Discourse.TopicController = Ember.ObjectController.extend Discourse.Presence, post.recover() deletePost: (post) -> - if post.get('user_id') is Discourse.get('currentUser.id') + # Moderators can delete posts. Regular users can only create a deleted at message. + if Discourse.get('currentUser.moderator') + post.set('deleted_at', new Date()) + else post.set('cooked', Discourse.Utilities.cook(Em.String.i18n("post.deleted_by_author"))) post.set('can_delete', false) - else - post.set('deleted_at', new Date()) + post.set('version', post.get('version') + 1) post.delete() diff --git a/app/serializers/current_user_serializer.rb b/app/serializers/current_user_serializer.rb index 7e424c366..c74965865 100644 --- a/app/serializers/current_user_serializer.rb +++ b/app/serializers/current_user_serializer.rb @@ -1,6 +1,12 @@ class CurrentUserSerializer < BasicUserSerializer - attributes :name, :unread_notifications, :unread_private_messages, :admin, :notification_channel_position, :site_flagged_posts_count + attributes :name, + :unread_notifications, + :unread_private_messages, + :admin?, + :notification_channel_position, + :site_flagged_posts_count, + :moderator? # we probably want to move this into site, but that json is cached so hanging it off current user seems okish @@ -8,6 +14,10 @@ class CurrentUserSerializer < BasicUserSerializer object.admin end + def moderator? + object.has_trust_level?(:moderator) + end + def site_flagged_posts_count PostAction.flagged_posts_count end