浏览代码

Maj Edit Teams Access

stany.ferer 3 月之前
父节点
当前提交
26d9bd7966

+ 1 - 0
conf.inc.php

@@ -49,6 +49,7 @@ define("DB_T_BANQUE_COMPTES", "banque_comptes");
 define("DB_T_BANQUE_LIGNES", "banque_lignes");
 define("DB_T_BANQUE_CSV", "banque_csv");
 define("DB_T_ACCESS", "access");
+define("DB_T_ACCESS_EXCEPTION", "access_exception");
 define("DB_T_DOCUMENTS", "documents");
 define("DB_T_DOCUMENT_FILES", "documents_files");
 define("DB_T_DOCUMENT_TAGS", "documents_tags");

+ 248 - 106
core/class/access.class.php

@@ -35,12 +35,12 @@ class access
 
         db::query("SELECT "
             . "" . DB_T_ACCESS . ".id, "
-            . "" . DB_T_ACCESS . ".label, "
             . "" . DB_T_ACCESS . ".access, "
             . "" . DB_T_ACCESS . ".noAccess, "
-            . "" . DB_T_TYPE_ACCESS . ".exception "
+            . "" . DB_T_ACCESS_EXCEPTION . ".exception "
             . "FROM " . DB_T_TYPE_ACCESS . " "
             . "INNER JOIN " . DB_T_ACCESS . " ON " . DB_T_TYPE_ACCESS . ".id_access = " . DB_T_ACCESS . ".id "
+            . "LEFT JOIN " . DB_T_ACCESS_EXCEPTION . " ON " . DB_T_TYPE_ACCESS . ".id_exception = " . DB_T_ACCESS_EXCEPTION . ".id "
             . "WHERE " . DB_T_TYPE_ACCESS . ".id_type = :id_type ");
         db::bind(':id_type', $idType);
 
@@ -61,51 +61,9 @@ class access
         }
     }
 
-    public static function getAccessByType()
-    {
-        $return = array();
-        db::query("SELECT "
-            . "" . DB_T_TYPE_USER . ".type, "
-            . "" . DB_T_ACCESS . ".label, "
-            . "" . DB_T_ACCESS . ".show, "
-            . "" . DB_T_ACCESS . ".add "
-            . "FROM " . DB_T_ACCESS . " "
-            . "INNER JOIN " . DB_T_TYPE_USER . " ON " . DB_T_TYPE_USER . ".id = " . DB_T_TYPE_ACCESS . ".id_type "
-            . "INNER JOIN " . DB_T_TYPE_ACCESS . " ON " . DB_T_ACCESS . ".id = " . DB_T_TYPE_ACCESS . ".id_access");
-        try {
-            $tmp = db::resultset();
-
-            foreach ($tmp as $access) {
-                $return[$access["type"]][$access["label"]] = array(
-                    "show" => $access["show"],
-                    "add" => $access["add"],
-                );
-            }
-
-            return $return;
-        } catch (Exception $e) {
-            return FALSE;
-        }
-    }
-
-    public static function getTypesAccess()
-    {
-        db::query("SELECT "
-            . "" . DB_T_ACCESS . ".label, "
-            . "" . DB_T_ACCESS . ".show, "
-            . "" . DB_T_ACCESS . ".add "
-            . "FROM " . DB_T_ACCESS);
-        try {
-            $tmp = db::resultset();
-            return $tmp;
-        } catch (Exception $e) {
-            return FALSE;
-        }
-    }
-
     public static function getTypesUsers(bool $_expect = FALSE)
     {
-        $except = ($_expect == FALSE) ? NULL : " WHERE " . DB_T_TYPE_USER . ".id != 1 AND " . DB_T_TYPE_USER . ".id != 2";
+        $except = ($_expect == FALSE) ? NULL : " WHERE " . DB_T_TYPE_USER . ".id != 2"; // Sauf les contrôleurs
 
         db::query("SELECT * FROM " . DB_T_TYPE_USER . $except);
         try {
@@ -116,62 +74,6 @@ class access
         }
     }
 
