Пример #1
0
 function edit($oldnickname, $oldpw = '', $nickname = '', $password = '', $email = '', $username = '', $ignoreoldpw = 0, $inadmin = 0, $email_checked = 0)
 {
     $oldmember = array();
     if (!$ignoreoldpw) {
         $rets = $this->login_check($oldnickname, $oldpw);
         if ($rets['uid'] < 1) {
             return $rets['uid'] - 10;
         } else {
             $oldmember = $rets;
         }
     } else {
         $oldmember = jsg_get_member($oldnickname, 'nickname', 0);
     }
     $uc_password = $uc_email = '';
     $newmember = array();
     if ($nickname && $nickname != $oldmember['nickname'] && (true !== UCENTER || true === UCENTER_MODIFY_NICKNAME || $ignoreoldpw)) {
         if ($oldmember['nickname'] && !$GLOBALS['_J']['config']['edit_nickname_enable'] && !$ignoreoldpw) {
             return -8;
         }
         $ret = $this->checkname($nickname, 1, 0, $oldmember['uid']);
         if ($ret < 1) {
             return $ret;
         }
         $newmember['nickname'] = $nickname;
     }
     if ($password) {
         $salt = $oldmember['salt'] ? $oldmember['salt'] : jsg_member_salt();
         $password_hash = jsg_member_password($password, $salt);
         if ($password_hash != $oldmember['password']) {
             $newmember['password'] = $password_hash;
             $newmember['salt'] = $salt;
         }
         $uc_password = $password;
     }
     if ($username && $username != $oldmember['username'] && (!$oldmember['username'] || is_numeric($oldmember['username']) || $ignoreoldpw)) {
         $ret = $this->checkname($username, 0, 0, $oldmember['uid']);
         if ($ret < 1) {
             return $ret;
         }
         $newmember['username'] = $username;
     }
     if ($email && $email != $oldmember['email']) {
         $ret = $this->checkemail($email);
         if ($ret < 1) {
             return $ret;
         }
         if ($GLOBALS['_J']['config']['reg_email_verify'] && !$inadmin) {
             $newmember['role_id'] = $oldmember['role_id'] && $oldmember['role_id'] != $GLOBALS['_J']['config']['no_verify_email_role_id'] ? $oldmember['role_id'] : $GLOBALS['_J']['config']['no_verify_email_role_id'];
             jfunc('my');
             my_member_validate($oldmember['uid'], $email, (int) ($oldmember['role_id'] != $GLOBALS['_J']['config']['no_verify_email_role_id'] ? $oldmember['role_id'] : $GLOBALS['_J']['config']['normal_default_role_id']));
         }
         if (!$inadmin && $oldmember['email_checked'] > 0) {
             $newmember['email2'] = $email;
         } else {
             $newmember['email'] = $email;
         }
         $uc_email = $email;
     }
     if ($email && $inadmin) {
         $newmember['email_checked'] = $email_checked;
         if ($oldmember['role_id'] == '5' && $email_checked > 0) {
             $newmember['role_id'] = '3';
         }
     }
     if ($inadmin && $oldmember['email_checked'] > 0 && $email_checked == 0) {
         $newmember['email2'] = '';
     }
     if (true === UCENTER && $oldmember['ucuid'] > 0 && ($uc_password || $uc_email)) {
         $ret = uc_user_edit($oldnickname, $oldpw, $uc_password, $uc_email, $ignoreoldpw);
         if ($ret < 0 && -7 != $ret && -8 != $ret) {
             return $ret;
         }
     }
     if ($newmember) {
         $ret = jtable('members')->update($newmember, $oldmember['uid']);
     } else {
         return -7;
     }
     #if NEDU
     if (defined('NEDU_MOYO')) {
         ndata('sync')->member()->modify($oldmember['uid']);
     }
     #endif
     return 1;
 }
Пример #2
0
 function updatepw($get, $post)
 {
     if (!API_UPDATEPW) {
         return API_RETURN_FORBIDDEN;
     }
     $pwr = md5(microtime(true) . mt_rand() . time());
     $username = $get['username'];
     $password = $get['password'] ? $get['password'] : $pwr;
     if ($password) {
         $salt = jsg_member_salt();
         $this->db->query("UPDATE `{$this->tablepre}members` SET `password`='" . jsg_member_password($password, $salt) . "', `salt`='{$salt}' WHERE `nickname`='{$username}'");
     }
     return API_RETURN_SUCCEED;
 }