diff --git a/main/auth/profile.php b/main/auth/profile.php index 9fb2bd3aa5..67060b8fe4 100644 --- a/main/auth/profile.php +++ b/main/auth/profile.php @@ -195,12 +195,13 @@ $form->addElement('email', 'email', get_lang('Email'), array('size' => 40)); if (api_get_setting('profile', 'email') !== 'true') { $form->freeze('email'); } -$form->applyFilter('email', 'stripslashes'); -$form->applyFilter('email', 'trim'); -if (api_get_setting('registration', 'email') == 'true') { - $form->addRule('email', get_lang('ThisFieldIsRequired'), 'required'); + +if (api_get_setting('registration', 'email') == 'true' && api_get_setting('profile', 'email') == 'true') { + $form->applyFilter('email', 'stripslashes'); + $form->applyFilter('email', 'trim'); + $form->addRule('email', get_lang('ThisFieldIsRequired'), 'required'); + $form->addRule('email', get_lang('EmailWrong'), 'email'); } -$form->addRule('email', get_lang('EmailWrong'), 'email'); // OPENID URL if (is_profile_editable() && api_get_setting('openid_authentication') == 'true') { @@ -446,7 +447,6 @@ $(document).ready(function(){ }); '; - if (api_get_setting('profile', 'apikeys') == 'true') { $form->addElement('html', '
'); $form->addElement('text', 'api_key_generate', get_lang('MyApiKey'), array('size' => 40, 'id' => 'id_api_key_generate')); @@ -589,21 +589,24 @@ if ($form->validate()) { $changeemail = ''; - if ($allow_users_to_change_email_with_no_password) { - $changeemail = ''; - if (!check_user_email($user_data['email'])) { - $changeemail = $user_data['email']; - //$_SESSION['change_email'] = 'success'; - } - } else { - //Normal behaviour - if (!check_user_email($user_data['email']) && !empty($user_data['password0']) && !$wrong_current_password) { - $changeemail = $user_data['email']; + //If user is sending the email to be changed (input is available and is not freeze ) + if (api_get_setting('registration', 'email') == 'true' && api_get_setting('profile', 'email') == 'true') { + + if ($allow_users_to_change_email_with_no_password) { + if (!check_user_email($user_data['email'])) { + $changeemail = $user_data['email']; + //$_SESSION['change_email'] = 'success'; + } + } else { + //Normal behaviour + if (!check_user_email($user_data['email']) && !empty($user_data['password0']) && !$wrong_current_password) { + $changeemail = $user_data['email']; + } + + if (!check_user_email($user_data['email']) && empty($user_data['password0'])){ + $_SESSION['change_email'] = 'success'; + } } - - if (!check_user_email($user_data['email']) && empty($user_data['password0'])){ - $_SESSION['change_email'] = 'success'; - } } @@ -733,7 +736,6 @@ if ($form->validate()) { if (!empty($changeemail) && !isset($password) && in_array('email', $available_values_to_modify)) { $sql .= " email = '".Database::escape_string($changeemail)."'"; } elseif (isset($password) && isset($changeemail) && in_array('email', $available_values_to_modify) && in_array('password', $available_values_to_modify)) { - $sql .= " email = '".Database::escape_string($changeemail)."',"; $password = api_get_encrypted_password($password); $sql .= " password = '".Database::escape_string($password)."'";