- if($etat !== false){
- if(($user_status = $data->get_user_status()) !== false){
- if(
- (
- $action_status = $data->get_action_status(
- $etat["mod"],
- $etat["controller"],
- $etat["action"]
- )
- ) !== false
- ){
- $action = $etat["mod"]."/".$etat["controller"]."/".$etat["action"];
- if(isset($action_status[$action])){
- $OK =
- (isset($action_status[$action][0]) && $action_status[$action][0])
- || (isset($action_status[$action][$user_status]) && $action_status[$action][$user_status]);
- }
- else{
- $action = $etat["mod"]."/".$etat["controller"];
- if(isset($action_status[$action])){
- $OK =
- (isset($action_status[$action][0]) && $action_status[$action][0])
- || (isset($action_status[$action][$user_status]) && $action_status[$action][$user_status]);
- }
- else{
- $action = $etat["mod"];
- if(isset($action_status[$action])){
- $OK =
- (isset($action_status[$action][0]) && $action_status[$action][0])
- || (isset($action_status[$action][$user_status]) && $action_status[$action][$user_status]);
- }
- }
- }
+ if($etat === false){
+ $this->erreur("etat invalide");
+ return false;
+ }
+ if(($user_status = $data->get_user_status()) === false){
+ $this->erreur("Impossible de lire les roles de l'utilisateur courant");
+ return false;
+ }
+ if(!$user_status){
+ $this->erreur("L'utilisateur courant n'a aucun role");
+ return false;
+ }
+ if(
+ (
+ $action_status = $data->get_action_status(
+ $etat["mod"],
+ $etat["controller"],
+ $etat["action"]
+ )
+ ) === false
+ ){
+ $this->erreur("Impossible de lire les status des actions en base");
+ return false;
+ }
+ foreach($user_status as $id_role){
+ $OK = $this->config("default_allow");
+ $action = $etat["mod"];
+ if(isset($action_status[$action])){
+ $OK =
+ (isset($action_status[$action][0]) && $action_status[$action][0])
+ || (isset($action_status[$action][$id_role]) && $action_status[$action][$id_role]);
+ }
+ if(!$OK){
+ $action = $etat["mod"]."/".$etat["controller"];
+ if(isset($action_status[$action])){
+ $OK =
+ (isset($action_status[$action][0]) && $action_status[$action][0])
+ || (isset($action_status[$action][$id_role]) && $action_status[$action][$id_role]);
+ }
+ }
+ if(!$OK){
+ $action = $etat["mod"]."/".$etat["controller"]."/".$etat["action"];
+ if(isset($action_status[$action])){
+ $OK =
+ (isset($action_status[$action][0]) && $action_status[$action][0])
+ || (isset($action_status[$action][$id_role]) && $action_status[$action][$id_role]);