-    public static function getArrayTypes()
-    {
-        $return = $final = array();
-        $getTypesUsers = self::getTypesUsers(TRUE);
-
-        db::query("SELECT "
-            . "CONCAT(" . DB_T_ACCESS . ".label, '|', " . DB_T_ACCESS . ".show, " . DB_T_ACCESS . ".add) AS access, "
-            . "" . DB_T_TYPE_ACCESS . ".id_type, "
-            . "" . DB_T_TYPE_ACCESS . ".exception, "
-            . "" . DB_T_TYPE_USER . ".type "
-            . "FROM " . DB_T_ACCESS . " "
-            . "LEFT JOIN " . DB_T_TYPE_ACCESS . " ON " . DB_T_TYPE_ACCESS . ".id_access = " . DB_T_ACCESS . ".id "
-            . "LEFT JOIN " . DB_T_TYPE_USER . " ON " . DB_T_TYPE_ACCESS . ".id_type = " . DB_T_TYPE_USER . ".id "
-        );
-
-        try {
-            $tmp = db::resultset();
-
-            foreach ($tmp as $access) {
-            
-                    $tmpaccess = explode("|", $access["access"]);
-
-                    if($tmpaccess[1] == "10"){
-                        $return[$access["access"]]["access"] = "Accès à " . $tmpaccess[0] . " en lecture";
-                    } elseif($tmpaccess[1] == "01"){
-                        $return[$access["access"]]["access"] = "Accès à " . $tmpaccess[0] . " en écriture";
-                    } else {
-                        $return[$access["access"]]["access"] = "Accès à " . $tmpaccess[0] . " en lecture et écriture";
-                    }
-
-                    foreach ($getTypesUsers as $type) { 
-                        if (empty($return[$access["access"]][$type["type"]])) {
-                            if ($type["id"] == $access["id_type"]) {
-                                if(is_null($access["exception"])){
-                                    $return[$access["access"]][$type["type"]] = 1;
-                                } else {
-                                    $return[$access["access"]][$type["type"]] = 2; 
-                                }
-                            } 
-                            else {
-                                $return[$access["access"]][$type["type"]] = 0;
-                            }
-                        } 
-                    }
-                        $return[$access["access"]]["Administrateur"] = 1;
-                }
-
-                foreach ($return as $value) {
-                    $final[] = $value;
-                }
-            return $final;
-        } catch (Exception $e) {
-            return FALSE;
-        }
-    }
-
     public static function ifLimitAccessException(string $_exception)
     {
         $accessList = self::getAccessList(session::getType());
@@ -210,11 +112,6 @@ class access
         return ($check == TRUE) ? $string : FALSE;
     }
 
