Skip to content
Snippets Groups Projects
Commit c8834761 authored by Moreau Elise's avatar Moreau Elise
Browse files

add flash messages

parent 95bd6886
No related branches found
No related tags found
No related merge requests found
......@@ -13,6 +13,7 @@ use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Mapping\Driver\AnnotationDriver;
use Doctrine\ORM\Tools\Setup;
use Slim\Views\Twig;
use Slim\Flash\Messages;
return function (ContainerBuilder $containerBuilder) {
......@@ -73,8 +74,9 @@ return function (ContainerBuilder $containerBuilder) {
return $twig;
},
Messages::class => function (ContainerInterface $container) {
return new Messages();
}
]
);
};
......@@ -23,6 +23,7 @@ use Slim\App;
use Slim\Interfaces\RouteCollectorProxyInterface as Group;
use Slim\Views\Twig;
use Slim\Flash\Messages;
return function (App $app) {
......@@ -43,13 +44,24 @@ return function (App $app) {
}
);
$app->get('/login', function (Request $request, Response $response) {
return $this->get(Twig::class)->render($response, "/user/log_in.twig", []);
$app->get('/map', function (Request $request, Response $response) {
return $this->get(Twig::class)->render($response, "/map/map.twig", []);
}
);
$app->get('/map', function (Request $request, Response $response) {
return $this->get(Twig::class)->render($response, "/map/map.twig", []);
$app->group('/login', function (Group $group) {
$group->get('', function(Request $request, Response $response){
if (isset($_SESSION['userId'])) {
return $response
->withHeader('Location', '/account')
->withStatus(302);
}
$message = $this->get(Messages::class)->getFirstMessage('creation');
return $this->get(Twig::class)->render($response, "/user/log_in.twig", ["message" => $message]);
});
$group->post('', LogInUserAction::class);
}
);
......
......@@ -27,6 +27,7 @@
"doctrine/orm": "^2.7",
"monolog/monolog": "^2.1",
"php-di/php-di": "^6.2",
"slim/flash": "^0.4.0",
"slim/psr7": "^1.1",
"slim/slim": "^4.5",
"slim/twig-view": "^3.1",
......
......@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "7387974bdd21dd35717da3f375d6af23",
"content-hash": "f987a2008db776ca427aaa7be93e9c2b",
"packages": [
{
"name": "doctrine/annotations",
......@@ -1849,6 +1849,54 @@
"description": "A polyfill for getallheaders.",
"time": "2019-03-08T08:55:37+00:00"
},
{
"name": "slim/flash",
"version": "0.4.0",
"source": {
"type": "git",
"url": "https://github.com/slimphp/Slim-Flash.git",
"reference": "9aaff5fded3b54f4e519ec3d4ac74d3d1f2cbbbc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/slimphp/Slim-Flash/zipball/9aaff5fded3b54f4e519ec3d4ac74d3d1f2cbbbc",
"reference": "9aaff5fded3b54f4e519ec3d4ac74d3d1f2cbbbc",
"shasum": ""
},
"require": {
"php": ">=5.5.0"
},
"require-dev": {
"phpunit/phpunit": "^4.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Slim\\Flash\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Josh Lockhart",
"email": "hello@joshlockhart.com",
"homepage": "http://joshlockhart.com"
}
],
"description": "Slim Framework Flash message service provider",
"homepage": "http://slimframework.com",
"keywords": [
"flash",
"framework",
"message",
"provider",
"slim"
],
"time": "2017-10-22T10:35:05+00:00"
},
{
"name": "slim/psr7",
"version": "1.2.0",
......
......@@ -52,10 +52,10 @@ class CreateUserAction extends UserAction
$this->logger->info("User has been created.");
return $this->twig->render(
$this->response, "/user/user_profile.twig",
["user" => $user, "id" => $user->getId()]
);
$this->flash->addMessage('creation', 'Your account has been created. Please log in.');
return $this->response
->withHeader('Location', '/login')
->withStatus(302);
}
/**
......
......@@ -7,6 +7,7 @@ use App\Application\Actions\Action;
use Psr\Log\LoggerInterface;
use Doctrine\ORM\EntityManager;
use Slim\Views\Twig;
use Slim\Flash\Messages;
abstract class UserAction extends Action
{
......@@ -19,11 +20,12 @@ abstract class UserAction extends Action
* @param LoggerInterface $logger
* @param UserRepository $userRepository
*/
public function __construct(LoggerInterface $logger, EntityManager $em, Twig $twig)
public function __construct(LoggerInterface $logger, EntityManager $em, Twig $twig, Messages $flash)
{
parent::__construct($logger);
$this->userRepository = $em->getRepository('App\Domain\User\User');
$this->em = $em;
$this->flash = $flash;
$this->twig = $twig;
......
......@@ -15,10 +15,8 @@ class SessionMiddleware implements Middleware
*/
public function process(Request $request, RequestHandler $handler): Response
{
if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
session_start();
$request = $request->withAttribute('session', $_SESSION);
}
session_start();
$request = $request->withAttribute('session', $_SESSION);
return $handler->handle($request);
}
......
......@@ -40,6 +40,11 @@
</div>
{% endblock %}
<div class="content">
{% if message %}
<div class="ui message">
{{message}}
</div>
{% endif %}
{% block content %} {% endblock %}
</div>
{% block footer %}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment