Skip to content

Commit

Permalink
user
Browse files Browse the repository at this point in the history
  • Loading branch information
TheMaxium69 committed Jun 29, 2021
1 parent 518b781 commit 1a8a1a6
Show file tree
Hide file tree
Showing 6 changed files with 153 additions and 3 deletions.
46 changes: 46 additions & 0 deletions core/Controllers/User.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?php

namespace Controllers;


class User extends Controller
{

protected $modelName = \Model\User::class;


public function login(){
$reponse = null;

if(!empty($_POST['username']) && !empty($_POST['password'])){
$usernameLogin = $_POST['username'];
$passwordLogin = $_POST['password'];
$resultLogin = $this->model->login($usernameLogin, $passwordLogin);
if($resultLogin){
\Http::redirect('index.php?controller=gateau&task=index');
}else{
$reponse = "Erreur de connexion";
}
}
$titreDeLaPage = "Connection";
\Rendering::render('users/login', compact('reponse', 'titreDeLaPage'));
}

public function loggout(){
$this->model->loggout();

\Http::redirect('index.php?controller=gateau&task=index');
}


public function index(){
$LoggedIn = $this->model->isLoggedIn();
if($LoggedIn){
$titreDeLaPage = "Profil";
\Rendering::render('users/profil', compact('titreDeLaPage'));
}else{
\Http::redirect('index.php?controller=gateau&task=index');
}

}
}
58 changes: 56 additions & 2 deletions core/Model/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,63 @@

namespace Model;


use PDO;

class User extends Model
{

protected $table = "users";
}

public $id;
public $username;
public $password;
public $email;

function findByUsername(string $username)
{
$resultat = $this->pdo->prepare('SELECT * FROM users WHERE username = :username');
$resultat->execute([
"username"=> $username
]);

$user = $resultat->fetchObject();

return $user;
}

function login(string $username, string $password)
{
$user = $this->findByUsername($username);

if($user && $user->password == $password){
$reponseLogin = true;
$userTab = [
"userId" => $user->id,
"userName" => $user->username,
"userEmail" => $user->email,
"userPassword" => $user->password
];
$_SESSION["user"]= $userTab;
}else{
$reponseLogin = false;
}

return $reponseLogin;
}

function isLoggedIn(){
if(isset($_SESSION['user']) ){
$reponseIsLoggedIn = true;
}else{
$reponseIsLoggedIn = false;
}

return $reponseIsLoggedIn;
}

function loggout(){
session_unset();
}


}
2 changes: 1 addition & 1 deletion index.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?php

session_start();
//on récupère les librairies nécéssaires

require_once "core/autoloading.php";
Expand Down
30 changes: 30 additions & 0 deletions templates/layout.html.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,36 @@
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
</ul>
<?php $modelUsers = new \Model\User();
$LoggedIn = $modelUsers->isLoggedIn();
if($LoggedIn){ ?>

<ul class="navbar-nav form-inline">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Compte de <?php $user = $_SESSION['user'];
echo $user['userName']; ?>
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a class="dropdown-item" href="index.php?controller=user&task=index">Profile</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="index.php?controller=user&task=loggout">Se Deconnecter</a></li>
</ul>
</li>
</ul>
<?php } else { ?>

<ul class="navbar-nav form-inline">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="index.php?controller=user&task=login">Login</a>
</li>
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="index.php?controller=user&task=signup">Sign-up</a>
</li>
</ul>

<?php } ?>

</div>
</div>
</nav>
Expand Down
15 changes: 15 additions & 0 deletions templates/users/login.html.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<h3>Connecte toi !</h3>
<h4><?php echo $reponse; ?></h4>
<form method="POST" action="index.php?controller=user&task=login">
<div class="form-group">
<label for="username">Username</label>
<input type="text" class="form-control" name="username" required>
</div>
<div class="form-group">
<label for="password">password</label>
<input type="password" class="form-control" name="password" required>
</div>
<div class="form-group">
<input type="submit" value="Log in" class="btn btn-outline-light">
</div>
</form>
5 changes: 5 additions & 0 deletions templates/users/profil.html.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?php $user = $_SESSION['user'];?>
<h1><?php echo $user['userName']; ?></h1>
<h5><?php echo $user['userEmail']; ?></h5>


0 comments on commit 1a8a1a6

Please sign in to comment.