} $language_emails[$data['language_id']][] = $data['email']; } unset($users); foreach ($language_emails as $language_id => $emails) { if (true !== $l->setLanguage($language_id) && (empty($session->_conf_all['default_language']) || true !== $l->setLanguage($session->_conf_all['default_language']))) { $l->setLanguage($old_language_id); } foreach ($emails as $email) { $email_body = $l->g('email_new_user_notification'); $email_body = str_replace('[CHAT_NAME]', $session->_conf_all['chat_name'], $email_body); $email_body = str_replace('[EMAIL_ADDRESS]', $user->email, $email_body); $email_body = str_replace('[USERNAME]', $user->login, $email_body); $email_body = str_replace('[REMOTE_IP]', PCPIN_CLIENT_IP, $email_body); $email_body = str_replace('[SENDER]', $session->_conf_all['chat_email_sender_name'], $email_body); PCPIN_Email::send('"' . $session->_conf_all['chat_email_sender_name'] . '"' . ' <' . $session->_conf_all['chat_email_sender_address'] . '>', $email, $session->_conf_all['chat_name'] . ': ' . $l->g('new_account_created'), null, null, $email_body); } } // Restore original language if ($l->id != $old_language_id) { $l->setLanguage($old_language_id); } } } } else { // Activation failed (should not happen) $message = $l->g('invalid_activation_code'); } } else { // Invalid activation code $message = $l->g('invalid_activation_code');
break; case 2: $violation_category = $l->g('insult'); break; case 3: $violation_category = $l->g('adult_content'); break; case 4: $violation_category = $l->g('illegal_content'); break; case 5: $violation_category = $l->g('harassment'); break; case 6: $violation_category = $l->g('fraud'); break; case 7: default: $violation_category = $l->g('other'); break; } // Send an email $email_body = $l->g('date') . ":\n\t" . $tmp_user->makeDate(time()) . "\n" . $l->g('room_name') . ":\n\t" . $current_room_name . "\n" . $l->g('author') . ":\n\t" . $nickname->coloredToPlain($current_nickname, false) . "\n" . $l->g('violation_category') . ":\n\t" . $violation_category . "\n" . $l->g('abuser_nickname') . ":\n\t" . $abuse_nickname . "\n" . $l->g('violation_description') . ":\n\n" . $abuse_description . "\n"; PCPIN_Email::send('"' . $session->_conf_all['chat_email_sender_name'] . '"' . ' <' . $session->_conf_all['chat_email_sender_address'] . '>', $tmp_user->email, $session->_conf_all['chat_name'] . ': ' . $l->g('abuse_arrived'), null, null, $email_body); } if ($old_language_id != $l->id) { // Restore original language $l->setLanguage($old_language_id); } } }
} else { // Email address is free if ($current_user->is_admin !== 'y' && !empty($session->_conf_all['activate_new_emails'])) { // Email address needs to be activated $activation_required = 1; $email_new_activation_code = PCPIN_Common::randomString(18, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'); $profile_user->email_new = $email; $profile_user->email_new_date = date('Y-m-d H:i:s'); $profile_user->email_new_activation_code = md5($email_new_activation_code); $profile_user->_db_updateObj($profile_user->id); $email_body = $l->g('email_email_address_activation'); $email_body = str_replace('[HOURS]', $session->_conf_all['new_email_activation_timeout'], $email_body); $email_body = str_replace('[SENDER]', $session->_conf_all['chat_email_sender_name'], $email_body); $email_body = str_replace('[ACTIVATION_URL]', str_replace(' ', '%20', $session->_conf_all['base_url']) . '?activate_email&activation_code=' . urlencode($email_new_activation_code), $email_body); $email_body = str_replace('[CHAT_NAME]', $session->_conf_all['chat_name'], $email_body); PCPIN_Email::send('"' . $session->_conf_all['chat_email_sender_name'] . '"' . ' <' . $session->_conf_all['chat_email_sender_address'] . '>', $email, $l->g('email_address_activation'), null, null, $email_body); $xmlwriter->setHeaderStatus(0); $xmlwriter->setHeaderMessage(str_replace('[EMAIL]', $email, $l->g('email_address_activation_sent'))); } else { // Save new email address $activation_required = 0; $profile_user->email = $email; $profile_user->email_new = ''; $profile_user->email_new_date = ''; $profile_user->email_new_activation_code = ''; $profile_user->_db_updateObj($profile_user->id); $xmlwriter->setHeaderStatus(0); $xmlwriter->setHeaderMessage($l->g('email_address_changed')); $msg->addMessage(1010, 'n', 0, '', $session->_s_room_id, 0, $profile_user_id); } }
} if (empty($errortext)) { // Check data if ($current_user->_db_getList('id,login', 'email = ' . $email, 'activated = y', 'is_guest = n', 1)) { // Email address found $user_id = $current_user->_db_list[0]['id']; $login = $current_user->_db_list[0]['login']; $current_user->_db_freeList(); } else { // Wrong Email $errortext[] = $l->g('email_not_found'); } } if (!empty($errortext)) { $xmlwriter->setHeaderStatus(1); $xmlwriter->setHeaderMessage('- ' . implode("\n- ", $errortext)); } else { // Reset password $password_new = PCPIN_Common::randomString(mt_rand(6, 8), 'abcdefghijklmnopqrstuvwxyz0123456789'); $current_user->_db_updateRow($user_id, 'id', array('password_new' => md5($password_new))); // Send "password reset" email $email_body = $l->g('email_password_reset'); $email_body = str_replace('[CHAT_NAME]', $session->_conf_all['chat_name'], $email_body); $email_body = str_replace('[USERNAME]', $login, $email_body); $email_body = str_replace('[PASSWORD]', $password_new, $email_body); $email_body = str_replace('[URL]', str_replace(' ', '%20', $session->_conf_all['base_url']), $email_body); $email_body = str_replace('[SENDER]', $session->_conf_all['chat_email_sender_name'], $email_body); PCPIN_Email::send('"' . $session->_conf_all['chat_email_sender_name'] . '"' . ' <' . $session->_conf_all['chat_email_sender_address'] . '>', $email, $l->g('password_reset'), null, null, $email_body); $xmlwriter->setHeaderStatus(0); $xmlwriter->setHeaderMessage(str_replace('[EMAIL]', $email, $l->g('new_password_sent'))); }