usercontrol(); } function usercontrol() { parent::__construct(); $this->load('user'); $this->app = $this->cache['apps'][UC_APPID]; } // 同步注册 function onsynregister() { $this->init_input(); $uid = $this->input('uid'); $password = $this->input('password'); if ($this->app['synlogin']) { if ($this->user = $_ENV['user']->get_user_by_uid($uid)) { $params = 'action=synregister' . '&username=' . $this->user['username'] . '&uid=' . $this->user['uid'] . '&password=' . $password . '&email=' . $this->user['email'] . '&mobile=' . $this->user['mobile'] . '&time=' . $this->time; $synstr = ''; foreach ($this->cache['apps'] as $appid => $app) { if ($app['synlogin'] && $app['appid'] != $this->app['appid']) { $synstr .= ''; } } return $synstr; } } return ''; } // 同步登录 function onsynlogin() { $this->init_input(); $uid = $this->input('uid'); if ($this->app['synlogin']) { if ($this->user = $_ENV['user']->get_user_by_uid($uid)) { $params = 'action=synlogin' . '&username=' . $this->user['username'] . '&uid=' . $this->user['uid'] . '&password=' . $this->user['password'] . '&time=' . $this->time; $synstr = ''; foreach ($this->cache['apps'] as $appid => $app) { if ($app['synlogin'] && $app['appid'] != $this->app['appid']) { $synstr .= ''; } } return $synstr; } } return ''; } // 同步退出 function onsynlogout() { $this->init_input(); if ($this->app['synlogin']) { $synstr = ''; foreach ($this->cache['apps'] as $appid => $app) { if ($app['synlogin'] && $app['appid'] != $this->app['appid']) { $synstr .= ''; } } return $synstr; } return ''; } // 同步注册 function onregister() { $this->init_input(); $username = $this->input('username'); $password = $this->input('password'); $email = $this->input('email'); $mobile = $this->input('mobile'); $extend = $this->input('extend'); $extend = $extend ? $extend : []; if (($status = $this->_check_username($username)) < 0) { return $status; } if ($email && ($status = $this->_check_email($email)) < 0) { return $status; } if ($mobile && ($status = $this->_check_mobile($mobile)) < 0) { return $status; } $uid = $_ENV['user']->add_user($username, $password, $email, $mobile, 0, $extend); return $uid; } // 编辑ucenter中信息 function onedit() { $this->init_input(); $uid = intval($this->input('uid')); $username = $this->input('username'); $password = $this->input('password'); $email = $this->input('email'); $mobile = $this->input('mobile'); $extend = $this->input('extend'); $extend = $extend ? $extend : []; $status = $_ENV['user']->edit_user($username, $password, $email, $mobile, $uid, $extend); if ($status > 0) { if (@include UC_ROOT . './data/cache/apps.php') { if (count($_CACHE['apps']) > 1) { //手动调用一次同步到所有应用 uc_api_post('user', 'edit', $this->input); } } return $status; $this->load('note'); $_ENV['note']->add('updateinfo', http_build_query($this->input)); } return $status; } // 登录ucenter账号 function onlogin() { $this->init_input(); $username = $this->input('username'); $password = $this->input('password'); $isuid = $this->input('isuid'); //0用户名 1UID 2邮箱 3手机 if ($isuid == 1) { $user = $_ENV['user']->get_user_by_uid($username); } elseif ($isuid == 2) { $user = $_ENV['user']->get_user_by_email($username); } elseif ($isuid == 3) { $user = $_ENV['user']->get_user_by_mobile($username); } else { $user = $_ENV['user']->get_user_by_username($username); } $passwordmd5 = preg_match('/^\w{32}$/', $password) ? $password : md5($password); if (empty($user)) { $status = -1; } elseif ($user['password'] != md5($passwordmd5 . $user['salt'])) { $status = -2; } else { $status = $user['uid']; } $merge = $status != -1 && !$isuid && $_ENV['user']->check_mergeuser($username) ? 1 : 0; return [ 'status' => $status, 'uid' => isset($user['uid']) ? $user['uid'] : 0, 'username' => isset($user['username']) ? $user['username'] : '', 'password' => $password, 'email' => isset($user['email']) ? $user['email'] : '', 'mobile' => isset($user['mobile']) ? $user['mobile'] : '', 'merge' => $merge ]; } function onlogincheck() { $this->init_input(); $username = $this->input('username'); $ip = $this->input('ip'); return $_ENV['user']->can_do_login($username, $ip); } function oncheck_email() { $this->init_input(); $email = $this->input('email'); return $this->_check_email($email); } function oncheck_username() { $this->init_input(); $username = $this->input('username'); if (($status = $this->_check_username($username)) < 0) { return $status; } else { return 1; } } function onget_user() { $this->init_input(); $username = $this->input('username'); $isuid = $this->input('isuid'); //0用户名 1UID 2邮箱 3手机 if ($isuid == 1) { $member = $_ENV['user']->get_user_by_uid($username); } else if ($isuid == 2) { $member = $_ENV['user']->get_user_by_email($username); } else if ($isuid == 3) { $member = $_ENV['user']->get_user_by_mobile($username); } else { $member = $_ENV['user']->get_user_by_username($username); } if ($member) { // 加载扩展表 $memberfields = $this->db->fetch_first("SELECT * FROM " . UC_DBTABLEPRE . "memberfields WHERE uid='{$member['uid']}'"); $memberfields = $memberfields ? $memberfields : []; $member = [ 'uid' => $member['uid'], 'username' => $member['username'], 'email' => $member['email'], 'mobile' => $member['mobile'] ]; return array_merge($member, $memberfields); } else { return 0; } } function ongetprotected() { $this->init_input(); $protectedmembers = $this->db->fetch_all("SELECT uid,username FROM " . UC_DBTABLEPRE . "protectedmembers GROUP BY username"); return $protectedmembers; } function ondelete() { $this->init_input(); $uid = $this->input('uid'); return $_ENV['user']->delete_user($uid); } function onaddprotected() { $this->init_input(); $username = $this->input('username'); $admin = $this->input('admin'); $appid = $this->app['appid']; $usernames = (array) $username; foreach ($usernames as $username) { $user = $_ENV['user']->get_user_by_username($username); $uid = $user['uid']; $this->db->query("REPLACE INTO " . UC_DBTABLEPRE . "protectedmembers SET uid='$uid', username='$username', appid='$appid', dateline='{$this->time}', admin='$admin'", 'SILENT'); } return $this->db->errno() ? -1 : 1; } function ondeleteprotected() { $this->init_input(); $username = $this->input('username'); $appid = $this->app['appid']; $usernames = (array) $username; foreach ($usernames as $username) { $this->db->query("DELETE FROM " . UC_DBTABLEPRE . "protectedmembers WHERE username='$username' AND appid='$appid'"); } return $this->db->errno() ? -1 : 1; } function onmerge() { $this->init_input(); $uid = $this->input('uid'); $oldusername = $this->input('oldusername'); $newusername = $this->input('newusername'); $password = $this->input('password'); $email = $this->input('email'); $mobile = $this->input('mobile'); $extend = $this->input('extend'); $extend = $extend ? $extend : []; if (($status = $this->_check_username($newusername)) < 0) { return $status; } $uid = $_ENV['user']->add_user($newusername, $password, $email, $mobile, $uid, $extend); $this->db->query("DELETE FROM " . UC_DBTABLEPRE . "mergemembers WHERE appid='" . $this->app['appid'] . "' AND username='$oldusername'"); return $uid; } function onmerge_remove() { $this->init_input(); $username = $this->input('username'); $this->db->query("DELETE FROM " . UC_DBTABLEPRE . "mergemembers WHERE appid='" . $this->app['appid'] . "' AND username='$username'"); return NULL; } function _check_username($username) { $username = addslashes(trim(stripslashes($username))); if (!$_ENV['user']->check_username($username)) { return UC_USER_CHECK_USERNAME_FAILED; } elseif (!$_ENV['user']->check_usernamecensor($username)) { return UC_USER_USERNAME_BADWORD; } elseif ($_ENV['user']->check_usernameexists($username)) { return UC_USER_USERNAME_EXISTS; } return 1; } function _check_email($email, $username = '') { if (empty($this->settings)) { $this->settings = $this->cache('settings'); } if (!$_ENV['user']->check_emailformat($email)) { return UC_USER_EMAIL_FORMAT_ILLEGAL; } elseif (!$_ENV['user']->check_emailaccess($email)) { return UC_USER_EMAIL_ACCESS_ILLEGAL; } elseif (!$this->settings['doublee'] && $_ENV['user']->check_emailexists($email, $username)) { return UC_USER_EMAIL_EXISTS; } else { return 1; } } function _check_mobile($mobile, $username = '') { if (empty($this->settings)) { $this->settings = $this->cache('settings'); } if (!$_ENV['user']->check_mobileformat($mobile)) { return UC_USER_EMAIL_FORMAT_ILLEGAL; } elseif (!$_ENV['user']->check_mobileaccess($mobile)) { return UC_USER_EMAIL_ACCESS_ILLEGAL; } elseif (!$this->settings['doublee'] && $_ENV['user']->check_mobileexists($mobile, $username)) { return UC_USER_EMAIL_EXISTS; } else { return 1; } } function onuploadavatar() { } function onrectavatar() { } function flashdata_decode($s) { } }