msg["no_configuration_required"]; return $result; } public function update_config_from_form() { return; } public function instantiate_source_class($source_id) { return new apijsonrpc_source($this, $source_id, $this->msg); } //On chargera nous même les messages si on en a besoin public function need_global_messages() { return false; } public function process($source_id, $pmb_user_id) { $apijsonrpc_jsonrpcserver = new apijsonrpc_jsonrpcserver($this); $apijsonrpc_jsonrpcserver->process($source_id, $pmb_user_id, $this->json_input); //Rien return; } public function return_json_error($message, $request) { $response = array ( 'id' => $request['id'], 'result' => NULL, 'error' => $message ); // output the response if (!empty($request['id'])) { header('content-type: application/json;charset=utf-8'); echo json_encode($response); } die(); } public function get_running_pmb_userid($source_id) { global $auth_user; global $auth_pw; $user_id = 1; $this->json_input = json_decode(file_get_contents('php://input'),true); if (!$this->json_input) return 1; $sc = $this->instantiate_source_class($source_id); // Ajout pour Bibloto if (!empty($auth_user) && !empty($auth_pw)) { $this->json_input["auth_user"] = $auth_user; $this->json_input["auth_pw"] = md5($auth_user . $auth_pw . $sc->config['auth_connexion_phrase'] . $this->json_input["id"] . $this->json_input["method"]); } $credentials_user = ''; $credentials_password = ''; if (isset($this->json_input["auth_user"])) { $credentials_user = $this->json_input["auth_user"]; if (isset($this->json_input["auth_pw"])) { //Vérification du hash salé double $requete="select esuser_password from es_esusers where esuser_username='".addslashes($credentials_user)."'"; $resultat=pmb_mysql_query($requete); if ($resultat) { $pwd=pmb_mysql_result($resultat,0,0); $salt=md5($credentials_user.md5($pwd).$sc->config['auth_connexion_phrase'].$this->json_input["id"].$this->json_input["method"]); if ($salt==$this->json_input["auth_pw"]) $credentials_password=$pwd; } } //$credentials_password = isset($this->json_input["auth_pw"]) ? $this->json_input["auth_pw"] : ''; } if (isset($_SERVER['PHP_AUTH_USER'])) { $credentials_user = $_SERVER['PHP_AUTH_USER']; $credentials_password = $_SERVER['PHP_AUTH_PW']; } if (!$credentials_user) { //Si on ne nous fourni pas de credentials, alors on teste l'utilisateur anonyme $user_id = connector_out_check_credentials('', '', $source_id); if ($user_id === false) { $this->return_json_error('Access with no credentials is forbidden.', $this->json_input); } } else { $user_id = connector_out_check_credentials($credentials_user, $credentials_password, $source_id); if ($user_id === false) { $this->return_json_error('Bad credentials.', $this->json_input); } } return $user_id; } } class apijsonrpc_source extends connecteur_out_source { public function get_config_form() { global $charset; if(!isset($this->config['auth_connexion_phrase'])){ $this->config['auth_connexion_phrase'] = ""; } $result = parent::get_config_form(); $result .= "