Ejemplo n.º 1
0
 /**
  * Performs an authentication
  * @param  array
  * @return Nette\Security\Identity
  * @throws Nette\Security\AuthenticationException
  */
 public function authenticate(array $credentials)
 {
     $user = $this->users->where('email', $credentials['email'])->fetch();
     if (!$user) {
         $data = array("username" => $credentials['username'], "email" => $credentials['email'], "name" => $credentials['first_name'], "surname" => $credentials['last_name'], "sex" => strtoupper((string) $credentials['gender'][0]), "facebook_id" => $credentials['id'], "role" => "member", "password" => hash("sha512", strftime('%a%b%y') . str_repeat('mooow', 10)), "generated_password" => 1, "active" => 1);
         $user = $this->users->insert($data);
     } else {
         if ($user->facebook_id !== $credentials['id']) {
             $this->users->update(array('facebook_id' => $credentials['id']));
         }
     }
     $this->users->update(array('last_login' => new DibiDateTime(), 'last_ip' => $_SERVER['REMOTE_ADDR']));
     return new NS\Identity($user->id, $user->role, $user->toArray());
 }