/**
  * @group entity
  * @group Userentity
  */
 public function testUpdatePassword()
 {
     $user = zbase_entity('user')->repository()->by('username', 'adminx')->first();
     $user->password = zbase_bcrypt('password');
     $user->unsetAllOptions();
     $user->save();
     zbase_alerts_reset();
     $newPassword = '******';
     $user->updateRequestPassword($newPassword);
     $this->assertTrue(zbase_alerts_has('info'));
     $this->assertFalse(empty($user->getDataOption('password_update_code', [])));
     $user->updatePassword($newPassword);
     $this->assertTrue(zbase_bcrypt_check($newPassword, $user->password));
     $user->password = zbase_bcrypt('password');
     $user->unsetAllOptions();
     $user->save();
 }
 /**
  * Handle a registration request for the application.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function postRegister(Request $request)
 {
     try {
         $validator = $this->registerValidator($request->all());
         if ($validator->fails()) {
             $this->throwValidationException($request, $validator);
         }
         zbase_alerts_reset();
         $user = $this->userCreate($request->all());
         if ($user instanceof \Zbase\Entity\Laravel\User\User) {
             zbase()->json()->setVariable('_redirect', $this->getRegisterRedirectPath($user));
             zbase()->json()->setVariable('register_success', 1);
             if (!zbase_is_json()) {
                 if ($user->loginAfterRegister()) {
                     \Auth::login($user);
                     return zbase_response(redirect($this->getRegisterRedirectPath($user)));
                 }
             }
         } else {
             zbase()->json()->setVariable('register_success', 0);
             if (!zbase_is_json()) {
                 return zbase_response(redirect(zbase_url_from_route('register')));
             }
         }
     } catch (\Zbase\Exceptions\RuntimeException $e) {
         zbase_exception_throw($e);
         return $this->error();
     }
 }