/**
  * @param User $user
  * @return array
  */
 private function prepareFields(User $user)
 {
     // Prepare data
     $data = array();
     // Email
     if ($email = $user->getEmail()) {
         $data['u_email'] = $email;
     }
     // Password
     if ($password = $user->getPassword()) {
         $data['u_password'] = password_hash($password, PASSWORD_DEFAULT);
     } else {
         if ($hash = $user->getPasswordHash()) {
             $data['u_password'] = $hash;
         }
     }
     // Username
     if ($username = $user->getUsername()) {
         $data['u_username'] = $username;
     }
     if ($sub = $user->getSub()) {
         $data['u_sub'] = $user->getSub();
     }
     if ($accessToken = $user->getAccessToken()) {
         $data['u_last_access_token'] = $accessToken;
     }
     return $data;
 }
 /**
  * Login a specific user
  * @param Request $request
  * @param User $user
  * @return \Neuron\Net\Response
  */
 public function login(Request $request, User $user)
 {
     $request->getSession()->set('catlab-user-id', $user->getId());
     $request->getSession()->set('catlab-openid-access-token', $user->getAccessToken());
     $this->trigger('user:login', $user);
     return $this->postLogin($request, $user);
 }