}
 } 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 {
示例#3
0
// 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) {