} } elseif (isset($activate_account)) { // New account activation if ($user->_db_getList('id,language_id', 'activated = n', 'activation_code = ' . md5($activation_code), 1)) { // Load language if ($l->id != $user->_db_list[0]['language_id']) { $old_language_id = $l->id; if (true !== $l->setLanguage($user->_db_list[0]['language_id'])) { $l->setLanguage($old_language_id); } } // Activate user account $user_id = $user->_db_list[0]['id']; $user->_db_freeList(); if ($user->activateUser($user_id)) { $user->_db_loadObj($user_id); $message = $l->g('your_account_activated'); if (!empty($session->_conf_all['new_user_notification'])) { // Send notification to admins $old_language_id = $l->id; if ($current_user->_db_getList('email,language_id', 'is_admin = y')) { $users = $current_user->_db_list; $current_user->_db_freeList(); // Group users by language $language_emails = array(); foreach ($users as $data) { if (!isset($language_users[$data['language_id']])) { $language_emails[$data['language_id']] = array(); } $language_emails[$data['language_id']][] = $data['email']; }
* "PCPIN Chat 6" is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ _pcpin_loadClass('message'); $msg = new PCPIN_Message($session); if (empty($profile_user_id) || $profile_user_id != $current_user->id && $current_user->is_admin !== 'y') { $profile_user_id = $current_user->id; } if ($profile_user_id != $current_user->id) { $profile_user = new PCPIN_User($session); $profile_user->_db_loadObj($profile_user_id); } else { $profile_user =& $current_user; } $activation_required = ''; if (!empty($profile_user_id)) { if (!isset($email) || !is_scalar($email)) { $email = ''; } else { $email = _pcpin_substr(trim($email), 0, 255); } if (!PCPIN_Common::checkEmail($email, $session->_conf_all['email_validation_level'])) { // Email invalid $xmlwriter->setHeaderStatus(1); $xmlwriter->setHeaderMessage($l->g('email_invalid')); } else {
// Get session handler $session =& $_pcpin_init_session; unset($_pcpin_init_session); _pcpin_loadClass('user'); $current_user = new PCPIN_User($session); // Slave mode: need login? if (PCPIN_SLAVE_MODE && empty($session->_s_user_id) && empty($b_id) && empty($external_url) && empty($load_banner) && !defined('PCPIN_NO_SESSION')) { // User is not logged in yet require './mods/slave_mode.inc.php'; } // Current user data $_is_moderator = false; $current_nickname = ''; $current_room_name = ''; if (!empty($session->_s_user_id)) { $current_user->_db_loadObj($session->_s_user_id); if (!empty($session->_s_room_id) && $current_user->moderated_rooms != '') { $_is_moderator = false !== strpos(',' . $current_user->moderated_rooms . ',', ',' . $session->_s_room_id . ','); } _pcpin_loadClass('nickname'); $nickname_ = new PCPIN_Nickname($session); $current_nickname = $nickname_->getDefaultNickname($current_user->id); unset($nickname_); if (!empty($session->_s_room_id)) { _pcpin_loadClass('room'); $room_ = new PCPIN_Room($session); if ($room_->_db_getList('name', 'id = ' . $session->_s_room_id, 1)) { $current_room_name = $room_->_db_list[0]['name']; } } }
/** * Log the session out and deactivate it * @param boolean $skip_msg If TRUE, then system messages 105 and 115 will be NOT inserted */ function _s_logOut($skip_msg = false) { if ($this->_s_id != '') { if (!empty($this->_s_user_id)) { _pcpin_loadClass('message'); $msg = new PCPIN_Message($this); if (!empty($this->_s_room_id)) { // Session owner was in a room _pcpin_loadClass('room'); $room = new PCPIN_Room($this); $room->putUser($this->_s_user_id, 0, $skip_msg); } // Delete invitations _pcpin_loadClass('invitation'); $invitation = new PCPIN_Invitation($this); $invitation->deleteUserInvitations($this->_s_user_id); // Delete temporary data _pcpin_loadClass('tmpdata'); $tmpdata = new PCPIN_TmpData($this); $tmpdata->deleteUserRecords($this->_s_user_id); // Update session owner stats _pcpin_loadClass('user'); $user = new PCPIN_User($this); if ($user->_db_loadObj($this->_s_user_id)) { if ($user->is_guest == 'y') { // User was a guest. Delete record. $user->deleteUser($this->_s_user_id); } else { // Update registered user stats $user->time_online = $user->calculateOnlineTime($user->id); $user->last_message_id = $user->last_message_id < $this->_s_last_message_id ? $this->_s_last_message_id : $user->last_message_id; $user->_db_updateObj($user->id); } } if (true !== $skip_msg) { $msg->addMessage(105, 'n', 0, '', 0, 0, $this->_s_user_id); } } // Delete session from database $this->_db_deleteRow($this->_s_id, '_s_id'); } }
$xmlwriter->setHeaderMessage($l->g('abuse_report_sent')); $xmlwriter->setHeaderStatus(0); $moderators = $room->getModerators($session->_s_room_id); if (empty($moderators)) { // Room has no moderators. Admin(s) will receive an abuse then. $moderators = $current_user->getAdmins(); } _pcpin_loadClass('nickname'); $nickname = new PCPIN_Nickname($session); $old_language_id = $l->id; // Create message body $body = $current_user->id . '/' . $session->_s_room_id . '/' . $abuse_category * 1 . '/' . trim(str_replace('/', ' ', $abuse_nickname)) . '/' . trim($abuse_description); foreach ($moderators as $data) { _pcpin_loadClass('user'); $tmp_user = new PCPIN_User($session); $tmp_user->_db_loadObj($data['id']); if (!empty($data['is_online'])) { // User is online $msg->addMessage(4001, 'n', $session->_s_user_id, $current_nickname, 0, $data['id'], $body, date('Y-m-d H:i:s'), 2); } else { // Add offline message // $msg->addMessage(4001, 'y', $session->_s_user_id, $current_nickname, 0, $data['id'], $body, date('Y-m-d H:i:s'), 2); } // Load language if ($tmp_user->language_id != $l->id) { if (true !== $l->setLanguage($tmp_user->language_id) && (empty($session->_conf_all['default_language']) || true !== $l->setLanguage($session->_conf_all['default_language']))) { $l->setLanguage($old_language_id); } } $violation_category = ''; switch ($abuse_category) {