<?php

namespace App\User;

class LoginService
{

  public function __construct(UsersRepository $usersRepository) {
    $this->usersRepository = $usersRepository;  // LoginService hat jetzt Zugriff auf DB
  }

  public function check() {
    if (isset($_SESSION['login'])) {
      return true;
    } else {
        header("Location: login");
        die();  // hier könnte auch eine exeption ausgeführt werden
      }
  }

  // Returns true when the user is checked in, else false
  function is_checked_in() {
    return isset($_SESSION['login']);
  }

  public function attempt($username, $password) {
    $user = $this->usersRepository->findByUserName($username); // user aus db
    if(empty($user)) {
      return false;   // Nutzer nicht vorhanden
    }
    if (password_verify($password, $user->password )) { //echo ("Login erfolgreich!");
      session_regenerate_id(true);
      $_SESSION['login'] = $user->username;
      $_SESSION['rechte'] = $user->rechte;
      //var_dump ($_SESSION);      die();
      //session_regenerate_id(true);
      //var_dump ($_SESSION);      die();
      return true;    // Login erfolgreich
    } else {
      return false;
    }
  }

  public function impressum() {
    unset($_SESSION['login']);
    session_regenerate_id(true);      // nicht zwingend aber schadet nicht
  }

  public function logout() {
    unset($_SESSION['login']);
    session_regenerate_id(true);      // nicht zwingend aber schadet nicht
  }
}

?>
