diff --git a/app/assets/javascripts/admin/templates/user_index.js.handlebars b/app/assets/javascripts/admin/templates/user_index.js.handlebars index 5a6ccc6c76e..952fd8f9477 100644 --- a/app/assets/javascripts/admin/templates/user_index.js.handlebars +++ b/app/assets/javascripts/admin/templates/user_index.js.handlebars @@ -354,10 +354,6 @@
{{i18n admin.user.posts_read_count}}
{{posts_read_count}}
-
-
{{i18n admin.user.warnings_received_count}}
-
{{warnings_received_count}}
-
{{i18n admin.user.flags_given_received_count}}
{{flags_given_count}} / {{flags_received_count}}
diff --git a/app/assets/javascripts/discourse/components/notification-item.js.es6 b/app/assets/javascripts/discourse/components/notification-item.js.es6 index 4942a90ca66..c587e12b6d0 100644 --- a/app/assets/javascripts/discourse/components/notification-item.js.es6 +++ b/app/assets/javascripts/discourse/components/notification-item.js.es6 @@ -1,6 +1,6 @@ export default Ember.Component.extend({ tagName: 'li', - classNameBindings: ['notification.read', 'notification.is_warning'], + classNameBindings: ['notification.read'], _markRead: function(){ var self = this; diff --git a/app/assets/javascripts/discourse/components/topic-status.js.es6 b/app/assets/javascripts/discourse/components/topic-status.js.es6 index fe99221da52..83ce68493ad 100644 --- a/app/assets/javascripts/discourse/components/topic-status.js.es6 +++ b/app/assets/javascripts/discourse/components/topic-status.js.es6 @@ -9,8 +9,8 @@ export default Ember.Component.extend({ classNames: ['topic-statuses'], - hasDisplayableStatus: Em.computed.or('topic.archived','topic.closed', 'topic.pinned', 'topic.unpinned', 'topic.invisible', 'topic.archetypeObject.notDefault', 'topic.is_warning'), - shouldRerender: Discourse.View.renderIfChanged('topic.archived', 'topic.closed', 'topic.pinned', 'topic.visible', 'topic.unpinned', 'topic.is_warning'), + hasDisplayableStatus: Em.computed.or('topic.archived','topic.closed', 'topic.pinned', 'topic.unpinned', 'topic.invisible', 'topic.archetypeObject.notDefault'), + shouldRerender: Discourse.View.renderIfChanged('topic.archived','topic.closed', 'topic.pinned', 'topic.visible', 'topic.unpinned'), didInsertElement: function(){ var self = this; @@ -52,7 +52,6 @@ export default Ember.Component.extend({ // Allow a plugin to add a custom icon to a topic this.trigger('addCustomIcon', buffer); - renderIconIf('topic.is_warning', 'envelope', 'warning'); renderIconIf('topic.closed', 'lock', 'locked'); renderIconIf('topic.archived', 'lock', 'archived'); renderIconIf('topic.pinned', 'thumb-tack', 'pinned', self.get("canAct") ); diff --git a/app/assets/javascripts/discourse/controllers/composer.js.es6 b/app/assets/javascripts/discourse/controllers/composer.js.es6 index 702df16a936..9567ba57ac1 100644 --- a/app/assets/javascripts/discourse/controllers/composer.js.es6 +++ b/app/assets/javascripts/discourse/controllers/composer.js.es6 @@ -15,16 +15,6 @@ export default DiscourseController.extend({ this.set('similarTopics', []); }.on('init'), - showWarning: function() { - var usernames = this.get('model.targetUsernames'); - - // We need exactly one user to issue a warning - if (Em.empty(usernames) || usernames.split(',').length !== 1) { - return false; - } - return this.get('model.creatingPrivateMessage'); - }.property('model.creatingPrivateMessage', 'model.targetUsernames'), - actions: { // Toggle the reply view toggle: function() { @@ -113,12 +103,6 @@ export default DiscourseController.extend({ var composer = this.get('model'), self = this; - - // Clear the warning state if we're not showing the checkbox anymore - if (!this.get('showWarning')) { - this.set('model.isWarning', false); - } - if(composer.get('cantSubmitPost')) { var now = Date.now(); this.setProperties({ @@ -361,7 +345,6 @@ export default DiscourseController.extend({ this.set('model', composerModel); composerModel.set('composeState', Discourse.Composer.OPEN); - composerModel.set('isWarning', false); var composerMessages = this.get('controllers.composer-messages'); composerMessages.queryFor(composerModel); diff --git a/app/assets/javascripts/discourse/controllers/header.js.es6 b/app/assets/javascripts/discourse/controllers/header.js.es6 index d7cebb23f01..8701149d922 100644 --- a/app/assets/javascripts/discourse/controllers/header.js.es6 +++ b/app/assets/javascripts/discourse/controllers/header.js.es6 @@ -10,10 +10,6 @@ export default DiscourseController.extend({ loginRequired: Em.computed.alias('controllers.application.loginRequired'), canSignUp: Em.computed.alias('controllers.application.canSignUp'), - showPrivateMessageGlyph: function() { - return !this.get('topic.is_warning') && this.get('topic.isPrivateMessage'); - }.property('topic.is_warning', 'topic.isPrivateMessage'), - showSignUpButton: function() { return this.get('canSignUp') && !this.get('showExtraInfo'); }.property('canSignUp', 'showExtraInfo'), diff --git a/app/assets/javascripts/discourse/models/_post.js b/app/assets/javascripts/discourse/models/_post.js index f2980e50d65..6fac98173f6 100644 --- a/app/assets/javascripts/discourse/models/_post.js +++ b/app/assets/javascripts/discourse/models/_post.js @@ -149,7 +149,6 @@ Discourse.Post = Discourse.Model.extend({ var data = { raw: this.get('raw'), topic_id: this.get('topic_id'), - is_warning: this.get('is_warning'), reply_to_post_number: this.get('reply_to_post_number'), category: this.get('category'), archetype: this.get('archetype'), diff --git a/app/assets/javascripts/discourse/models/composer.js b/app/assets/javascripts/discourse/models/composer.js index 9709b5529bc..9cee7aa0026 100644 --- a/app/assets/javascripts/discourse/models/composer.js +++ b/app/assets/javascripts/discourse/models/composer.js @@ -494,7 +494,6 @@ Discourse.Composer = Discourse.Model.extend({ title: this.get('title'), category: this.get('categoryId'), topic_id: this.get('topic.id'), - is_warning: this.get('isWarning'), imageSizes: opts.imageSizes, cooked: this.getCookedHtml(), reply_count: 0, diff --git a/app/assets/javascripts/discourse/templates/composer.js.handlebars b/app/assets/javascripts/discourse/templates/composer.js.handlebars index a907c32468a..322ab1feb0e 100644 --- a/app/assets/javascripts/discourse/templates/composer.js.handlebars +++ b/app/assets/javascripts/discourse/templates/composer.js.handlebars @@ -35,14 +35,6 @@ placeholderKey="composer.users_placeholder" tabindex="1" usernames=model.targetUsernames}} - {{#if showWarning}} -
- -
- {{/if}} {{/if}}
diff --git a/app/assets/javascripts/discourse/templates/header.js.handlebars b/app/assets/javascripts/discourse/templates/header.js.handlebars index 17986977452..06d50aa8132 100644 --- a/app/assets/javascripts/discourse/templates/header.js.handlebars +++ b/app/assets/javascripts/discourse/templates/header.js.handlebars @@ -10,7 +10,7 @@ {{/if}}

- {{#if showPrivateMessageGlyph}} + {{#if topic.isPrivateMessage}} {{icon envelope}} {{/if}} {{#if topic.category.parentCategory}} diff --git a/app/assets/javascripts/discourse/templates/topic.js.handlebars b/app/assets/javascripts/discourse/templates/topic.js.handlebars index ecf75806055..abf03ae6c27 100644 --- a/app/assets/javascripts/discourse/templates/topic.js.handlebars +++ b/app/assets/javascripts/discourse/templates/topic.js.handlebars @@ -27,9 +27,7 @@ {{else}}

- {{#unless is_warning}} - - {{/unless}} + {{#unless isPrivateMessage}} {{#if category.parentCategory}} {{bound-category-link category.parentCategory}} diff --git a/app/assets/javascripts/discourse/templates/user/user.js.handlebars b/app/assets/javascripts/discourse/templates/user/user.js.handlebars index 509424f6cdf..46d431815bb 100644 --- a/app/assets/javascripts/discourse/templates/user/user.js.handlebars +++ b/app/assets/javascripts/discourse/templates/user/user.js.handlebars @@ -80,9 +80,6 @@ {{#if number_of_suspensions}}
{{number_of_suspensions}} {{i18n user.staff_counters.suspensions}}
{{/if}} - {{#if number_of_warnings}} -
{{number_of_warnings}} {{i18n user.staff_counters.warnings_received}}
- {{/if}}

{{bound-avatar model "huge"}} diff --git a/app/assets/javascripts/discourse/views/topic.js.es6 b/app/assets/javascripts/discourse/views/topic.js.es6 index c09130113a4..a15125343d1 100644 --- a/app/assets/javascripts/discourse/views/topic.js.es6 +++ b/app/assets/javascripts/discourse/views/topic.js.es6 @@ -6,7 +6,6 @@ export default Discourse.View.extend(AddCategoryClass, Discourse.Scrolling, { userFiltersBinding: 'controller.userFilters', classNameBindings: ['controller.multiSelect:multi-select', 'topic.archetype', - 'topic.is_warning', 'topic.category.read_restricted:read_restricted', 'topic.deleted:deleted-topic', 'topic.categoryClass'], diff --git a/app/assets/stylesheets/common/base/_topic-list.scss b/app/assets/stylesheets/common/base/_topic-list.scss index 26e0a4ac31b..92a740058b6 100644 --- a/app/assets/stylesheets/common/base/_topic-list.scss +++ b/app/assets/stylesheets/common/base/_topic-list.scss @@ -308,4 +308,4 @@ ol.category-breadcrumb { div.education { color: scale-color($primary, $lightness: 50%); -} +} \ No newline at end of file diff --git a/app/assets/stylesheets/common/base/header.scss b/app/assets/stylesheets/common/base/header.scss index c3342aeb300..a6121425fbe 100644 --- a/app/assets/stylesheets/common/base/header.scss +++ b/app/assets/stylesheets/common/base/header.scss @@ -208,14 +208,6 @@ overflow: hidden; } } - .is-warning { - i.fa-envelope-o { - &:before { - content: "\f0e0"; - } - color: $danger; - } - } .read { background-color: $secondary; } diff --git a/app/assets/stylesheets/desktop/compose.scss b/app/assets/stylesheets/desktop/compose.scss index 9cd2125e83b..6d7535e2988 100644 --- a/app/assets/stylesheets/desktop/compose.scss +++ b/app/assets/stylesheets/desktop/compose.scss @@ -3,15 +3,6 @@ // hack, this needs to be done cleaner #private-message-users { width: 400px; - float: left; -} - -.add-warning { - width: 300px; - display: inline-block; - position: relative; - top: -30px; - margin-left: 20px; } .composer-popup-container { diff --git a/app/assets/stylesheets/desktop/discourse.scss b/app/assets/stylesheets/desktop/discourse.scss index 015e5dade18..13b422b746d 100644 --- a/app/assets/stylesheets/desktop/discourse.scss +++ b/app/assets/stylesheets/desktop/discourse.scss @@ -125,10 +125,6 @@ body { font-size: 15px; } } - - i.fa-envelope { - color: $danger; - } } /* bootstrap carryover */ diff --git a/app/assets/stylesheets/desktop/topic-post.scss b/app/assets/stylesheets/desktop/topic-post.scss index 5b0d6e789e6..d8653437add 100644 --- a/app/assets/stylesheets/desktop/topic-post.scss +++ b/app/assets/stylesheets/desktop/topic-post.scss @@ -527,7 +527,6 @@ iframe { .topic-statuses { i { color: $header_primary; } - i.fa-envelope { color: $danger; } .unpinned { color: $header_primary; } } .topic-link { color: $header_primary; diff --git a/app/assets/stylesheets/desktop/topic.scss b/app/assets/stylesheets/desktop/topic.scss index 785f8f923f7..4edabbde490 100644 --- a/app/assets/stylesheets/desktop/topic.scss +++ b/app/assets/stylesheets/desktop/topic.scss @@ -65,7 +65,7 @@ color: scale-color($primary, $lightness: 75%); float: left; margin: 0 5px 0 0; -} + } .private_message #topic-title .private-message-glyph { display: inline; } a.reply-new { diff --git a/app/assets/stylesheets/desktop/user.scss b/app/assets/stylesheets/desktop/user.scss index fe6f7144399..35f372a2797 100644 --- a/app/assets/stylesheets/desktop/user.scss +++ b/app/assets/stylesheets/desktop/user.scss @@ -395,9 +395,6 @@ .flagged-posts { background-color: #E49735; } - .warnings-received { - background-color: #EC441B; - } .deleted-posts { background-color: #EC441B; } diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 8febcf7962d..86a57e216a3 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -331,21 +331,12 @@ class PostsController < ApplicationController permitted << :embed_url end - params.require(:raw) - result = params.permit(*permitted).tap do |whitelisted| - whitelisted[:image_sizes] = params[:image_sizes] - # TODO this does not feel right, we should name what meta_data is allowed - whitelisted[:meta_data] = params[:meta_data] + params.permit(*permitted).tap do |whitelisted| + whitelisted[:image_sizes] = params[:image_sizes] + # TODO this does not feel right, we should name what meta_data is allowed + whitelisted[:meta_data] = params[:meta_data] end - - # Staff are allowed to pass `is_warning` - if current_user.staff? - params.permit(:is_warning) - result[:is_warning] = (params[:is_warning] == "true") - end - - result end def too_late_to(action, post) diff --git a/app/models/notification.rb b/app/models/notification.rb index c5f6eb7ec46..55ebdcae66b 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -98,7 +98,7 @@ class Notification < ActiveRecord::Base def self.recent_report(user, count = nil) count ||= 10 - notifications = user.notifications.recent(count).includes({:topic => :warning}).to_a + notifications = user.notifications.recent(count).includes(:topic).to_a if notifications.present? notifications += user.notifications diff --git a/app/models/topic.rb b/app/models/topic.rb index 9b35c05debb..8e9533fd4e8 100644 --- a/app/models/topic.rb +++ b/app/models/topic.rb @@ -100,7 +100,6 @@ class Topic < ActiveRecord::Base has_many :invites, through: :topic_invites, source: :invite has_many :revisions, foreign_key: :topic_id, class_name: 'TopicRevision' - has_one :warning # When we want to temporarily attach some data to a forum topic (usually before serialization) attr_accessor :user_data diff --git a/app/models/user.rb b/app/models/user.rb index d07a02123aa..59b73c735f2 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -35,7 +35,6 @@ class User < ActiveRecord::Base has_many :invites, dependent: :destroy has_many :topic_links, dependent: :destroy has_many :uploads - has_many :warnings has_one :user_avatar, dependent: :destroy has_one :facebook_user_info, dependent: :destroy @@ -394,10 +393,6 @@ class User < ActiveRecord::Base PostAction.where(user_id: id, post_action_type_id: PostActionType.flag_types.values).count end - def warnings_received_count - warnings.count - end - def flags_received_count posts.includes(:post_actions).where('post_actions.post_action_type_id' => PostActionType.flag_types.values).count end diff --git a/app/models/warning.rb b/app/models/warning.rb deleted file mode 100644 index 7d60d2deb50..00000000000 --- a/app/models/warning.rb +++ /dev/null @@ -1,5 +0,0 @@ -class Warning < ActiveRecord::Base - belongs_to :user - belongs_to :topic - belongs_to :created_by, class_name: 'User' -end diff --git a/app/serializers/admin_detailed_user_serializer.rb b/app/serializers/admin_detailed_user_serializer.rb index 1df1089ef28..b24d2d126ea 100644 --- a/app/serializers/admin_detailed_user_serializer.rb +++ b/app/serializers/admin_detailed_user_serializer.rb @@ -17,8 +17,7 @@ class AdminDetailedUserSerializer < AdminUserSerializer :can_be_deleted, :suspend_reason, :primary_group_id, - :badge_count, - :warnings_received_count + :badge_count has_one :approved_by, serializer: BasicUserSerializer, embed: :objects has_one :api_key, serializer: ApiKeySerializer, embed: :objects diff --git a/app/serializers/listable_topic_serializer.rb b/app/serializers/listable_topic_serializer.rb index 99f2aff8bb9..b89c05aeaa6 100644 --- a/app/serializers/listable_topic_serializer.rb +++ b/app/serializers/listable_topic_serializer.rb @@ -19,7 +19,6 @@ class ListableTopicSerializer < BasicTopicSerializer :visible, :closed, :archived, - :is_warning, :notification_level has_one :last_poster, serializer: BasicUserSerializer, embed: :objects @@ -38,14 +37,6 @@ class ListableTopicSerializer < BasicTopicSerializer false end - def is_warning - object.private_message? && object.warning.present? - end - - def include_is_warning? - is_warning - end - def unseen !seen end diff --git a/app/serializers/notification_serializer.rb b/app/serializers/notification_serializer.rb index c73bfa903b7..c6eb8412722 100644 --- a/app/serializers/notification_serializer.rb +++ b/app/serializers/notification_serializer.rb @@ -6,21 +6,12 @@ class NotificationSerializer < ApplicationSerializer :post_number, :topic_id, :slug, - :data, - :is_warning + :data def slug Slug.for(object.topic.title) if object.topic.present? end - def is_warning - object.topic.present? && object.topic.warning.present? - end - - def include_is_warning? - is_warning - end - def data object.data_hash end diff --git a/app/serializers/topic_view_serializer.rb b/app/serializers/topic_view_serializer.rb index b9d3a4737a7..23313c29daa 100644 --- a/app/serializers/topic_view_serializer.rb +++ b/app/serializers/topic_view_serializer.rb @@ -41,9 +41,7 @@ class TopicViewSerializer < ApplicationSerializer :deleted_by, :has_deleted, :actions_summary, - :expandable_first_post, - :is_warning - + :expandable_first_post # Define a delegator for each attribute of the topic we want attributes(*topic_attributes) @@ -111,14 +109,6 @@ class TopicViewSerializer < ApplicationSerializer result end - - def is_warning - object.topic.private_message? && object.topic.warning.present? - end - - def include_is_warning? - is_warning - end def draft object.draft end diff --git a/app/serializers/user_serializer.rb b/app/serializers/user_serializer.rb index 1edb4034d2f..15b871a8a3c 100644 --- a/app/serializers/user_serializer.rb +++ b/app/serializers/user_serializer.rb @@ -55,8 +55,7 @@ class UserSerializer < BasicUserSerializer staff_attributes :number_of_deleted_posts, :number_of_flagged_posts, :number_of_flags_given, - :number_of_suspensions, - :number_of_warnings + :number_of_suspensions private_attributes :email, @@ -194,10 +193,6 @@ class UserSerializer < BasicUserSerializer .count end - def number_of_warnings - object.warnings.count - end - def number_of_suspensions UserHistory.for(object, :suspend_user).count end diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index ecddbc6db06..220c34c3c96 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -336,7 +336,6 @@ en: flagged_posts: "flagged posts" deleted_posts: "deleted posts" suspensions: "suspensions" - warnings_received: "warnings received" messages: all: "All" @@ -625,7 +624,6 @@ en: message: "Authenticating with GitHub (make sure pop up blockers are not enabled)" composer: - add_warning: "This is an official warning." posting_not_on_topic: "Which topic do you want to reply to?" saving_draft_tip: "saving" saved_draft_tip: "saved" @@ -1320,8 +1318,6 @@ en: other: "%{count} clicks" topic_statuses: - warning: - help: "This is an official warning." locked: help: "This topic is closed; it no longer accepts new replies" archived: @@ -1902,7 +1898,6 @@ en: topics_entered: Topics Viewed flags_given_count: Flags Given flags_received_count: Flags Received - warnings_received_count: Warnings Received flags_given_received_count: 'Flags Given / Received' approve: 'Approve' approved_by: "approved by" diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 1f7d17923ac..639ce4097eb 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -211,9 +211,6 @@ en: models: topic: attributes: - base: - warning_requires_pm: "You can only attach warnings to private messages." - too_many_users: "You can only send warnings to one user at a time." archetype: cant_send_pm: "Sorry, you cannot send a private message to that user." user: diff --git a/db/migrate/20140905171733_create_warnings.rb b/db/migrate/20140905171733_create_warnings.rb deleted file mode 100644 index 90d38725b6e..00000000000 --- a/db/migrate/20140905171733_create_warnings.rb +++ /dev/null @@ -1,12 +0,0 @@ -class CreateWarnings < ActiveRecord::Migration - def change - create_table :warnings do |t| - t.references :topic, null: false - t.references :user, null: false - t.integer :created_by_id, null: false - t.timestamps - end - add_index :warnings, :user_id - add_index :warnings, :topic_id, unique: true - end -end diff --git a/lib/post_creator.rb b/lib/post_creator.rb index ee777a26e2a..c4de0707c2f 100644 --- a/lib/post_creator.rb +++ b/lib/post_creator.rb @@ -28,7 +28,6 @@ class PostCreator # When creating a topic: # title - New topic title # archetype - Topic archetype - # is_warning - Is the topic a warning? # category - Category to assign to topic # target_usernames - comma delimited list of usernames for membership (private message) # target_group_names - comma delimited list of groups for membership (private message) diff --git a/lib/topic_creator.rb b/lib/topic_creator.rb index cf25144b17f..9209ec85cab 100644 --- a/lib/topic_creator.rb +++ b/lib/topic_creator.rb @@ -10,7 +10,6 @@ class TopicCreator @user = user @guardian = guardian @opts = opts - @added_users = [] end def create @@ -19,7 +18,6 @@ class TopicCreator setup_auto_close_time process_private_message save_topic - create_warning watch_topic @topic @@ -27,27 +25,6 @@ class TopicCreator private - def create_warning - return unless @opts[:is_warning] - - # We can only attach warnings to PMs - unless @topic.private_message? - @topic.errors.add(:base, :warning_requires_pm) - @errors = @topic.errors - raise ActiveRecord::Rollback.new - end - - # Don't create it if there is more than one user - if @added_users.size != 1 - @topic.errors.add(:base, :too_many_users) - @errors = @topic.errors - raise ActiveRecord::Rollback.new - end - - # Create a warning record - Warning.create(topic: @topic, user: @added_users.first, created_by: @user) - end - def watch_topic unless @opts[:auto_track] == false @topic.notifier.watch_topic!(@topic.user_id) @@ -131,8 +108,7 @@ class TopicCreator def add_users(topic, usernames) return unless usernames User.where(username: usernames.split(',')).each do |user| - check_can_send_permission!(topic, user) - @added_users << user + check_can_send_permission!(topic,user) topic.topic_allowed_users.build(user_id: user.id) end end diff --git a/lib/topic_query.rb b/lib/topic_query.rb index 022806db329..ceb341ba5ca 100644 --- a/lib/topic_query.rb +++ b/lib/topic_query.rb @@ -165,7 +165,7 @@ class TopicQuery options.reverse_merge!(per_page: SiteSetting.topics_per_page) # Start with a list of all topics - result = Topic.includes(:allowed_users).includes(:warning) + result = Topic.includes(:allowed_users) .where("topics.id IN (SELECT topic_id FROM topic_allowed_users WHERE user_id = #{user.id.to_i})") .joins("LEFT OUTER JOIN topic_users AS tu ON (topics.id = tu.topic_id AND tu.user_id = #{user.id.to_i})") .order(TopicQuerySQL.order_nocategory_basic_bumped) diff --git a/spec/components/post_creator_spec.rb b/spec/components/post_creator_spec.rb index bf7ee76bcd3..7b02d7747a9 100644 --- a/spec/components/post_creator_spec.rb +++ b/spec/components/post_creator_spec.rb @@ -350,9 +350,6 @@ describe PostCreator do end it 'acts correctly' do - # It's not a warning - post.topic.warning.should be_blank - post.topic.archetype.should == Archetype.private_message post.topic.topic_allowed_users.count.should == 3 @@ -373,43 +370,6 @@ describe PostCreator do end end - context "warnings" do - let(:target_user1) { Fabricate(:coding_horror) } - let(:target_user2) { Fabricate(:moderator) } - let(:base_args) do - { title: 'you need a warning buddy!', - raw: "you did something bad and I'm telling you about it!", - is_warning: true, - target_usernames: target_user1.username, - category: 1 } - end - - it "works as expected" do - # Invalid archetype - creator = PostCreator.new(user, base_args) - creator.create - creator.errors.should be_present - - # Too many users - creator = PostCreator.new(user, base_args.merge(archetype: Archetype.private_message, - target_usernames: [target_user1.username, target_user2.username].join(','))) - creator.create - creator.errors.should be_present - - # Success - creator = PostCreator.new(user, base_args.merge(archetype: Archetype.private_message)) - post = creator.create - creator.errors.should be_blank - - topic = post.topic - topic.should be_present - topic.warning.should be_present - topic.warning.user.should == target_user1 - topic.warning.created_by.should == user - target_user1.warnings.count.should == 1 - end - end - context 'private message to group' do let(:target_user1) { Fabricate(:coding_horror) } let(:target_user2) { Fabricate(:moderator) } diff --git a/spec/controllers/posts_controller_spec.rb b/spec/controllers/posts_controller_spec.rb index 9fe83fec40c..23fde8ccd80 100644 --- a/spec/controllers/posts_controller_spec.rb +++ b/spec/controllers/posts_controller_spec.rb @@ -384,7 +384,6 @@ describe PostsController do describe 'when logged in' do let!(:user) { log_in } - let(:moderator) { log_in(:moderator) } let(:new_post) { Fabricate.build(:post, user: user) } it "raises an exception without a raw parameter" do @@ -493,24 +492,6 @@ describe PostsController do xhr :post, :create, {raw: 'hello', meta_data: {xyz: 'abc'}} end - context "is_warning" do - it "doesn't pass `is_warning` through if you're not staff" do - PostCreator.expects(:new).with(user, Not(has_entries('is_warning' => true))).returns(post_creator) - xhr :post, :create, {raw: 'hello', archetype: 'private_message', is_warning: 'true'} - end - - it "passes `is_warning` through if you're staff" do - PostCreator.expects(:new).with(moderator, has_entries('is_warning' => true)).returns(post_creator) - xhr :post, :create, {raw: 'hello', archetype: 'private_message', is_warning: 'true'} - end - - it "passes `is_warning` as false through if you're staff" do - PostCreator.expects(:new).with(moderator, has_entries('is_warning' => false)).returns(post_creator) - xhr :post, :create, {raw: 'hello', archetype: 'private_message', is_warning: 'false'} - end - - end - end end