@ -2655,7 +2655,7 @@ class MessageManager
*
* @param User $user
*/
public static function sendNotificationBy RegisteredUser(User $user)
public static function sendNotificationOfNew RegisteredUser(User $user)
{
$tplMailBody = new Template(
null,
@ -2696,6 +2696,88 @@ class MessageManager
}
}
/**
* Send a notification to all admins when a new user is registered
* while the approval method is used for users registration
*
* @param User $user
*/
public static function sendNotificationOfNewRegisteredUserApproval(User $user)
{
$tplMailBody = new Template(
null,
false,
false,
false,
false,
false,
false
);
$tplMailBody->assign('user', $user);
$tplMailBody->assign('is_western_name_order', api_is_western_name_order());
$userId = $user->getId();
$url_edit = Display::url(
api_get_path(WEB_CODE_PATH).'admin/user_edit.php?user_id='.$userId,
api_get_path(WEB_CODE_PATH).'admin/user_edit.php?user_id='.$userId
);
$tplMailBody->assign(
'manageUrl',
$url_edit
);
// Get extra field values for this user and reformat the array
$extraFieldValues = new ExtraFieldValue('user');
$userExtraFields = $extraFieldValues->getAllValuesByItem($userId);
$values = [];
foreach($userExtraFields as $field => $value) {
$values[$value['variable']] = $value['value'];
}
$tplMailBody->assign(
'extra',
$values
);
$layoutContent = '';
$emailbody = '';
if (api_get_configuration_value('mail_template_system') == true) {
$mailTemplateManager = new MailTemplateManager();
$templateText = $mailTemplateManager->getTemplateByType('new_user_mail_to_admin_approval.tpl');
if (empty($templateText)) {
} else {
// custom procedure to load a template as a string (doesn't use cache so may slow down)
$template = $tplMailBody->twig->createTemplate($templateText);
$emailbody = $template->render($tplMailBody->params);
}
}
if (empty($emailbody)) {
$layoutContent = $tplMailBody->get_template('mail/new_user_mail_to_admin_approval.tpl');
$emailbody = $tplMailBody->fetch($layoutContent);
}
$emailsubject = '['.get_lang('ApprovalForNewAccount').'] '.$user->getUsername();
if (api_get_configuration_value('send_inscription_notification_to_general_admin_only')) {
$email = api_get_setting('emailAdministrator');
$firstname = api_get_setting('administratorSurname');
$lastname = api_get_setting('administratorName');
api_mail_html("$firstname $lastname", $email, $emailsubject, $emailbody);
} else {
$admins = UserManager::get_all_administrators();
foreach ($admins as $admin_info) {
self::send_message(
$admin_info['user_id'],
$emailsubject,
$emailbody,
[],
[],
null,
null,
null,
null,
$userId
);
}
}
}
/**
* Get the error log from failed mailing
* This assumes a complex setup where you have a cron script regularly copying the mail queue log