Skip to content
Snippets Groups Projects
Commit 57a50435 authored by SARPCAN ERCAN's avatar SARPCAN ERCAN :hourglass_flowing_sand:
Browse files

TP7 fin

parent cdf6a6a3
No related merge requests found
Showing
with 65 additions and 430 deletions
......@@ -57,15 +57,15 @@ class UserController extends Controller
public function signout(Request $request)
{
$request->session()->flush();
return redirect()->route("signin");
return redirect()->route("signin")->with('message', 'You have been disconnected.');
}
public function authenticate(Request $request)
{
$request->session()->start();
if (empty($request->input('login')) || empty($request->input('password'))) {
$request->session()->put('message', 'Some POST data are missing.');
return redirect()->route("signin");
//$request->session()->put('message', 'Some POST data are missing.');
return redirect()->route("signin")->with('message', 'Some POST data are missing.');
}
$login = htmlspecialchars($request->input('login'));
......@@ -74,20 +74,19 @@ class UserController extends Controller
try {
if (!$user->exists()) {
$request->session()->put('message', 'Wrong login/password');
return redirect()->route('signin');
//$request->session()->put('message', 'Wrong login/password');
return redirect()->route('signin')->with('message', 'Wrong login/password');
}
} catch (\PDOException $e) {
// Si erreur lors de la création de l'objet PDO
// (déclenchée par MyPDO::pdo())
$request->session()->put('message', $e->getMessage());
return redirect()->route('signin');
//$request->session()->put('message', $e->getMessage());
return redirect()->route('signin')->with('message', $e->getMessage());
} catch (\Exception $e) {
// Si erreur durant l'exécution de la requête
// (déclenchée par le throw de $user->exists())
$request->session()->put('message', 'Wrong login/password');
return redirect()->route('signin');
//$request->session()->put('message', 'Wrong login/password ');
return redirect()->route('signin')->with('message', 'Wrong login/password ');
}
$request->session()->put('user', $login);
......@@ -95,12 +94,11 @@ class UserController extends Controller
}
public function adduser(Request $request)
{
unset($_SESSION['message']);
// 2. On vérifie que les données attendues existent
if (empty($request->input('login')) || empty($request->input('password')) || empty($request->input('confirm'))) {
$request->session()->put('message', "Some POST data are missing.");
return redirect()->route("signup");
//$request->session()->put('message', "Some POST data are missing.");
return redirect()->route("signup")->with('message', "Some POST data are missing.");
}
// 3. On sécurise les données reçues
......@@ -110,8 +108,8 @@ class UserController extends Controller
// 4. On vérifie que les deux mots de passe correspondent
if ($password !== $confirm) {
$request->session()->put('message', "The two passwords differ.");
return redirect()->route("signup");
//$request->session()->put('message', "The two passwords differ.");
return redirect()->route("signup")->with('message', "The two passwords differ.");
}
// 1. On crée l'utilisateur avec les identifiants passés en POST
......@@ -123,33 +121,32 @@ class UserController extends Controller
} catch (\PDOException $e) {
// Si erreur lors de la création de l'objet PDO
// (déclenchée par MyPDO::pdo())
$request->session()->put('message', $e->getMessage());
return redirect()->route("signup");
// $request->session()->put('message', $e->getMessage());
return redirect()->route("signup")->with('message', $e->getMessage());
} catch (\Exception $e) {
// Si erreur durant l'exécution de la requête
// (déclenchée par le throw de $user->create())
$request->session()->put('message', $e->getMessage());
return redirect()->route("signup");
//$request->session()->put('message', $e->getMessage());
return redirect()->route("signup")->with('message', $e->getMessage());
}
// 3. On indique que le compte a bien été créé
$request->session()->put('message', "Account created! Now, signin.");
//$request->session()->put('message', "Account created! Now, signin.");
// 4. On sollicite une redirect()->routeion vers la page d'accueil
return redirect()->route("signin");
return redirect()->route("signin")->with('message', "Account created! Now, signin.");
}
public function changepassword(Request $request)
{
unset($_SESSION['message']);
// 2. On récupère le login dans une variable
$login = $request->session()->get("user");
// 2. On vérifie que les données attendues existent
if (empty($request->input('newpassword')) || empty($request->input('confirmpassword'))) {
$request->session()->put('message', "Some POST data are missing.");
return redirect()->route("formpassword");
// $request->session()->put('message', "Some POST data are missing.");
return redirect()->route("formpassword")->with('message', "Some POST data are missing.");
}
// 3. On sécurise les données reçues
......@@ -158,8 +155,8 @@ class UserController extends Controller
// 4. On s'assure que les 2 mots de passes sont identiques
if ($newpassword != $confirmpassword) {
$request->session()->put('message', "Error: passwords are different.");
return redirect()->route("formpassword");
//$request->session()->put('message', "Error: passwords are different.");
return redirect()->route("formpassword")->with('message', "Error: passwords are different.");
}
......@@ -173,24 +170,23 @@ class UserController extends Controller
// Si erreur lors de la création de l'objet PDO
// (déclenchée par MyPDO::pdo())
$request->session()->put('message', $e->getMessage());
return redirect()->route("formpassword");
return redirect()->route("formpassword")->with('message', $e->getMessage());;
} catch (Exception $e) {
// Si erreur durant l'exécution de la requête
// (déclenchée par le throw de $user->changePassword())
$request->session()->put('message', $e->getMessage());
return redirect()->route("formpassword");
return redirect()->route("formpassword")->with('message', $e->getMessage());;
}
// 3. On indique que le mot de passe a bien été modifié
$request->session()->put('message', "Password successfully updated.");
//$request->session()->put('message', "Password successfully updated.");
return redirect()->route("account");
return redirect()->route("account")->with('message', "Password successfully updated.");;
}
public function deleteuser(Request $request)
{
unset($_SESSION['message']);
/******************************************************************************
* Vérification de la session
*/
......@@ -207,13 +203,13 @@ class UserController extends Controller
} catch (PDOException $e) {
// Si erreur lors de la création de l'objet PDO
// (déclenchée par MyPDO::pdo())
$request->session()->put('message', $e->getMessage());
return redirect()->route("account");
//$request->session()->put('message', $e->getMessage());
return redirect()->route("account")->with('message', $e->getMessage());
} catch (Exception $e) {
// Si erreur durant l'exécution de la requête
// (déclenchée par le throw de $user->create())
$request->session()->put('message', $e->getMessage());
return redirect()->route("account");
//$request->session()->put('message', $e->getMessage());
return redirect()->route("account")->with('message', $e->getMessage());
}
// 3. On détruit la session
......@@ -223,10 +219,10 @@ class UserController extends Controller
$request->session()->start();
// 5. On indique que le compte a bien été supprimé
$request->session()->put('message', "Account successfully deleted.");
// $request->session()->put('message', "Account successfully deleted.");
// 6. On sollicite une redirect()->routeion vers la page d'accueil
return redirect()->route("signin");
return redirect()->route("signin")->with('message', "Account successfully deleted.");;
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserEloquent extends Model
{
use HasFactory;
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePasswordResetsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('password_resets', function (Blueprint $table) {
$table->string('email')->index();
$table->string('token');
$table->timestamp('created_at')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('password_resets');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateFailedJobsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('failed_jobs', function (Blueprint $table) {
$table->id();
$table->string('uuid')->unique();
$table->text('connection');
$table->text('queue');
$table->longText('payload');
$table->longText('exception');
$table->timestamp('failed_at')->useCurrent();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('failed_jobs');
}
}
......@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
class CreateUserEloquentsTable extends Migration
{
/**
* Run the migrations.
......@@ -13,14 +13,13 @@ class CreateUsersTable extends Migration
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
Schema::create('user_eloquents', function (Blueprint $table) {
$table->id('user_id');
$table->primary('user_id');
$table->string('user')->unique();
$table->string('password', 256);
$table->timestamps();
});
}
......@@ -31,6 +30,6 @@ class CreateUsersTable extends Migration
*/
public function down()
{
Schema::dropIfExists('users');
Schema::dropIfExists('user_eloquents');
}
}
No preview for this file type
<?php
/******************************************************************************
* Initialisation.
*/
unset($_SESSION['message']);
/******************************************************************************
* Traitement des données de la requête
*/
// 2. On vérifie que les données attendues existent
if ( empty($_POST['login']) || empty($_POST['password']) || empty($_POST['confirm']) )
{
$_SESSION['message'] = "Some POST data are missing.";
header('Location: signup');
exit();
}
// 3. On sécurise les données reçues
$login = htmlspecialchars($_POST['login']);
$password = htmlspecialchars($_POST['password']);
$confirm = htmlspecialchars($_POST['confirm']);
// 4. On vérifie que les deux mots de passe correspondent
if ( $password !== $confirm )
{
$_SESSION['message'] = "The two passwords differ.";
header('Location: signup');
exit();
}
/******************************************************************************
* Chargement du model
*/
use App\Models\MyUser;
/******************************************************************************
* Ajout de l'utilisateur
*/
// 1. On crée l'utilisateur avec les identifiants passés en POST
$user = new MyUser($login,$password);
// 2. On crée l'utilisateur dans la BDD
try {
$user->create();
}
catch (PDOException $e) {
// Si erreur lors de la création de l'objet PDO
// (déclenchée par MyPDO::pdo())
$_SESSION['message'] = $e->getMessage();
header('Location: signup');
exit();
}
catch (Exception $e) {
// Si erreur durant l'exécution de la requête
// (déclenchée par le throw de $user->create())
$_SESSION['message'] = $e->getMessage();
header('Location: signup');
exit();
}
// 3. On indique que le compte a bien été créé
$_SESSION['message'] = "Account created! Now, signin.";
// 4. On sollicite une redirection vers la page d'accueil
header('Location: signin');
exit();
<?php
/******************************************************************************
* Initialisation.
*/
unset($_SESSION['message']);
/******************************************************************************
* Traitement des données de la requête
*/
// 1. On vérifie que la méthode HTTP utilisée est bien POST
// 2. On vérifie que les données attendues existent
if ( empty($_POST['login']) || empty($_POST['password']) )
{
$_SESSION['message'] = "Some POST data are missing.";
header('Location: signin');
exit();
}
// 3. On sécurise les données reçues
$login = htmlspecialchars($_POST['login']);
$password = htmlspecialchars($_POST['password']);
/******************************************************************************
* Chargement du model
*/
use App\Models\MyUser;
/******************************************************************************
* Authentification
*/
// 1. On crée l'utilisateur avec les identifiants passés en POST
$user = new MyUser($login,$password);
// 2. On vérifie qu'il existe dans la BDD
try {
if ( !$user->exists() )
{
$_SESSION['message'] = 'Wrong login/password.';
header('Location: signin');
exit();
}
}
catch (PDOException $e) {
// Si erreur lors de la création de l'objet PDO
// (déclenchée par MyPDO::pdo())
$_SESSION['message'] = $e->getMessage();
header('Location: signin');
exit();
}
catch (Exception $e) {
// Si erreur durant l'exécution de la requête
// (déclenchée par le throw de $user->exists())
$_SESSION['message'] = $e->getMessage();
header('Location: signin');
exit();
}
// 3. On sauvegarde le login dans la session
$_SESSION['user'] = $login;
// 4. On sollicite une redirection vers la page du compte
header('Location: admin/account');
exit();
<?php
/******************************************************************************
* Initialisation.
*/
unset($_SESSION['message']);
/******************************************************************************
* Vérification de la session
*/
// 1. On vérifie que l'utilisateur est connecté
if ( empty($_SESSION['user']) )
{
header('Location: signin');
exit();
}
// 2. On récupère le login dans une variable
$login = $_SESSION['user'];
/******************************************************************************
* Traitement des données de la requête
*/
// 1. On vérifie que la méthode HTTP utilisée est bien POST
// 2. On vérifie que les données attendues existent
if ( empty($_POST['newpassword']) || empty($_POST['confirmpassword']) )
{
$_SESSION['message'] = "Some POST data are missing.";
header('Location: admin/formpassword');
exit();
}
// 3. On sécurise les données reçues
$newpassword = htmlspecialchars($_POST['newpassword']);
$confirmpassword = htmlspecialchars($_POST['confirmpassword']);
// 4. On s'assure que les 2 mots de passes sont identiques
if ( $newpassword != $confirmpassword )
{
$_SESSION['message'] = "Error: passwords are different.";
header('Location: admin/formpassword');
exit();
}
/******************************************************************************
* Chargement du model
*/
use App\Models\MyUser;
/******************************************************************************
* Changement du mot de passe
*/
// 1. On crée l'utilisateur avec les identifiants passés en POST
$user = new MyUser($login);
// 2. On change le mot de passe de l'utilisateur
try {
$user->changePassword($newpassword);
}
catch (PDOException $e) {
// Si erreur lors de la création de l'objet PDO
// (déclenchée par MyPDO::pdo())
$_SESSION['message'] = $e->getMessage();
header('Location: admin/formpassword');
exit();
}
catch (Exception $e) {
// Si erreur durant l'exécution de la requête
// (déclenchée par le throw de $user->changePassword())
$_SESSION['message'] = $e->getMessage();
header('Location: admin/formpassword');
exit();
}
// 3. On indique que le mot de passe a bien été modifié
$_SESSION['message'] = "Password successfully updated.";
// 4. On sollicite une redirection vers la page du compte
header('Location: account');
exit();
<?php
/******************************************************************************
* Initialisation.
*/
unset($_SESSION['message']);
/******************************************************************************
* Vérification de la session
*/
// 1. On vérifie que l'utilisateur est connecté
if ( empty($_SESSION['user']) )
{
header('Location: signin');
exit();
}
// 2. On récupère le login dans une variable
$login = $_SESSION['user'];
/******************************************************************************
* Chargement du model
*/
use App\Models\MyUser;
/******************************************************************************
* Suppression de l'utilisateur
*/
// 1. On crée l'utilisateur avec les identifiants passés en POST
$user = new MyUser($login);
// 2. On détruit l'utilisateur dans la BDD
try {
$user->delete();
}
catch (PDOException $e) {
// Si erreur lors de la création de l'objet PDO
// (déclenchée par MyPDO::pdo())
$_SESSION['message'] = $e->getMessage();
header('Location: account');
exit();
}
catch (Exception $e) {
// Si erreur durant l'exécution de la requête
// (déclenchée par le throw de $user->create())
$_SESSION['message'] = $e->getMessage();
header('Location: account');
exit();
}
// 3. On détruit la session
session_destroy();
// 4. On crée une nouvelle session
session_start();
// 5. On indique que le compte a bien été supprimé
$_SESSION['message'] = "Account successfully deleted.";
// 6. On sollicite une redirection vers la page d'accueil
header('Location: /');
exit();
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
......@@ -14,38 +14,23 @@ use App\Http\Controllers\UserController;
|
*/
Route::group([], function () {
session_start();
Route::prefix('admin')->middleware('auth.myuser')->group(function () {
Route::post('changepassword',[UserController::class, 'changepassword'] )->name('changepassword');
Route::get('deleteuser',[UserController::class, 'deleteuser'] )->name('deleteuser');
Route::prefix('admin')->middleware('auth.myuser')->group(function () {
Route::post('changepassword', [UserController::class, 'changepassword'])->name('changepassword');
Route::get('formpassword', [UserController::class, 'formpassword'] )->name('formpassword');
Route::get('deleteuser', [UserController::class, 'deleteuser'])->name('deleteuser');
Route::get('account', [UserController::class, 'account' ] )->name('account');;
Route::get('formpassword', [UserController::class, 'formpassword'])->name('formpassword');
Route::get('signout', [UserController::class, 'signout' ] )->name('signout');
});
Route::get('account', [UserController::class, 'account'])->name('account');;
Route::get('signup', [UserController::class, 'signup'] )->name('signup');
Route::get('/', [UserController::class, 'signin' ] )->name('/');
Route::get('signin', [UserController::class, 'signin' ] )->name('signin');
Route::get('signout', [UserController::class, 'signout'])->name('signout');
});
/* Route::post('adduser', function () {
return view('adduser');
})->name('adduser'); */
Route::get('signup', [UserController::class, 'signup'])->name('signup');
/* Route::post('authenticate', function () {
return view('authenticate');
})->name('authenticate');
*/
Route::post('adduser', [UserController::class, 'adduser'] )->name('adduser');
Route::post('authenticate', [UserController::class, 'authenticate'] )->name('authenticate');
Route::get('/', [UserController::class, 'signin'])->name('/');
Route::get('signin', [UserController::class, 'signin'])->name('signin');
});
Route::post('adduser', [UserController::class, 'adduser'])->name('adduser');
Route::post('authenticate', [UserController::class, 'authenticate'])->name('authenticate');
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment