note description: "Summary description for {CMS_AUTHENTICATION_EMAIL_SERVICE_PARAMETERS}." date: "$Date$" revision: "$Revision$" class CMS_AUTHENTICATION_EMAIL_SERVICE_PARAMETERS inherit EMAIL_SERVICE_PARAMETERS create make feature {NONE} -- Initialization make (a_cms_api: CMS_API) local utf: UTF_CONVERTER l_site_name: READABLE_STRING_8 s: detachable READABLE_STRING_32 l_contact_email, l_subject_register, l_subject_activate, l_subject_password, l_subject_oauth: detachable READABLE_STRING_8 do setup := a_cms_api.setup -- Use global smtp setting if any, otherwise "localhost" smtp_server := utf.escaped_utf_32_string_to_utf_8_string_8 (a_cms_api.setup.text_item_or_default ("smtp", "localhost")) l_site_name := utf.escaped_utf_32_string_to_utf_8_string_8 (a_cms_api.setup.site_name) admin_email := a_cms_api.setup.site_email if not admin_email.has ('<') then admin_email := l_site_name + " <" + admin_email +">" end if attached {CONFIG_READER} a_cms_api.module_configuration ("login", Void) as cfg then if attached cfg.text_item ("smtp") as l_smtp then -- Overwrite global smtp setting if any. smtp_server := utf.utf_32_string_to_utf_8_string_8 (l_smtp) end s := cfg.text_item ("email") if s /= Void then l_contact_email := utf.utf_32_string_to_utf_8_string_8 (s) end s := cfg.text_item ("subject_register") if s /= Void then l_subject_register := utf.utf_32_string_to_utf_8_string_8 (s) end s := cfg.text_item ("subject_activate") if s /= Void then l_subject_register := utf.utf_32_string_to_utf_8_string_8 (s) end s := cfg.text_item ("subject_password") if s /= Void then l_subject_register := utf.utf_32_string_to_utf_8_string_8 (s) end s := cfg.text_item ("subject_oauth") if s /= Void then l_subject_oauth := utf.utf_32_string_to_utf_8_string_8 (s) end end if l_contact_email /= Void then if not l_contact_email.has ('<') then l_contact_email := l_site_name + " <" + l_contact_email + ">" end contact_email := l_contact_email else contact_email := admin_email end if l_subject_register /= Void then contact_subject_register := l_subject_register else contact_subject_register := "Thank you for registering with us." end if l_subject_activate /= Void then contact_subject_activate := l_subject_activate else contact_subject_activate := "New account activation token." end if l_subject_password /= Void then contact_subject_password := l_subject_password else contact_subject_password := "Password Recovery." end if l_subject_oauth /= Void then contact_subject_oauth := l_subject_oauth else contact_subject_oauth := "Welcome." end end feature -- Access smtp_server: IMMUTABLE_STRING_8 admin_email: IMMUTABLE_STRING_8 contact_email: IMMUTABLE_STRING_8 -- Contact email. contact_subject_register: IMMUTABLE_STRING_8 contact_subject_activate: IMMUTABLE_STRING_8 contact_subject_password: IMMUTABLE_STRING_8 contact_subject_oauth: IMMUTABLE_STRING_8 account_activation: STRING -- Account activation template email message. do Result := template_string ("account_activation.html", default_template_account_activation) end account_re_activation: STRING -- Account re_activation template email message. do Result := template_string ("accunt_re_activation.html", default_template_account_re_activation) end account_password: STRING -- Account password template email message. do Result := template_string ("account_new_password.html", default_template_account_new_password) end account_welcome: STRING -- Account welcome template email message. do Result := template_string ("account_welcome.html", default_template_account_welcome) end feature {NONE} -- Implementation: Template template_path (a_name: READABLE_STRING_GENERAL): PATH -- Location of template named `a_name'. do Result := setup.environment.config_path.extended ("modules").extended ("login").extended (a_name) end template_string (a_name: READABLE_STRING_GENERAL; a_default: STRING): STRING -- Content of template named `a_name', or `a_default' if template is not found. local p: PATH do p := template_path ("account_activation.html") if attached read_template_file (p) as l_content then Result := l_content else create Result.make_from_string (a_default) end end feature {NONE} -- Implementation setup: CMS_SETUP read_template_file (a_path: PATH): detachable STRING -- Read the content of the file at path `a_path'. local l_file: FILE n: INTEGER do create {PLAIN_TEXT_FILE} l_file.make_with_path (a_path) if l_file.exists and then l_file.is_readable then n := l_file.count l_file.open_read l_file.read_stream (n) Result := l_file.last_string l_file.close else -- Error end end feature {NONE} -- Message email default_template_account_activation: STRING = "[ Activation

Thank you for registering at ROC CMS

To complete your registration, please click on the following link to activate your account:

$link

Thank you for joining us.

]" default_template_account_re_activation: STRING = "[ New Activation

You have requested a new activation token at ROC CMS

To complete your registration, please click on the following link to activate your account:

$link

Thank you for joining us.

]" default_template_account_new_password: STRING = "[ New Password

You have required a new password at ROC CMS

To complete your request, please click on this link to generate a new password:

$link

]" default_template_account_welcome: STRING = "[ Welcome

Welcome toROC CMS

Thank you for joining us.

]" end