diff --git a/main/auth/inscription.php b/main/auth/inscription.php index d4f00999fb..51406f3c01 100755 --- a/main/auth/inscription.php +++ b/main/auth/inscription.php @@ -425,7 +425,8 @@ if ($user_already_registered_show_terms === false) { // EXTRA FIELDS if (array_key_exists('extra_fields', $allowedFields) || in_array('extra_fields', $allowedFields)) { $extraField = new ExtraField('user'); - $extraFieldList = is_array($allowedFields['extra_fields']) ? $allowedFields['extra_fields'] : []; + + $extraFieldList = isset($allowedFields['extra_fields']) && is_array($allowedFields['extra_fields']) ? $allowedFields['extra_fields'] : []; $returnParams = $extraField->addElements($form, 0, [], false, false, $extraFieldList); } } @@ -631,6 +632,8 @@ if ($form->validate()) { $status = isset($values['status']) ? $values['status'] : STUDENT; $phone = isset($values['phone']) ? $values['phone'] : null; $values['language'] = isset($values['language']) ? $values['language'] : api_get_interface_language(); + $values['address'] = isset($values['address']) ? $values['address'] : ''; + // Creates a new user $user_id = UserManager::create_user( $values['firstname'], @@ -651,7 +654,9 @@ if ($form->validate()) { null, true, false, - $values['address'] + $values['address'], + false, + $form ); //update the extra fields diff --git a/main/auth/profile.php b/main/auth/profile.php index 77a07e2c4f..1b9f4b5caf 100755 --- a/main/auth/profile.php +++ b/main/auth/profile.php @@ -423,7 +423,7 @@ if (is_profile_editable() && api_get_setting('user_selected_theme') == 'true') { } // EXTENDED PROFILE this make the page very slow! -if (api_get_setting('extended_profile') == 'true') { +if (api_get_setting('extended_profile') === 'true') { $width_extended_profile = 500; // MY COMPETENCES $form->addHtmlEditor( @@ -624,7 +624,7 @@ if ($form->validate()) { if ($user && (!empty($user_data['password0']) && !empty($user_data['password1'])) || - (!empty($user_data['password0']) && + (!empty($user_data['password0']) && api_get_setting('profile', 'email') == 'true') ) { $passwordWasChecked = true; diff --git a/main/inc/lib/legal.lib.php b/main/inc/lib/legal.lib.php index a810876c3d..7b5b0c0074 100755 --- a/main/inc/lib/legal.lib.php +++ b/main/inc/lib/legal.lib.php @@ -279,4 +279,51 @@ class LegalManager return Database::result($rs,0,'type'); } + + /** + * @param int $userId + */ + public static function sendLegal($userId) + { + $subject = get_lang('SendTermsSubject'); + $content = sprintf( + get_lang('SendTermsDescriptionToUrlX'), + api_get_path(WEB_PATH) + ); + MessageManager::send_message_simple($userId, $subject, $content); + Display::addFlash(Display::return_message(get_lang('Sent'))); + + $extraFieldValue = new ExtraFieldValue('user'); + $value = $extraFieldValue->get_values_by_handler_and_field_variable($userId, 'termactivated'); + if ($value === false) { + $extraFieldInfo = $extraFieldValue->getExtraField()->get_handler_field_info_by_field_variable('termactivated'); + if ($extraFieldInfo) { + $newParams = array( + 'item_id' => $userId, + 'field_id' => $extraFieldInfo['id'], + 'value' => 1, + 'comment' => '' + ); + $extraFieldValue->save($newParams); + } + } + } + + /** + * @param int $userId + */ + public static function deleteLegal($userId) + { + $extraFieldValue = new ExtraFieldValue('user'); + $value = $extraFieldValue->get_values_by_handler_and_field_variable($userId, 'legal_accept'); + $result = $extraFieldValue->delete($value['id']); + if ($result) { + Display::addFlash(Display::return_message(get_lang('Deleted'))); + } + + $value = $extraFieldValue->get_values_by_handler_and_field_variable($userId, 'termactivated'); + if ($value) { + $extraFieldValue->delete($value['id']); + } + } } diff --git a/main/inc/lib/usermanager.lib.php b/main/inc/lib/usermanager.lib.php index 71fbd62749..cc855189e8 100755 --- a/main/inc/lib/usermanager.lib.php +++ b/main/inc/lib/usermanager.lib.php @@ -212,6 +212,8 @@ class UserManager * @param bool $send_mail * @param bool $isAdmin * @param string $address + * @param bool $sendEmailToAllAdmins + * @param FormValidator $form * * @return mixed new user id - if the new user creation succeeds, false otherwise * @desc The function tries to retrieve user id from the session. @@ -239,7 +241,9 @@ class UserManager $encrypt_method = '', $send_mail = false, $isAdmin = false, - $address = '' + $address = '', + $sendEmailToAllAdmins = false, + $form = null ) { $currentUserId = api_get_user_id(); $hook = HookCreateUser::create(); @@ -449,6 +453,31 @@ class UserManager $additionalParameters ); } + + if ($sendEmailToAllAdmins) { + $adminList = UserManager::get_all_administrators(); + + $tplContent = new Template(null, false, false, false, false, false); + // variables for the default template + $tplContent->assign('complete_name', stripslashes(api_get_person_name($firstName, $lastName))); + $tplContent->assign('user_added', $user); + /** @var FormValidator $form */ + $form->freeze(); + $form->removeElement('submit'); + $formData = $form->returnForm(); + $url = api_get_path(WEB_CODE_PATH).'admin/user_information.php?user_id='.$user->getId(); + $tplContent->assign('link', Display::url($url, $url)); + $tplContent->assign('form', $formData); + + $layoutContent = $tplContent->get_template('mail/content_registration_platform_to_admin.tpl'); + $emailBody = $tplContent->fetch($layoutContent); + $subject = get_lang('UserAdded'); + + foreach ($adminList as $adminId => $data) { + MessageManager::send_message_simple($adminId, $subject, $emailBody); + } + + } /* ENDS MANAGE EVENT WITH MAIL */ } Event::addEvent(LOG_USER_CREATE, LOG_USER_ID, $return); diff --git a/main/template/default/mail/content_registration_platform_to_admin.tpl b/main/template/default/mail/content_registration_platform_to_admin.tpl new file mode 100644 index 0000000000..492116adb1 --- /dev/null +++ b/main/template/default/mail/content_registration_platform_to_admin.tpl @@ -0,0 +1,19 @@ +

{{ 'UserXWithLangXRegisteredTheSite'| get_lang | format(user_added.completeName, user_added.language) }}

+ +

{{ 'HisProfileIs'| get_lang }}

+ +
+
+
+ {{ form }} +
+
+
+ +

{{ 'YouCanAssignATutorInThisLinkX'|get_lang | format(link)}}

+ +

{{ 'SignatureFormula'|get_lang }}

+

{{ _admin.name }}, {{ _admin.surname }}
+ {{ 'Manager'|get_lang }} {{ _s.site_name }}
+ {{ _admin.telephone ? 'T. ' ~ _admin.telephone }}
+ {{ _admin.email ? 'Email'|get_lang ~ ': ' ~ _admin.email }}