|
|
@@ -31,13 +31,14 @@ class access
|
|
|
public static function getAccessList(int $_idType = NULL)
|
|
|
{
|
|
|
($_idType == NULL) ? $idType = session::getType() : $idType = $_idType;
|
|
|
- $return["access"] = $return["noAccess"] = array();
|
|
|
+ $return["access"] = $return["noAccess"] = $return["exception"] = array();
|
|
|
|
|
|
db::query("SELECT "
|
|
|
. "" . DB_T_ACCESS . ".id, "
|
|
|
. "" . DB_T_ACCESS . ".label, "
|
|
|
. "" . DB_T_ACCESS . ".access, "
|
|
|
- . "" . DB_T_ACCESS . ".noAccess "
|
|
|
+ . "" . DB_T_ACCESS . ".noAccess, "
|
|
|
+ . "" . DB_T_TYPE_ACCESS . ".exception "
|
|
|
. "FROM " . DB_T_TYPE_ACCESS . " "
|
|
|
. "INNER JOIN " . DB_T_ACCESS . " ON " . DB_T_TYPE_ACCESS . ".id_access = " . DB_T_ACCESS . ".id "
|
|
|
. "WHERE " . DB_T_TYPE_ACCESS . ".id_type = :id_type ");
|
|
|
@@ -48,6 +49,7 @@ class access
|
|
|
foreach ($tmp as $access) {
|
|
|
$return["access"] = self::addInArray($access["access"], $return["access"]);
|
|
|
$return["noAccess"] = self::addInArray($access["noAccess"], $return["noAccess"]);
|
|
|
+ if(isset($access["exception"])) { $return["exception"] = self::addInArray($access["exception"], $return["exception"]); }
|
|
|
}
|
|
|
|
|
|
// Je supprime les restriction d'accès en fonction des accès accordés
|
|
|
@@ -122,6 +124,7 @@ class access
|
|
|
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 "
|
|
|
@@ -130,28 +133,34 @@ class access
|
|
|
|
|
|
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(isset($return[$access["access"]][$type["type"]]) AND $return[$access["access"]][$type["type"]] == 1)
|
|
|
- { $return[$access["access"]][$type["type"]] = 1;
|
|
|
- } elseif($type["id"] == $access["id_type"])
|
|
|
- { $return[$access["access"]][$type["type"]] = 1;
|
|
|
- } else
|
|
|
- { $return[$access["access"]][$type["type"]] = 0;
|
|
|
- }
|
|
|
+ $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;
|
|
|
+ $return[$access["access"]]["Administrateur"] = 1;
|
|
|
}
|
|
|
|
|
|
foreach ($return as $value) {
|
|
|
@@ -163,15 +172,24 @@ class access
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public static function ifLimitAccessException(string $_exception)
|
|
|
+ {
|
|
|
+ $accessList = self::getAccessList(session::getType());
|
|
|
+ return in_array($_exception, $accessList["exception"]) ? TRUE : FALSE;
|
|
|
+ }
|
|
|
+
|
|
|
public static function ifAccesss(string $_accessAsk, int $_idType = NULL)
|
|
|
{
|
|
|
if (session::isConnect() == FALSE and self::checkAccessOffLine($_accessAsk)) {
|
|
|
return TRUE;
|
|
|
}
|
|
|
- ($_idType == NULL) ? $idType = session::getType() : $idType = $_idType;
|
|
|
+
|
|
|
+ // Si Admin OK
|
|
|
+ $idType = $_idType == NULL ? session::getType() : $_idType;
|
|
|
if ($idType == 1) {
|
|
|
return TRUE;
|
|
|
- } // Si Admin OK
|
|
|
+ }
|
|
|
+ // Si Admin OK
|
|
|
|
|
|
$accessList = self::getAccessList($idType);
|
|
|
|