Example #1
0
 /**
  * 通过用户ID修改其手机号码
  *
  * @param array $params
  *  -mobile 手机号码
  * @return boolean|void
  */
 public function modifyMobile($params = array())
 {
     if (isset($params['mobile'])) {
         // 注册手机号码的唯一性
         $mobile = $params['mobile'];
         $mUserBase = new UserBaseInfo();
         $mUserOpLog = new UserOperateLog();
         $user = UserBaseInfo::getLoginUser();
         $data = [];
         if (!$user) {
             Yii::$app->util->formatResData(1205, 'error_not_login', ['msg' => '手机号码修改失败']);
         }
         $data = ['id' => $user['id'], 'mobile' => $mobile];
         $origMobile = $user['mobile'];
         $result = $mUserBase->updateUserById($data);
         if ($result) {
             $session = Yii::$app->session;
             $user = $session[UserBaseInfo::SESSION_KEY_USER];
             $user['mobile'] = $mobile;
             // 针对SSO用户同步相关信息
             $data = ['open_id' => $user['open_id'], 'mobile' => $mobile];
             try {
                 $sso = Yii::$app->sso;
                 $res = $sso->sync('mobile', $data);
                 $sso->syncProfileLog($res, json_encode($data), 'mobile');
             } catch (\Exception $e) {
             }
             $session[UserBaseInfo::SESSION_KEY_USER] = $user;
         } else {
             Yii::$app->util->formatResData(1306, 'error_modify_mobild_failed', ['msg' => '手机号码修改失败']);
         }
         $mUserOpLog->store('安全手机修改', $origMobile, $mobile, $result);
         return $result;
     } else {
         Yii::$app->util->formatResData(1401, 'error_modify_mobild_failed', ['msg' => '手机号码修改失败']);
     }
 }
Example #2
0
 /**
  * 绑定安全邮箱
  */
 public function actionBindEmail()
 {
     if (!$this->isLogin) {
         return $this->actionLogin();
         die;
     }
     $this->layout = "base";
     $tool = '';
     $key = Yii::$app->controller->id . '/' . Yii::$app->controller->action->id;
     $user = UserBaseInfo::getLoginUser();
     $userID = $user['id'];
     try {
         $session = Yii::$app->getSession();
         $userModel = new UserBaseInfo();
         $user = $userModel->getUserById($userID);
         // 判断是否已经绑定邮箱
         if ($user['email']) {
             return $this->redirect(['user/modify-email']);
             die;
         }
         if (!$user['mobile']) {
             // TODO:: 手机号为空
         }
         $tool = $user['mobile'];
         $session->set($key . '_tool', $tool);
         $config = Yii::$app->util->loadConfig('flow');
         if (empty($config)) {
             // TODO:: 配置不存在
         }
         $stepConfig = isset($config[$key]['step1']) ? $config[$key]['step1'] : [];
         $action = isset($config[$key]['action']) ? $config[$key]['action'] : '';
         $url = isset($stepConfig['api_url']) ? $stepConfig['api_url'] : '';
         $msgEmailUrl = isset($stepConfig['msg_email_api_url']) ? $stepConfig['msg_email_api_url'] : '';
         // SESSION中存储流程步骤配置信息
         $session->set($key, 'step1');
         // 如果存在就清除下一步SESSION中的验证码
         /*
         $captcha_key = 'captcha_' . $key . '_step1';
         if ($session->has($captcha_key)) {
             $session->remove($captcha_key);
         }
         */
     } catch (Exception $ex) {
         // TODO:: SESSION开启失败
     }
     return $this->render('bind_email/step1.php', ['action' => $action, 'tool' => $tool, 'url' => $url, 'msg_email_url' => $msgEmailUrl]);
 }