Nom (complet) de l'e-tree * * @return data Données à synchroniser à la machine * =========================================================*/ public function dispatch($params){ extract($params); /* (1) On parse le nom complet ---------------------------------------------------------*/ $method_name = str_replace('-', '_', $etree); /* (2) Gestion du dispatch ---------------------------------------------------------*/ /* (1) Formulation requête */ $request = new Request("deployDefault/$method_name", []); /* (2) Gestion erreur */ if( $request->error->get() != Err::Success ) return ['error' => $request->error]; /* (3) Exécution */ $response = $request->dispatch(); /* (4) Gestion erreur */ if( $response->error->get() != Err::Success ) return ['error' => $response->error]; /* (5) Remontée du résultat */ return [ 'data' => $response->get('data') ]; } /* [1] Génération des données de fonctionnement de l'etree READ du module RFID * * @data Données à traiter * * @return data Données à synchroniser (permissions, etc) * =========================================================*/ public function rfid_read($params){ extract($params); /* [1] On récupére la liste des actions =========================================================*/ /* (1) On récupère les actions */ $actionsReq = new Repo('action/getAll'); $actions = ($actionsReq->error->get()==Err::Success) ? $actionsReq->answer() : []; /* (2) On regroupe les actions par TIMEOUT */ $sorted_actions = []; foreach($actions as $a=>$action){ /* (3) Si aucune valeur pour ce TIMEOUT, on crée un tableau vide */ if( !isset($sorted_actions[$action['timeout']]) ) $sorted_actions[$action['timeout']] = []; /* (4) On ajoute l'action au TIMEOUT */ $sorted_actions[$action['timeout']][] = [ 'id_action' => intval($action['id_action']), 'name' => strtolower($action['name']), 'required' => $action['required'], 'action' => $action['action'] ]; } /* [2] On récupère les utilisateurs + accès sur la machine =========================================================*/ /* (1) On récupère les utilisateurs et leurs permissions */ $permissionsReq = new Repo('action_merge/getAccess', [ $_SESSION['WAREHOUSE']['id'], $_SESSION['SATS']['id'] ]); $permissions = ($permissionsReq->error->get()==Err::Success) ? $permissionsReq->answer() : []; /* (2) Pour formatte et indexe les permissions par CODE RFID */ $indexed_permissions = []; foreach($permissions as $p=>$permission){ $actionList = explode(',', $permission['id_action']); foreach($actionList as $a=>$action) $actionList[$a] = intval($action); sort($actionList); $indexed_permissions[$permission['code']] = [ 'id_user' => intval($permission['id_user']), 'actions' => $actionList ]; } /* (3) Retourne les données récupérées */ return [ 'data' => [ 'actions' => $sorted_actions, 'permissions' => $indexed_permissions ] ]; } } ?>