Merge pull request #54 from ThomasRubini/user_delete_admin

This commit is contained in:
Thomas Rubini 2023-01-23 14:18:33 +01:00 committed by GitHub
commit 40ef4800d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 1 deletions

View File

@ -128,16 +128,38 @@ final class UserController
}
public function deleteAction(Array $A_urlParams = null, Array $A_postParams = null)
{
if (count($A_urlParams) ==0 ) {
self::userDeleteAction($A_urlParams, $A_postParams);
}else{
self::adminDeleteAction($A_urlParams, $A_postParams);
}
}
private function userDeleteAction(Array $A_urlParams = null, Array $A_postParams = null)
{
Session::login_or_die();
$O_userModel = new UserModel();
$O_userModel->deleteByID($_SESSION["ID"]);
Session::destroy_session();
header("Location: /");
}
private function adminDeleteAction(Array $A_urlParams = null, Array $A_postParams = null)
{
Session::admin_or_die();
$I_user_id = Utils::intOrDie($A_urlParams[0]);
$O_userModel = new UserModel();
$O_userModel->deleteByID($I_user_id);
echo "Le compte à été supprimé avec succès";
}
}

View File

@ -74,7 +74,21 @@ final class UserModel extends UserSessionModel
$stmt->execute();
}
public function anonymiseByID($I_id){
$O_model = Model::get();
$stmt = $O_model->prepare("UPDATE RECIPE SET AUTHOR_ID = NULL WHERE AUTHOR_ID = :id");
$stmt->bindParam("id", $I_id);
$stmt->execute();
$stmt = $O_model->prepare("UPDATE APPRECIATION SET AUTHOR_ID = NULL WHERE AUTHOR_ID = :id");
$stmt->bindParam("id", $I_id);
$stmt->execute();
}
public function deleteByID($I_id){
self::anonymiseByID($I_id);
$O_model = Model::get();
$stmt = $O_model->prepare("DELETE FROM USER WHERE ID=:id");
$stmt->bindParam("id", $I_id);