summaryrefslogtreecommitdiff
path: root/src/controller/post_router.php
blob: e71852a38fbf3bf00f4654f81cea399274d572e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php
// src/controller/post_router.php
//
// routage des requêtes des formulaires et AJAX
// n'utilisent que des POST à l'exception d'un GET par fullcalendar
// les contrôleurs des formulaires sont appelés ici,
// ceux des requêtes AJAX sont derrière d'autres routeurs

declare(strict_types=1);


/* appel des contrôleurs dans password.php */
if(isset($_GET['action']) && $_GET['action'] === 'deconnexion')
{
    disconnect($entityManager);
}
elseif(isset($_GET['action']) && $_GET['action'] === 'modif_mdp')
{
    changePassword($entityManager);
}


if($_SERVER['REQUEST_METHOD'] === 'POST'){
    /* -- contrôleurs appellables par tout le monde -- */
    // POST "ajax"
    require '../src/controller/ajax_email.php';

    // POST "form"
    // ...


    if($_SESSION['admin'] === true)
    {
        /* -- requêtes "form" -- */
        if($_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded') // moyen approximatif de distinguer les requêtes de formulaires et AJAX
        {
            require '../src/controller/post_functions_admin.php';

            /* -- nouvelle page -- */
            if(isset($_POST['page_name']) && $_POST['page_name'] !== null
                && isset($_POST['page_name_path']) && $_POST['page_name_path'] !== null
                && isset($_POST['page_location']) && $_POST['page_location'] !== null
                && isset($_POST['page_description']) && $_POST['page_description'] !== null
                && isset($_POST['new_page_hidden']) && $_POST['new_page_hidden'] === '')
            {
                newPage($entityManager);
            }
            
            /* -- suppression d'une page -- */
            elseif(isset($_POST['page_id']) && $_POST['page_id'] !== null
                && isset($_POST['submit_hidden']) && $_POST['submit_hidden'] === '')
            {
                deletePage($entityManager);
            }


            /* -- mode Modification d'une page -- */

            // modification du chemins en snake_case
            elseif(isset($_POST['page_menu_path']) && $_POST['page_menu_path'] !== null
                && isset($_POST['page_id']) && $_POST['page_id'] !== null
                && isset($_POST['page_name_path_hidden']) && $_POST['page_name_path_hidden'] === '')
            {
                pageMenuPathUpdate($entityManager);
            }
            // ajout d'un bloc dans une page
            elseif(isset($_POST['bloc_title']) && $_POST['bloc_title'] !== null
                && isset($_POST['bloc_select']) && $_POST['bloc_select'] !== null
                && isset($_POST['bloc_title_hidden']) && $_POST['bloc_title_hidden'] === '') // contrôle anti-robot avec input hidden
            {
                addBloc($entityManager);
            }
            // suppression d'un bloc de page
            elseif(isset($_POST['delete_bloc_id']) && $_POST['delete_bloc_id'] !== null
                && isset($_POST['delete_bloc_hidden']) && $_POST['delete_bloc_hidden'] === '') // contrôle anti-robot avec input hidden
            {
                deleteBloc($entityManager);
            }


            /* -- page Menu et chemins -- */

            // création d'une entrée de menu avec une URL
            elseif(isset($_POST["label_input"]) && isset($_POST["url_input"]) && isset($_POST["location"])){
                newUrlMenuEntry($entityManager);
            }
            // suppression d'une entrée de menu avec une URL
            elseif(isset($_POST['delete']) && isset($_POST['x']) && isset($_POST['y'])){ // 2 params x et y sont là parce qu'on a cliqué sur une image
                deleteUrlMenuEntry($entityManager);
            }

            // modification du mot de passe
            elseif(isset($_GET['action']) && $_GET['action'] === 'modif_mdp'
                && isset($_POST['login']) && isset($_POST['old_password']) && isset($_POST['new_password'])
                && isset($_POST['modify_password_hidden']) && empty($_POST['modify_password_hidden']))
            {
                changePassword($entityManager);
            }
            else{
                header("Location: " . new URL(['error' => 'paramètres inconnus']));
                die;
            }
        }

        /* -- requêtes AJAX -- */
        else{
            require '../src/controller/ajax_admin.php';
            require '../src/controller/ajax_calendar_admin.php';
        }
    }
}
// cas particulier d'un GET ajax non-admin par fullcalendar
elseif($_SERVER['REQUEST_METHOD'] === 'GET'){
    // non-admin
    require '../src/controller/ajax_calendar_visitor.php';

    if($_SESSION['admin'] === true){
        // ...
    }
}