This repository has been archived on 2025-05-04. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
discourse/lib/system_message.rb
Robin Ward d554a59102 Support for a new site setting: newuser_spam_host_threshold. If a new user posts a link
to the same host enough tiles, they will not be able to post the same link again.

Additionally, the site will flag all their previous posts with links as spam and they will
be instantly hidden via the auto hide workflow.
2013-05-16 12:19:50 -04:00

45 lines
1.4 KiB
Ruby

# Handle sending a message to a user from the system.
require_dependency 'post_creator'
require_dependency 'topic_subtype'
require_dependency 'discourse'
class SystemMessage
def self.create(recipient, type, params = {})
self.new(recipient).create(type, params)
end
def initialize(recipient)
@recipient = recipient
end
def create(type, params = {})
defaults = {site_name: SiteSetting.title,
username: @recipient.username,
user_preferences_url: "#{Discourse.base_url}/users/#{@recipient.username_lower}/preferences",
new_user_tips: SiteContent.content_for(:usage_tips),
site_password: "",
base_url: Discourse.base_url}
params = defaults.merge(params)
if SiteSetting.access_password.present?
params[:site_password] = I18n.t('system_messages.site_password', access_password: SiteSetting.access_password)
end
title = I18n.t("system_messages.#{type}.subject_template", params)
raw_body = I18n.t("system_messages.#{type}.text_body_template", params)
PostCreator.create(Discourse.system_user,
raw: raw_body,
title: title,
archetype: Archetype.private_message,
subtype: TopicSubtype.system_message,
target_usernames: @recipient.username)
end
end