diff --git a/App/ProtoControllers/Responsable.php b/App/ProtoControllers/Responsable.php index 98b8f5a72..e1bb8e34e 100644 --- a/App/ProtoControllers/Responsable.php +++ b/App/ProtoControllers/Responsable.php @@ -135,6 +135,20 @@ public static function isRespDeUtilisateur($resp, $user) && \App\ProtoControllers\Groupe::isResponsableGroupe($resp, \App\ProtoControllers\Utilisateur::getGroupesId($user), \includes\SQL::singleton()); } + /** + * Vérifie si un utilisateur est bien le grand responsable d'un employé + * + * @param string $resp + * @param string $user + * + * @return bool + */ + public static function isGrandRespDeUtilisateur($resp, $user) + { + return $resp != $user + && \App\ProtoControllers\Groupe::isGrandResponsableGroupe($resp, \App\ProtoControllers\Utilisateur::getGroupesId($user), \includes\SQL::singleton()); + } + /** * Vérifie si un utilisateur est responsable par délégation d'un employé * diff --git a/responsable/Fonctions.php b/responsable/Fonctions.php index 0d68a9329..23fc00b29 100644 --- a/responsable/Fonctions.php +++ b/responsable/Fonctions.php @@ -888,7 +888,8 @@ public static function traiteUserModule() }; $userLogin = $entities(getpost_variable('user_login')); - if (!\App\ProtoControllers\Responsable::isRespDeUtilisateur($_SESSION['userlogin'], $userLogin)) { + if (!(\App\ProtoControllers\Responsable::isRespDeUtilisateur($_SESSION['userlogin'], $userLogin) + || \App\ProtoControllers\Responsable::isGrandRespDeUtilisateur($_SESSION['userlogin']))) { redirect(ROOT_PATH . 'deconnexion'); exit; }