Beispiel #1
0
 public function afterLogin(Event $event, Login $user)
 {
     // 记录登录用户的登录来源
     $loginSource = new LoginRecord();
     $source = LoginRecord::getSourceOfUser();
     if ($source) {
         $loginSource->recordSource($user->id, $source, $user->loginAt);
     }
 }
Beispiel #2
0
 /**
  * @operationName("Create User")
  * @operationDescription("Create User")
  */
 public function createAction()
 {
     $user = new Models\UserManager();
     $user->providerType = 'admin';
     $user->source = Models\LoginRecord::getSourceOfUser();
     $form = new \Eva\EvaUser\Forms\UserForm();
     $form->setModel($user);
     $form->addForm('profile', 'Eva\\EvaUser\\Forms\\ProfileForm');
     $this->view->setVar('item', $user);
     $this->view->setVar('form', $form);
     if (!$this->request->isPost()) {
         return false;
     }
     $data = $this->request->getPost();
     if (!$form->isFullValid($data)) {
         return $this->showInvalidMessages($form);
     }
     try {
         $form->save();
     } catch (\Exception $e) {
         return $this->showException($e, $form->getModel()->getMessages());
     }
     $this->flashSession->success('SUCCESS_USER_CREATED');
     return $this->redirectHandler('/admin/user/edit/' . $form->getModel()->id);
 }
Beispiel #3
0
 public function mobileAction()
 {
     if (!$this->request->isPost()) {
         return;
     }
     $data = $this->request->getPost();
     //配资姓名不需要username 和 email ,但是去掉对原有的登录系统又风险,所以先做个假的
     //        $data['username'] = '******'.$data['mobile'];
     //        $randomNumber = chr(mt_rand(97, 122));
     //        $data['username'] = $data['mobile'] . '_' . $randomNumber;
     $data['username'] = '******' . uniqid() . substr($data['mobile'], 7);
     $data['email'] = $data['mobile'] . '@fake.wallstreetcn.com';
     //        $data['screenName'] =
     //            substr($data['mobile'], 0, 3) . '******' . substr($data['mobile'], -2) . '_' . $randomNumber;
     if ($this->request->isAjax() || $this->request->get('ajax')) {
         $form = new Forms\MobileRegisterForm();
         if ($form->isValid($data) === false) {
             return $this->showInvalidMessagesAsJson($form);
         }
         $user = new Models\Register();
         $user->assign(array('email' => $data['email'], 'username' => $data['username'], 'mobile' => $this->request->getPost('mobile'), 'password' => $this->request->getPost('password'), 'screenName' => $data['screenName'], 'usernameCustomized' => 0, 'providerType' => $user->getProviderType('web', 'manual', 'mobile'), 'source' => Models\LoginRecord::getSourceOfUser()));
         $captcha = $this->request->getPost('captcha');
         try {
             $registerUser = $user->registerByMobile($captcha);
             return $this->showResponseAsJson($registerUser);
         } catch (\Exception $e) {
             return $this->showExceptionAsJson($e, $user->getMessages());
         }
     } else {
         $form = new Forms\MobileRegisterForm();
         if ($form->isValid($data) === false) {
             $this->showInvalidMessages($form);
             return $this->redirectHandler($this->getDI()->getConfig()->user->registerFailedRedirectUri, 'error');
         }
         $user = new Models\Register();
         $user->assign(array('username' => $data['username'], 'mobile' => $this->request->getPost('mobile'), 'password' => $this->request->getPost('password'), 'providerType' => $user->getProviderType('web', 'manual', 'mobile'), 'source' => Models\LoginRecord::getSourceOfUser()));
         $captcha = $this->request->getPost('captcha');
         try {
             $user->registerByMobile($captcha);
         } catch (\Exception $e) {
             $this->showException($e, $user->getMessages());
             return $this->redirectHandler($this->getDI()->getConfig()->user->registerFailedRedirectUri, 'error');
         }
         $this->flashSession->success('SUCCESS_USER_REGISTERED_ACTIVE_MAIL_SENT');
         return $this->redirectHandler($this->getDI()->getConfig()->user->registerSuccessRedirectUri);
     }
 }