2013-02-05 14:16:51 -05:00
# Handle sending a message to a user from the system.
require_dependency 'post_creator'
class SystemMessage
def self . create ( recipient , type , params = { } )
self . new ( recipient ) . create ( type , params )
end
def initialize ( recipient )
2013-02-25 19:42:20 +03:00
@recipient = recipient
2013-02-05 14:16:51 -05:00
end
2013-02-25 19:42:20 +03:00
def create ( type , params = { } )
2013-02-05 14:16:51 -05:00
defaults = { site_name : SiteSetting . title ,
2013-02-06 15:29:03 -05:00
username : @recipient . username ,
user_preferences_url : " #{ Discourse . base_url } /users/ #{ @recipient . username_lower } /preferences " ,
2013-04-05 16:47:20 -04:00
new_user_tips : SiteContent . content_for ( :usage_tips ) ,
2013-02-06 15:29:03 -05:00
site_password : " " ,
base_url : Discourse . base_url }
2013-02-05 14:16:51 -05:00
params = defaults . merge ( params )
2013-03-01 12:45:25 -05:00
if SiteSetting . access_password . present?
2013-04-05 16:47:20 -04:00
params [ :site_password ] = I18n . t ( 'system_messages.site_password' , access_password : SiteSetting . access_password )
2013-02-05 14:16:51 -05:00
end
2013-02-25 19:42:20 +03:00
2013-04-05 16:47:20 -04:00
title = I18n . t ( " system_messages. #{ type } .subject_template " , params )
raw_body = I18n . t ( " system_messages. #{ type } .text_body_template " , params )
2013-02-05 14:16:51 -05:00
PostCreator . create ( SystemMessage . system_user ,
raw : raw_body ,
title : title ,
archetype : Archetype . private_message ,
target_usernames : @recipient . username )
end
# Either returns the system_username user or the first admin.
def self . system_user
user = User . where ( username_lower : SiteSetting . system_username ) . first if SiteSetting . system_username . present?
2013-03-29 09:29:58 +03:00
user = User . admins . order ( :id ) . first if user . blank?
2013-02-05 14:16:51 -05:00
user
end
end