-    private static function getGenericAccess(string $_string)
-    {
-        return explode("*", $_string);
-    }
-
     private static function splitAccess(string $_string)
     {
         $return = array();
@@ -229,4 +126,249 @@ class access
     {
         return array_unique(array_merge(self::splitAccess($_string), $_array));
     }
+
+    public static function getListTypeUser(?array $_idExceptions = NULL )
+    {
+        $return = array();
+        db::query("SELECT id, type FROM " . DB_T_TYPE_USER);
+        try {
+            $return = [];
+            foreach (db::resultset() as $value) {
+                if(is_null($_idExceptions) OR (!is_null($_idExceptions) AND !in_array($value["id"], $_idExceptions)) ){
+                    $return[$value["id"]] = $value["type"];
+                } 
+            }
+            return $return;
+        } catch (Exception $e) {
+            return FALSE;
+        }
+    }
+
+    public static function printRenderAccessRow(array $valueAccess){
+        if (!is_null($valueAccess["exception"])) { 
+            $tooltip = '<span class="ms-2" data-bs-toggle="tooltip" title="Possibilité d\'accès partiel avec les éléments cachés suivants : ' . htmlspecialchars($valueAccess["exception"]) . '"><i class="bi bi-info-circle-fill" style="color:#ffc107;"></i></span>';
+        } else {
+            $tooltip = '';
+        }
+
+        echo '<tr>';
+        echo '<td style="vertical-align: middle; box-sizing: border-box;">' . $valueAccess["label"] . $tooltip . '</td>';
+        
+        $tmp = [];
+
+        foreach ($valueAccess["access"] as $keyRole => $valueRole) { 
+            $tmp[$keyRole] = '<td style="width: 180px;"><div style="text-align:center;">';
+            $tmp[$keyRole] .= self::getSelectAccess($valueAccess["access"][$keyRole], $valueAccess["exception"]);
+            $tmp[$keyRole] .= '</div></td>';
+        }
+
+        echo $tmp[1]; // Administrateur
+        echo $tmp[5]; // Bureau du CSE
+        echo $tmp[6]; // Elu du CSE
+        echo $tmp[7]; // Comptable
+        echo $tmp[4]; // Modérateur du CMS
+        echo $tmp[3]; // Assistance sociale
+
+        echo '</tr>';
+    }
+
+    private static function getSelectAccess(?array $_access = NULL, ?string $_exception = NULL){
+        if (!is_null($_exception)) {
+            $options = [
+                1 => 'Autorisé',
+                0 => '-',
+                2 => 'Partiellement'
+            ];
+            
+        } else {
+            $options = [
+                1 => 'Autorisé',
+                0 => '-',
+            ];
+        }
+
+        $bgColors = [
+            1 => 'background-color:#d4edda;',
+            0 => 'background-color:#f8d7da;',
+            2 => 'background-color:#ffeeba;'
+        ];
+
+        $disabled = ($_access["id_type"] == 1 OR $_access["id_access"] == 3) ? ' disabled' : '';
+        $disabledStyle = ($_access["id_type"] == 1 OR $_access["id_access"] == 3) ? ' opacity: 0.5; cursor: not-allowed;' : '';
+        $style = isset($bgColors[$_access["access"]]) ? $bgColors[$_access["access"]] : '';
+
+        $return = '<select class="form-select form-select-sm" name="access-' . str_replace("#", "-", $_access["id_type_access"]) . '" style="' . $style . $disabledStyle . '"' . $disabled . '>';
+        foreach ($options as $value => $label) {
+            $selected = ($_access["access"] === $value) ? ' selected' : '';
+            $return .=  '<option value="' . $value . '"' . $selected . '>' . $label . '</option>';
+        }
+        $return .= '</select>';
+
+        return $return;
+    }
+
+    private static function completeIdemAccess(?array $_access = NULL, string $_idAccess){
+        $roles = self::getListTypeUser([2]); // Tous les types sauf les contrôleurs
+        foreach ($roles as $keyRole => $valueRole) {
+            if(empty($_access["access"][$keyRole])){
+                $tmp = [];
+                $tmp["id_type_access"] = $keyRole . "#" . $_access["id_access"];
+                $tmp["id_type"] = $keyRole;
+                $tmp["id_access"] = $_idAccess;
+                $tmp["type"] = $valueRole;
+                $tmp["access"] = ($keyRole == 1) ? 1 : 0;
+                $return[$keyRole] = $tmp;
+            } else {
+                $return[$keyRole] = $_access["access"][$keyRole];
+            }
+        }
+        return $return;
+    }
+
+    public static function finalCompletAccess(){
+        $access = access::getTypesAccessRecording();
+        $return = [];
+        foreach ($access as $keyAccess => $valueAccess) {
+            $completeAccess = access::completeIdemAccess($valueAccess, $valueAccess["id_access"]);
+            unset($valueAccess["access"]);
+            $valueAccess["access"] = $completeAccess;
+            $return[] = $valueAccess;
+        }
+        return $return;
+    }
+
+    private static function getTypesAccess(){
+        db::query("SELECT "
+            . DB_T_ACCESS . ".id, "
+            . DB_T_ACCESS . ".label, "
+            . DB_T_ACCESS . ".show, "
+            . DB_T_ACCESS . ".add, "
+            . DB_T_TYPE_ACCESS . ".id AS id_type_access, "
+            . DB_T_TYPE_ACCESS . ".id_type, "
+            . "exception1.exception AS exception_type, "
+            . "exception2.exception AS exception, "
+            . DB_T_TYPE_USER . ".type "
+            . "FROM " . DB_T_ACCESS . " "
+            . "LEFT JOIN " . DB_T_ACCESS_EXCEPTION . " AS exception1 ON exception1.id_access = " . DB_T_ACCESS . ".id "
+            . "LEFT JOIN " . DB_T_TYPE_ACCESS . " ON " . DB_T_TYPE_ACCESS . ".id_access = " . DB_T_ACCESS . ".id "
+            . "LEFT JOIN " . DB_T_TYPE_USER . " ON " . DB_T_TYPE_ACCESS . ".id_type = " . DB_T_TYPE_USER . ".id "
+            . "LEFT JOIN " . DB_T_ACCESS_EXCEPTION . " AS exception2 ON " . DB_T_TYPE_ACCESS . ".id_exception = exception2.id "
+        );
+        try {
+            $tmp = db::resultset();
+            return $tmp;
+        } catch (Exception $e) {
+            return FALSE;
+        }
+    }
+
+    private static function getTitleLabel(array $_array){
+        if ($_array["show"] == 1 AND $_array["add"] == 0) {
+            return "Accès à <strong>" . $_array["label"] . "</strong> en lecture";
+        } elseif ($_array["show"] == 0 AND $_array["add"] == 1) {
+            return "Accès à <strong>" . $_array["label"] . "</strong> en écriture";
+        } else {
+            return "Accès à <strong>" . $_array["label"] . "</strong> en lecture et écriture";
+        }
+    }
+
+    public static function getTypesAccessRecording(){
+        $return = [];
+        foreach (self::getTypesAccess() as $valueAccess) {
+            $return[$valueAccess["id"]]["id_access"] = $valueAccess["id"];
+            $return[$valueAccess["id"]]["label"] = self::getTitleLabel($valueAccess);
+            $return[$valueAccess["id"]]["show"] = $valueAccess["show"];
+            $return[$valueAccess["id"]]["add"] = $valueAccess["add"];
+            $return[$valueAccess["id"]]["exception"] = $valueAccess["exception_type"];
+            
+            if(!empty($valueAccess["id_type_access"])) {
+                $return[$valueAccess["id"]]["access"][$valueAccess["id_type"]] = [
+                    "id_type_access" => $valueAccess["id_type_access"],
+                    "id_type" => $valueAccess["id_type"],
+                    "id_access" => $valueAccess["id"],
+                    "type" => $valueAccess["type"],
+                    "access" => (empty($valueAccess["exception"])) ? 1 : 2,
+                ];
+            }
+        }
+        return $return;
+    }
+
+    public static function getAccessByRole(){
+        $getAccessByRole = self::getTypesAccessRecording();
+        $allTypeRole = self::getTypesUsers();
+        $return = [];
+        foreach ($getAccessByRole as $valuesGetAccessByRole) {
+            $tmp = [];
+            $tmp["access"] = $valuesGetAccessByRole["label"];
+            $tmp["exception"] = $valuesGetAccessByRole["exception"];
+            foreach ($allTypeRole  as $valueAllTypeRole) {
+                if(!empty($valuesGetAccessByRole["access"][$valueAllTypeRole["id"]])){
+                    $tmp[$valuesGetAccessByRole["access"][$valueAllTypeRole["id"]]["type"]] = $valuesGetAccessByRole["access"][$valueAllTypeRole["id"]]["access"];
+                } elseif($valueAllTypeRole["id"] == 1){
+                    $tmp[$valueAllTypeRole["type"]] = 1;
+                } else {
+                    $tmp[$valueAllTypeRole["type"]] = 0;
+                }
+            }
+            $return[] = $tmp;
+        }
+        return $return;
+    }
+
+    private static function getIdException(int $_idAccess){
+        db::query("SELECT "
+            . DB_T_ACCESS_EXCEPTION . ".id, "
+            . DB_T_ACCESS_EXCEPTION . ".exception "
+            . "FROM " . DB_T_ACCESS_EXCEPTION . " "
+            . "WHERE " . DB_T_ACCESS_EXCEPTION . ".id_access = :id_access");
+        db::bind(':id_access', $_idAccess);
+        try {
+            $tmp = db::single();
+            return $tmp;
+        } catch (Exception $e) {
+            return FALSE;
+        }
+    }
+
+    public static function recordAccess(){
+        $post = core::getPost();
+        $data = [];
+        foreach ($post as $keyPost => $valuePost) {
+            if($valuePost == 1 OR $valuePost == 2){
+                $tmp = explode("-", $keyPost);
+                $data[$tmp[1] . "#" . $tmp[2]]["id_access"] = $tmp[2];
+                $data[$tmp[1] . "#" . $tmp[2]]["id_type"] = $tmp[1];
+                if($valuePost == 2){ 
+                    $data[$tmp[1] . "#" . $tmp[2]]["id_exception"] = self::getIdException($tmp[2])["id"];
+                } else {
+                    $data[$tmp[1] . "#" . $tmp[2]]["id_exception"] = NULL;
+                }
+            }
+        }
+
+        // Vide la table
+        db::query("TRUNCATE TABLE " . DB_T_TYPE_ACCESS);
+        db::execute();
+
+        // Reconstruit la table
+        foreach ($data as $keyData => $valueData) {
+            db::query("INSERT INTO " . DB_T_TYPE_ACCESS . " (id, id_type, id_access, id_exception) VALUES (:id, :id_type, :id_access, :id_exception)");
+            db::bind(':id', $keyData);
+            db::bind(':id_type', $valueData["id_type"]);
+            db::bind(':id_access', $valueData["id_access"]);
+            db::bind(':id_exception', $valueData["id_exception"]);
+            try {
+                db::execute();
+            } catch (Exception $ex) {
+                alert::recError("Erreur à l'enregistrement des droits");
+                if(debug::isFile("debug")) { alert::recError("Stack : " . $ex); }
+                return FALSE;
+            }
+        }
+
+        return TRUE;
+
+    }
+
 }

