da40274fdc
This is intended to prevent the user from creating new objects while the transaction that removes them is being run, resulting in objects with nil authors which can then not be edited. See https://gitlab.com/gitlab-org/gitlab-ce/issues/7117
32 lines
651 B
Ruby
32 lines
651 B
Ruby
# == Schema Information
|
|
#
|
|
# Table name: abuse_reports
|
|
#
|
|
# id :integer not null, primary key
|
|
# reporter_id :integer
|
|
# user_id :integer
|
|
# message :text
|
|
# created_at :datetime
|
|
# updated_at :datetime
|
|
#
|
|
|
|
class AbuseReport < ActiveRecord::Base
|
|
belongs_to :reporter, class_name: 'User'
|
|
belongs_to :user
|
|
|
|
validates :reporter, presence: true
|
|
validates :user, presence: true
|
|
validates :message, presence: true
|
|
validates :user_id, uniqueness: true
|
|
|
|
def remove_user
|
|
user.block
|
|
user.destroy
|
|
end
|
|
|
|
def notify
|
|
return unless self.persisted?
|
|
|
|
AbuseReportMailer.notify(self.id).deliver_later
|
|
end
|
|
end
|