diff --git a/src/Account/Action/ActiveAction.php b/src/Account/Action/ActiveAction.php new file mode 100644 index 0000000..6aa61fb --- /dev/null +++ b/src/Account/Action/ActiveAction.php @@ -0,0 +1,70 @@ +renderer = $renderer; + $this->auth = $auth; + $this->flashService = $flashService; + $this->userTable = $userTable; + } + + public function __invoke(ServerRequestInterface $request) + { + $user = $this->auth->getUser(); + var_dump($user); + die(); + $params = $request->getParsedBody(); + $validator = (new Validator($params)) + ->required('username', 'actif'); + if ($validator->isValid()) { + $userParams = [ + 'username' => $params['username'], + 'actif' => $params['actif'] + ]; + + $this->userTable->update($user->id, $userParams); + if (!$params['actif']) { + $this->flashService->success("L'utilisateur ".$params['username']." a bien été désactivé"); + } else { + $this->flashService->success("L'utilisateur ".$params['username']." a bien été réactivé"); + } + return new RedirectResponse($request->getUri()->getPath()); + } + $errors = $validator->getErrors(); + return $this->renderer->render('@account/account', compact('user', 'errors')); + } +} diff --git a/src/Admin/AdminModule.php b/src/Admin/AdminModule.php index c5ced31..8ce7888 100644 --- a/src/Admin/AdminModule.php +++ b/src/Admin/AdminModule.php @@ -2,6 +2,7 @@ namespace App\Admin; +use App\Account\Action\ActiveAction; use Framework\Module; use Framework\Renderer\RendererInterface; use Framework\Renderer\TwigRenderer; @@ -20,6 +21,8 @@ class AdminModule extends Module { $router->get('/dashboard', DashboardAction::class, 'dashboard'); $router->get('/dashboard/{user:[a-zA-Z\-0-9]+}', DashboardUserAction::class, 'dashboard.user'); + $router->get('/activation', ActiveAction::class, 'account.active'); + $router->post('/activation', ActiveAction::class); if ($renderer instanceof TwigRenderer) { $renderer->getTwig()->addExtension($adminTwigExtension); } diff --git a/src/Admin/Entity/User.php b/src/Admin/Entity/User.php index 5df5aa2..a92a0cd 100644 --- a/src/Admin/Entity/User.php +++ b/src/Admin/Entity/User.php @@ -30,4 +30,6 @@ class User public $avatar; public $suiviantenne; + + public $actif; } diff --git a/src/Admin/views/dashboard_user.twig b/src/Admin/views/dashboard_user.twig index d3facfe..e8a5434 100644 --- a/src/Admin/views/dashboard_user.twig +++ b/src/Admin/views/dashboard_user.twig @@ -9,8 +9,10 @@