Exemplo n.º 1
0
 public function bindMobileAction(Request $request)
 {
     $currentUser = $this->getCurrentUser()->toArray();
     $verifiedMobile = '';
     $hasVerifiedMobile = isset($currentUser['verifiedMobile']) && strlen($currentUser['verifiedMobile']) > 0;
     if ($hasVerifiedMobile) {
         $verifiedMobile = $currentUser['verifiedMobile'];
     }
     $setMobileResult = 'none';
     $scenario = "sms_bind";
     if ($this->setting('cloud_sms.sms_enabled') != '1' || $this->setting("cloud_sms.{$scenario}") != 'on') {
         return $this->render('TopxiaWebBundle:Settings:edu-cloud-error.html.twig', array());
     }
     if ($request->getMethod() == 'POST') {
         $password = $request->request->get('password');
         if (!$this->getAuthService()->checkPassword($currentUser['id'], $password)) {
             $this->setFlashMessage('danger', '您的登录密码错误');
             SmsToolkit::clearSmsSession($request, $scenario);
             return $this->bindMobileReturn($hasVerifiedMobile, $setMobileResult, $verifiedMobile);
         }
         list($result, $sessionField, $requestField) = SmsToolkit::smsCheck($request, $scenario);
         if ($result) {
             $verifiedMobile = $sessionField['to'];
             $this->getUserService()->changeMobile($currentUser['id'], $verifiedMobile);
             $setMobileResult = 'success';
             $this->setFlashMessage('success', '绑定成功');
         } else {
             $setMobileResult = 'fail';
             $this->setFlashMessage('danger', '绑定失败,原短信失效');
         }
     }
     return $this->bindMobileReturn($hasVerifiedMobile, $setMobileResult, $verifiedMobile);
 }