Esempio n. 1
0
 /**
  * Retorna o usuário logado ou null se não estiver logado
  * @return mixed Objeto \Models\User do usuário logado ou null se não estiver logado
  */
 public static function user()
 {
     if (($data = \Controllers\SessionsController::extractCookieInfo()) != null) {
         $user = new \Models\User();
         $user->find($data['id']);
         return $user;
     }
     return null;
 }
Esempio n. 2
0
 public function index()
 {
     if (!isset($_SESSION['userId']) || $_SESSION['admin'] != true) {
         header('Location: /php_project/application/public/');
         exit;
     }
     $userDb = new \Models\User();
     $allUsers = $userDb->find();
     $this->view->appendToLayout('body', 'adminIndex');
     $this->view->display('layouts.default', $allUsers);
 }
 /**
  * Processa o formulário de login
  */
 protected static function processLoginForm()
 {
     // proteção contra CSRF
     \CSRF::Check();
     $email = isset($_POST['email']) ? $_POST['email'] : null;
     $password = isset($_POST['password']) ? $_POST['password'] : null;
     $hashedPassword = \Hash::password($password);
     $errors = [];
     if (empty($email)) {
         $errors[] = 'Informe seu email';
     }
     if (empty($password)) {
         $errors[] = 'Informe sua senha';
     }
     if (count($errors) > 0) {
         return \View::make('login', compact('errors'));
     }
     $DB = new \DB();
     $sql = "SELECT id, password, status FROM users WHERE email = :email";
     $stmt = $DB->prepare($sql);
     $stmt->bindParam(':email', $email);
     $stmt->execute();
     $rows = $stmt->fetchAll(\PDO::FETCH_OBJ);
     if (count($rows) <= 0) {
         $errors[] = 'Usuário não encontrado';
     } else {
         $user = $rows[0];
         if ($hashedPassword != $user->password) {
             $errors[] = 'Senha incorreta';
         } elseif ($user->status != \Models\User::STATUS_ACTIVE) {
             $errors[] = 'Ative sua conta antes de fazer login';
         } else {
             // busca os dados do usuário para criar os dados no cookie
             $objUser = new \Models\User();
             $objUser->find($user->id);
             // gera um token de acesso
             $token = $objUser->generateToken();
             // salva o cookie com os dados do usuário
             self::saveSessionCookieForUser($objUser);
             // redireciona para a página inicial
             redirect(getBaseURL());
         }
     }
     if (count($errors) > 0) {
         return \View::make('login', compact('errors'));
     }
 }