diff --git a/src/Account/AccountModule.php b/src/Account/AccountModule.php index d5fcfd3..395cbb3 100644 --- a/src/Account/AccountModule.php +++ b/src/Account/AccountModule.php @@ -25,7 +25,7 @@ class AccountModule extends Module $router->post('/inscription', SignupAction::class); $router->get('/mon-profil', [LoggedInMiddleware::class, AccountAction::class], 'account'); $router->post('/mon-profil', [LoggedInMiddleware::class, AccountEditAction::class]); - $router->get('/profil-utilisateur', [PasswordForgetAction::class, ProfilAction::class], 'account.profil'); - $router->post('/profil-utilisateur', ProfilAction::class); + $router->get('/password-utilisateur', [PasswordForgetAction::class, ProfilAction::class], 'account.profil'); + $router->post('/password-utilisateur', ProfilAction::class); } } diff --git a/src/Account/Action/AccountUserEditAction.php b/src/Account/Action/AccountUserEditAction.php new file mode 100644 index 0000000..5cf2a44 --- /dev/null +++ b/src/Account/Action/AccountUserEditAction.php @@ -0,0 +1,67 @@ +renderer = $renderer; + $this->auth = $auth; + $this->flashService = $flashService; + $this->userTable = $userTable; + } + + public function __invoke(ServerRequestInterface $request) + { + //$user = $this->auth->getUser(); + $params = $request->getParsedBody(); + $url_part = explode('/',$_SERVER['HTTP_REFERER']); + $chemin = $url_part[3].'/'.$url_part[4]; + $validator = (new Validator($params)) + ->required('firstname', 'lastname'); + if ($validator->isValid()) { + $userParams = [ + 'firstname' => $params['firstname'], + 'lastname' => $params['lastname'] + ]; + + $this->userTable->update($params['id_user'], $userParams); + $this->flashService->success("Le compte ".$params['username']." a bien été mis à jour"); + return new RedirectResponse($chemin); + //return new RedirectResponse($request->getUri()->getPath()); + } + $errors = $validator->getErrors(); + return $this->renderer->render('@account/account', compact('user', 'errors')); + } +} diff --git a/src/Account/Action/ActiveAction.php b/src/Account/Action/ActiveAction.php index fdb02e2..4bd92f7 100644 --- a/src/Account/Action/ActiveAction.php +++ b/src/Account/Action/ActiveAction.php @@ -46,21 +46,11 @@ class ActiveAction public function __invoke(ServerRequestInterface $request) { - // $user = $this->auth->getUser(); $params = $request->getParsedBody(); $url_part = explode('/',$_SERVER['HTTP_REFERER']); - //var_dump($url_part); - //var_dump($_SERVER['HTTP_REFERER']); $chemin = $url_part[3].'/'.$url_part[4]; - //echo "

"; - //echo "chemin=".$chemin; - //die(); - //echo "user_id2=".$params['id']; - //die(); - - $validator = (new Validator($params)) ->required('username', 'actif'); if ($validator->isValid()) { diff --git a/src/Admin/AdminModule.php b/src/Admin/AdminModule.php index ae50433..4a6ba7d 100644 --- a/src/Admin/AdminModule.php +++ b/src/Admin/AdminModule.php @@ -2,6 +2,8 @@ namespace App\Admin; +use App\Account\Action\AccountUserAction; +use App\Account\Action\AccountUserEditAction; use App\Account\Action\ActiveAction; use App\Auth\Action\PasswordForgetAction; use Framework\Auth\LoggedInMiddleware; @@ -25,6 +27,8 @@ class AdminModule extends Module $router->get('/dashboard/{user:[a-zA-Z\-0-9]+}', [LoggedInMiddleware::class, DashboardUserAction::class], 'dashboard.user'); $router->get('/activation', ActiveAction::class, 'account.active'); $router->post('/activation', ActiveAction::class); + $router->get('/profil-user', [LoggedInMiddleware::class, AccountUserEditAction::class], 'account.user'); + $router->post('/profil-user', [LoggedInMiddleware::class, AccountUserEditAction::class]); $router->any('/password_reinit', PasswordForgetAction::class, 'auth.password'); if ($renderer instanceof TwigRenderer) { $renderer->getTwig()->addExtension($adminTwigExtension); diff --git a/src/Admin/DashboardUserAction.php b/src/Admin/DashboardUserAction.php index 52aba9c..935702e 100644 --- a/src/Admin/DashboardUserAction.php +++ b/src/Admin/DashboardUserAction.php @@ -57,6 +57,8 @@ class DashboardUserAction $user = $this->userTable->findBy('username', $user_affiche); $id_affiche = $user->id; + // echo "id_affiche=".$id_affiche; + // die(); $actif_affiche = $user->actif; $listeAntennes = $this->antenneTable->findAllAntennes(); diff --git a/src/Admin/views/dashboard_user.twig b/src/Admin/views/dashboard_user.twig index 700128b..086f069 100644 --- a/src/Admin/views/dashboard_user.twig +++ b/src/Admin/views/dashboard_user.twig @@ -1,68 +1,78 @@ {% extends 'layout.twig' %} -{% block title "Ğ1-Marché - Tableau de bord User" %} +{% block title "Ğ1-Marché - Tableau bord User" %} {% block body %} -
-
-

Tableau de bord User - {{ user_affiche }}

-
- -

-

Profil

- - -

-

Liste des antennes suivies

- -

+

+

Profil

+ + +

+

Liste des antennes suivies

+ + +

+
{% endblock %} \ No newline at end of file diff --git a/src/Auth/Action/PasswordForgetAction.php b/src/Auth/Action/PasswordForgetAction.php index 9d55db6..615fe09 100644 --- a/src/Auth/Action/PasswordForgetAction.php +++ b/src/Auth/Action/PasswordForgetAction.php @@ -60,28 +60,38 @@ class PasswordForgetAction return $this->renderer->render('@auth/password',compact('affichage_div')); } $params = $request->getParsedBody(); + $url_part = explode('/',$_SERVER['HTTP_REFERER']); + $chemin = $url_part[3].'/'.$url_part[4]; + $validator = (new Validator($params)) ->notEmpty('email') ->email('email'); if ($validator->isValid()) { - try { - $user = $this->userTable->findBy('email', $params['email']); - $token = $this->userTable->resetPassword($user->id); - $this->mailer->send($user->email, [ - 'id' => $user->id, - 'token' => $token - ]); - $this->flashService->success('Un email vous a été envoyé'); - $affichage_div = false; - return $this->renderer->render('@auth/password',compact('affichage_div')); - } catch (NoRecordException $e) { + // try { + if ($user = $this->userTable->findBy('email', $params['email'])) { + + $token = $this->userTable->resetPassword($user->id); + $this->mailer->send($user->email, [ + 'id' => $user->id, + 'token' => $token + ]); + $this->flashService->success("Un email a été envoyé à l'utilisateur"); + + $affichage_div = false; + return new RedirectResponse($chemin); + //return $this->renderer->render('@auth/password', compact('affichage_div')); + } else { + $this->flashService->error('Aucun utilisateur ne correspond à cet email'); + } + /* } catch (NoRecordException $e) { //$errors = ['email' => 'Aucun utilisateur ne correspond à cet email']; $this->flashService->error('Aucun utilisateur ne correspond à cet email'); - } + }*/ } else { $errors = $validator->getErrors(); } $affichage_div = true; - return $this->renderer->render('@auth/password', compact('errors','affichage_div')); + $email = $params['email']; + return $this->renderer->render('@auth/password', compact('email','errors','affichage_div')); } } diff --git a/src/Auth/views/email/password.html.twig b/src/Auth/views/email/password.html.twig index e2a84fe..72e8898 100644 --- a/src/Auth/views/email/password.html.twig +++ b/src/Auth/views/email/password.html.twig @@ -4,7 +4,7 @@ Site Ğ1-Marché

Vous avez demandé la réinitialisation de votre mot de passe.
- Veuillez pour se faire, cliquer sur le lien ci-dessous : + Veuillez pour ce faire, cliquer sur le lien ci-dessous :

{{ domain }}{{ path('auth.reset', {id: id, token: token}) }} diff --git a/src/Auth/views/email/password.text.twig b/src/Auth/views/email/password.text.twig index 53018bd..6ac5e24 100644 --- a/src/Auth/views/email/password.text.twig +++ b/src/Auth/views/email/password.text.twig @@ -2,6 +2,6 @@ Site Ğ1-Marché Vous avez demandé la réinitialisation de votre mot de passe. -Veuillez pour se faire, cliquer sur le lien ci-dessous : +Veuillez pour ce faire, cliquer sur le lien ci-dessous : {{ domain }}{{ path('auth.reset', {id: id, token: token}) }} \ No newline at end of file