diff --git a/app/models/user_feedback.rb b/app/models/user_feedback.rb index f758948e8..abf899f5c 100644 --- a/app/models/user_feedback.rb +++ b/app/models/user_feedback.rb @@ -6,6 +6,7 @@ class UserFeedback < ActiveRecord::Base attr_accessible :body, :user_id, :category, :user_name validates_presence_of :user, :creator, :body, :category validate :creator_is_privileged + validate :user_is_not_creator after_create :create_dmail module SearchMethods @@ -75,6 +76,18 @@ class UserFeedback < ActiveRecord::Base def creator_is_privileged if !creator.is_privileged? errors[:creator] << "must be privileged" + return false + else + return true + end + end + + def user_is_not_creator + if user_id == creator_id + errors[:creator] << "cannot submit feedback for yourself" + return false + else + return true end end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 068a2a37a..3ea810665 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -31,4 +31,7 @@ en: creator_id: "You" upload: uploader: "You" - uploader_id: "You" \ No newline at end of file + uploader_id: "You" + user_feedback: + creator: "You" + creator_id: "You" \ No newline at end of file diff --git a/script/fixes/009.rb b/script/fixes/009.rb index 235d24401..8223a1ca8 100644 --- a/script/fixes/009.rb +++ b/script/fixes/009.rb @@ -15,3 +15,5 @@ Note.find_each do |note| end note.update_column(:version, i) end + +UserFeedback.delete_all("creator_id = user_id") \ No newline at end of file diff --git a/test/unit/user_feedback_test.rb b/test/unit/user_feedback_test.rb index 72621a492..0b87e423d 100644 --- a/test/unit/user_feedback_test.rb +++ b/test/unit/user_feedback_test.rb @@ -22,8 +22,16 @@ class UserFeedbackTest < ActiveSupport::TestCase FactoryGirl.create(:user_feedback, :user => user) end end + + should "not validate if the creator is the user" do + privileged_user = FactoryGirl.create(:privileged_user) + CurrentUser.user = privileged_user + feedback = FactoryGirl.build(:user_feedback, :user => privileged_user) + feedback.save + assert_equal(["You cannot submit feedback for yourself"], feedback.errors.full_messages) + end - should "should not validate if the creator is not privileged" do + should "not validate if the creator is not privileged" do user = FactoryGirl.create(:user) privileged = FactoryGirl.create(:privileged_user) member = FactoryGirl.create(:user) @@ -35,7 +43,7 @@ class UserFeedbackTest < ActiveSupport::TestCase CurrentUser.user = member feedback = FactoryGirl.build(:user_feedback, :user => user) feedback.save - assert(feedback.errors.any?) + assert_equal(["You must be privileged"], feedback.errors.full_messages) end end end