12400 getPermission

This commit is contained in:
Fred Tempez 2023-05-11 19:31:20 +02:00
parent b4f5546a5f
commit 4af57f42b7

View File

@ -908,25 +908,32 @@ class common
*/ */
public function getPermission($key1, $key2 = null) public function getPermission($key1, $key2 = null)
{ {
// User n'existe pas
if (is_array($this->user) === false) { if (is_array($this->user) === false) {
return false; return false;
// Administrateur, toutes les permissions
} elseif ($this->getUser('group') === self::GROUP_ADMIN) { } elseif ($this->getUser('group') === self::GROUP_ADMIN) {
return true; return true;
// Groupe sans autorisation
} elseif ($this->getUser('group') < 1) { } elseif ($this->getUser('group') < 1) {
return false; return false;
// Groupe avec profil, consultation des autorisations sur deux clés
} elseif ( } elseif (
$key2 $key2
&& $this->getData(['profil', $this->user['group'], $this->user['profil'], $key1]) && $this->getData(['profil', $this->user['group'], $this->user['profil'], $key1])
&& array_key_exists($key2, $this->getData(['profil', $this->user['group'], $this->user['profil'], $key1])) && array_key_exists($key2, $this->getData(['profil', $this->user['group'], $this->user['profil'], $key1]))
) { ) {
return $this->getData(['profil', $this->user['group'], $this->user['profil'], $key1, $key2]); return $this->getData(['profil', $this->user['group'], $this->user['profil'], $key1, $key2]);
// Groupe avec profil, consultation des autorisations sur une seule clé
} elseif ( } elseif (
$this->getData(['profil', $this->user['group'], $this->user['profil']]) $this->getData(['profil', $this->user['group'], $this->user['profil']])
&& array_key_exists($key1, $this->getData(['profil', $this->user['group'], $this->user['profil']])) && array_key_exists($key1, $this->getData(['profil', $this->user['group'], $this->user['profil']]))
) { ) {
return $this->getData(['profil', $this->user['group'], $this->user['profil'], $key1]); return $this->getData(['profil', $this->user['group'], $this->user['profil'], $key1]);
} else { } else {
return false; // Permission non spécifiée dans le profil est autorisée par défaut pour le fonctionnement de $action
return true;
//return false;
} }
} }