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

current'

parent ebd3221f
No related merge requests found
......@@ -95,7 +95,6 @@ class UserController extends Controller
public function adduser(Request $request)
{
// 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")->with('message', "Some POST data are missing.");
......@@ -111,7 +110,7 @@ class UserController extends Controller
//$request->session()->put('message', "The two passwords differ.");
return redirect()->route("signup")->with('message', "The two passwords differ.");
}
$request->user().
// 1. On crée l'utilisateur avec les identifiants passés en POST
$user = new MyUser($login, $password);
......@@ -170,19 +169,19 @@ 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")->with('message', $e->getMessage());;
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")->with('message', $e->getMessage());;
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.");
return redirect()->route("account")->with('message', "Password successfully updated.");;
return redirect()->route("account")->with('message', "Password successfully updated.");
}
public function deleteuser(Request $request)
......@@ -219,10 +218,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")->with('message', "Account successfully deleted.");;
return redirect()->route("signin")->with('message', "Account successfully deleted.");
}
}
......@@ -8,4 +8,112 @@ use Illuminate\Database\Eloquent\Model;
class UserEloquent extends Model
{
use HasFactory;
private $_login;
private $_password;
private const USER_TABLE = "UserEloquent";
public function __construct(string $login, string $password = null)
{
$this->setLogin($login);
$this->setPassword($password);
}
public function login(): string
{
return $this->_login;
}
public function setLogin(string $login): void
{
$this->_login = $login;
}
public function password(): string
{
return $this->_password;
}
public function setPassword(?string $password): void
{
$this->_password = $password;
}
public function exists(): bool
{
// 1. On prépare la requête $request
$request = DB::connection()->getPdo()->prepare('SELECT password FROM ' . self::USER_TABLE . ' WHERE login = :login');
// 2. On assigne $login au paramêtre :login
$ok = $request->bindValue(":login", $this->_login, PDO::PARAM_STR);
// 3. On exécute la requête $request
$ok &= $request->execute();
if (!$ok) {
throw new Exception("Error: user access in DB failed.");
}
// 4. On vérifie que l'utilisateur a été trouvé et que son mot de passe
// correspond à celui de l'attribut $this->_password
$user = $request->fetch(PDO::FETCH_ASSOC);
return $user && password_verify($this->_password, $user['password']);
}
public function create(): void
{
$user = new UserEloquent;
$flight->name = $request->name;
$flight->name = $request->name;
$flight->save();
$request = DB::connection()->getPdo()->prepare('INSERT INTO ' . self::USER_TABLE . '(login,password) VALUES (:login,:password)');
$ok = $request->bindValue(":login", $this->_login, PDO::PARAM_STR);
$hashed_pass = Hash::make($this->_password );
$ok &= $request->bindValue(":password",$hashed_pass, PDO::PARAM_STR);
$ok &= $request->execute();
if (!$ok) {
throw new Exception("Error: user creation in DB failed.");
}
}
public function changePassword(string $newpassword): void
{
$request = DB::connection()->getPdo()->prepare('UPDATE ' . self::USER_TABLE . ' SET password = :password WHERE login = :login');
$ok = $request->bindValue(':login', $this->_login, PDO::PARAM_STR);
$hashed_pass = Hash::make($this->$newpassword );
$ok &= $request->bindValue(':password', $hashed_pass, PDO::PARAM_STR);
$ok &= $request->execute();
if (!$ok) {
throw new Exception("Error: password updating failed.");
}
$this->setPassword($newpassword);
}
public function delete(): void
{
$request = DB::connection()->getPdo()->prepare('DELETE FROM ' . self::USER_TABLE . ' WHERE login = :login');
$ok = $request->bindValue(':login', $this->_login, PDO::PARAM_STR);
$ok &= $request->execute();
if (!$ok) {
throw new Exception("Error while deleting your account.");
}
}
}
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