diff options
Diffstat (limited to 'src/controller/ViewDirector.php')
| -rw-r--r-- | src/controller/ViewDirector.php | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/controller/ViewDirector.php b/src/controller/ViewDirector.php index 2d37598..eda49e7 100644 --- a/src/controller/ViewDirector.php +++ b/src/controller/ViewDirector.php | |||
| @@ -9,6 +9,7 @@ use App\Entity\Node; | |||
| 9 | use Doctrine\ORM\EntityManager; | 9 | use Doctrine\ORM\EntityManager; |
| 10 | use Symfony\Component\HttpFoundation\Request; | 10 | use Symfony\Component\HttpFoundation\Request; |
| 11 | use Symfony\Component\HttpFoundation\Response; | 11 | use Symfony\Component\HttpFoundation\Response; |
| 12 | use Symfony\Component\HttpFoundation\RedirectResponse; | ||
| 12 | 13 | ||
| 13 | class ViewDirector extends AbstractBuilder // ViewDirector est aussi le premier Builder | 14 | class ViewDirector extends AbstractBuilder // ViewDirector est aussi le premier Builder |
| 14 | { | 15 | { |
| @@ -31,7 +32,7 @@ class ViewDirector extends AbstractBuilder // ViewDirector est aussi le premier | |||
| 31 | if(CURRENT_PAGE === 'article'){ | 32 | if(CURRENT_PAGE === 'article'){ |
| 32 | if(IS_ADMIN){ | 33 | if(IS_ADMIN){ |
| 33 | if(!$request->query->has('id')){ | 34 | if(!$request->query->has('id')){ |
| 34 | return new Response($this->html, 302); | 35 | return new RedirectResponse((string)new URL(['page' => $_GET['from'] ?? ''])); |
| 35 | } | 36 | } |
| 36 | else{ | 37 | else{ |
| 37 | // mode création d'article | 38 | // mode création d'article |
| @@ -42,10 +43,10 @@ class ViewDirector extends AbstractBuilder // ViewDirector est aussi le premier | |||
| 42 | } | 43 | } |
| 43 | } | 44 | } |
| 44 | elseif($request->query->get('id')[0] === 'n'){ // accès page nouvelle article interdit sans être admin | 45 | elseif($request->query->get('id')[0] === 'n'){ // accès page nouvelle article interdit sans être admin |
| 45 | return new Response($this->html, 302); | 46 | return new RedirectResponse((string)new URL(['page' => $_GET['from'] ?? ''])); |
| 46 | } | 47 | } |
| 47 | } | 48 | } |
| 48 | //else // l'id dans l'URL n'a pas d'effet ailleurs | 49 | // pas de else, l'id dans l'URL n'a pas d'effet ailleurs |
| 49 | 50 | ||
| 50 | 51 | ||
| 51 | /* 2/ accès au modèle */ | 52 | /* 2/ accès au modèle */ |
| @@ -59,7 +60,7 @@ class ViewDirector extends AbstractBuilder // ViewDirector est aussi le premier | |||
| 59 | 60 | ||
| 60 | // article non trouvé en BDD | 61 | // article non trouvé en BDD |
| 61 | if(CURRENT_PAGE === 'article' && !IS_ADMIN && self::$root_node->getNodeByName('main')->getAdoptedChild() === null){ | 62 | if(CURRENT_PAGE === 'article' && !IS_ADMIN && self::$root_node->getNodeByName('main')->getAdoptedChild() === null){ |
| 62 | return new Response($this->html, 302); | 63 | return new RedirectResponse((string)new URL(['page' => $_GET['from'] ?? ''])); |
| 63 | } | 64 | } |
| 64 | 65 | ||
| 65 | 66 | ||
| @@ -71,6 +72,6 @@ class ViewDirector extends AbstractBuilder // ViewDirector est aussi le premier | |||
| 71 | unset($_SESSION['flash_message']); | 72 | unset($_SESSION['flash_message']); |
| 72 | } | 73 | } |
| 73 | 74 | ||
| 74 | return new Response($this->html, 200); | 75 | return new Response($this->html); |
| 75 | } | 76 | } |
| 76 | } \ No newline at end of file | 77 | } \ No newline at end of file |