+ 0 - 1
core/class/get.class.php

@@ -87,7 +87,6 @@ class get
                     }
                 // Exception
                 if (file_exists(DIR_DATAS_JSON . $file . '.json')) {
-                    header('Content-type: application/json');
                     require_once DIR_DATAS_JSON . $file . '.json';
                     exit();
                 } else {

+ 1 - 1
core/json/cms.parametre-access.php

@@ -1,6 +1,6 @@
 <?php 
 
-$row = access::getArrayTypes();
+$row = access::getAccessByRole();
 if (!empty($row)) {
     echo json_encode($row);
     exit();

+ 14 - 0
core/submit/cms.parametres-teams-edit.php

@@ -0,0 +1,14 @@
+<?php
+
+if(core::ifPost("from") AND core::getPost("from") == "parametres-teams-edit"){
+    if(access::recordAccess()) {
+        alert::recSuccess("Mise à jour des droits");
+    }
+    header("Location: /parametres-teams-edit.html");
+    exit();
+} else {
+    header('HTTP/1.0 401 Unauthorized');
+    exit();
+}
+
+

+ 69 - 0
core/views/pages/cms.parametres-teams-edit.php

@@ -0,0 +1,69 @@
+<header class="d-flex flex-column flex-md-row align-items-md-center p-3 bg-light ">
+    <h2 class="bd-title" id="content">
+        <span>Administration : Modification des Groupes & Droits</span>
+    </h2>
+</header>
+
+<?php
+echo core::filAriane(array(
+    "current" => "Modification",
+    "arbo" => array(
+        "Administration" => NULL,
+        "Groupes & Droits" => "/parametres-teams.html",
+        "Modification" => "/parametres-teams-edit.html"
+    )
+));
+
+?>
+
+<form method="post" action="/submit.php">
+    <input type="hidden" name="from" value="parametres-teams-edit">
+    <div>
+        <table id="table-edit" class="table-striped table-hover table-sm table table-bordered" width="100%">
+            <thead>
+                <tr>
+                    <th>Accès</th>
+                    <th width="180">Administrateur</th>
+                    <th width="180">Bureau du CSE</th>
+                    <th width="180">Elu du CSE</th>
+                    <th width="180">Comptable</th>
+                    <th width="180">Modérateur du CMS</th>
+                    <th width="180">Assistance sociale</th>
+                </tr>
+            </thead>
+            <tbody>
+                <?php 
+                    $access = access::finalCompletAccess();
+                    foreach ($access as $valueAccess) {
+                        access::printRenderAccessRow($valueAccess);
+                    }
+                ?>
+            </tbody>
+        </table>
+    </div>
+
+    <input class="btn btn-primary btn-lg" style="width: 100%" type="submit" value="Modifier les droits">
+</form>
+
+<script>
+document.querySelectorAll('.form-select').forEach(function(select) {
+    function updateBg() {
+        switch (select.value) {
+            case '1':
+                select.style.backgroundColor = '#d4edda';
+                break;
+            case '0':
+                select.style.backgroundColor = '#f8d7da';
+                break;
+            case '2':
+                select.style.backgroundColor = '#ffeeba';
+                break;
+            default:
+                select.style.backgroundColor = '';
+        }
+    }
+    select.addEventListener('change', updateBg);
+    updateBg(); 
+});
+</script>
+

+ 4 - 0
core/views/pages/cms.parametres-teams.php

@@ -8,7 +8,11 @@
     <h2 class="bd-title" id="content">
         <span>Administration : Groupes & Droits</span>
     </h2>
+    <div class="fix-container-button-nav">
+        <a href="/parametres-teams-edit.html"><button type="submit" class="btn btn-outline-success btn-sm"><?php icon::getFont(["icon" => "bi bi-file-earmark-plus"]) ?> Modifier des règles</button></a>   
+    </div>
 </header>
+
 <?php
 echo core::filAriane(array(
     "current" => "Groupes & Droits",

+ 89 - 0
maj/sql/maj.sql

@@ -0,0 +1,89 @@
+DROP TABLE IF EXISTS `type_access`;
+DROP TABLE IF EXISTS `access_exception`;
+
+CREATE TABLE `access_exception` (
+  `id` int NOT NULL,
+  `id_access` int NOT NULL,
+  `exception` varchar(150) NOT NULL,
+  PRIMARY KEY (`id`),
+  KEY `id_access` (`id_access`)
+) ENGINE=InnoDB;
+
+CREATE TABLE `type_access` (
+  `id` varchar(7) NOT NULL,
+  `id_type` int NOT NULL,
+  `id_access` int NOT NULL,
+  `id_exception` int DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `idx_access_type` (`id_access`),
+  KEY `idx_type_access` (`id_type`),
+  KEY `idx_exception` (`id_exception`)
+) ENGINE=InnoDB;
+
+ALTER TABLE `type_access`
+  ADD CONSTRAINT `fk_access_type` FOREIGN KEY (`id_access`) REFERENCES `access` (`id`),
+  ADD CONSTRAINT `fk_exception` FOREIGN KEY (`id_exception`) REFERENCES `access_exception` (`id`),
+  ADD CONSTRAINT `fk_type_access` FOREIGN KEY (`id_type`) REFERENCES `type_user` (`id`);
+
+ALTER TABLE `access_exception`
+  ADD CONSTRAINT `id_access` FOREIGN KEY (`id_access`) REFERENCES `access` (`id`);
+
+INSERT INTO `access_exception` (`id`, `id_access`, `exception`) VALUES
+(1, 16, 'salaire'),
+(2, 17, 'salaire');
+
+INSERT INTO `type_access` (`id`, `id_type`, `id_access`, `id_exception`) VALUES
+('3#10', 3, 10, NULL);
+
+INSERT INTO `type_access` (`id`, `id_type`, `id_access`, `id_exception`) VALUES
+('4#10', 4, 10, NULL),
+('4#11', 4, 11, NULL),
+('4#12', 4, 12, NULL),
+('4#13', 4, 13, NULL),
+('4#14', 4, 14, NULL),
+('4#15', 4, 15, NULL),
+('4#16', 4, 16, 1),
+('4#17', 4, 17, 2),
+('4#4', 4, 4, NULL),
+('4#5', 4, 5, NULL),
+('4#6', 4, 6, NULL),
+('4#7', 4, 7, NULL),
+('4#8', 4, 8, NULL),
+('4#9', 4, 9, NULL);
+
+INSERT INTO `type_access` (`id`, `id_type`, `id_access`, `id_exception`) VALUES
+('5#1', 5, 1, NULL),
+('5#10', 5, 10, NULL),
+('5#11', 5, 11, NULL),
+('5#12', 5, 12, NULL),
+('5#13', 5, 13, NULL),
+('5#14', 5, 14, NULL),
+('5#15', 5, 15, NULL),
+('5#16', 5, 16, NULL),
+('5#17', 5, 17, NULL),
+('5#2', 5, 2, NULL),
+('5#4', 5, 4, NULL),
+('5#5', 5, 5, NULL),
+('5#6', 5, 6, NULL),
+('5#7', 5, 7, NULL),
+('5#8', 5, 8, NULL),
+('5#9', 5, 9, NULL);
+
+INSERT INTO `type_access` (`id`, `id_type`, `id_access`, `id_exception`) VALUES
+('6#10', 6, 10, NULL),
+('6#11', 6, 11, NULL),
+('6#12', 6, 12, NULL),
+('6#14', 6, 14, NULL),
+('6#15', 6, 15, NULL),
+('6#16', 6, 16, 1),
+('6#17', 6, 17, 2),
+('6#4', 6, 4, NULL),
+('6#5', 6, 5, NULL),
+('6#7', 6, 7, NULL),
+('6#8', 6, 8, NULL);
+
+INSERT INTO `type_access` (`id`, `id_type`, `id_access`, `id_exception`) VALUES
+('7#1', 7, 1, NULL),
+('7#16', 7, 16, NULL),
+('7#17', 7, 17, NULL);
+

+ 2 - 0
public-cms/json.php

@@ -8,5 +8,7 @@ require_once "../conf.inc.php";
 require_once DIR_PHP_LAYOUTS . "header.php";
 require_once DIR_PHP_LAYOUTS . "cms.session.php";
 
+header('Content-Type: application/json');
+
 get::json();
 get::jsonData();