'...', * 'email' '...' * 'login' => '...', * 'pwd' => '...', * 'om_collectivite' => '...', * 'om_profil' => '...', * 'delete' => false, * ) * @return string Le résultat du traitement */ public function cud_om_utilisateur($request_data) { $_POST = array(); // Check DATA if ( isset($request_data["nom"]) === false || isset($request_data["email"]) === false || isset($request_data["login"]) === false || isset($request_data["pwd"]) === false || isset($request_data["om_profil"]) === false ) { return $this->BAD_DATA; } $delete = false; if (isset($request_data["delete"]) === true) { $delete = $this->f->get_boolean_from_string($request_data["delete"]); } // Check and Get collectivité if (isset($request_data["om_collectivite"]) === false) { $request_data["om_collectivite"] = "agglo"; } $request_data['om_collectivite'] = $this->get_om_collectivite($request_data["om_collectivite"]); $request_data['om_profil'] = $this->get_om_profil($request_data["om_profil"]); // Check If Exists om_parametre $om_utilisateur = $this->get_om_utilisateur($request_data["nom"], $request_data["login"]); // If Exists Update or delete om_parametre if ($om_utilisateur == true ){ if ($delete){ $sql = "DELETE FROM ".DB_PREFIXE."om_utilisateur"; $sql .= " WHERE om_utilisateur=".$om_utilisateur." AND om_collectivite=".$request_data['om_collectivite'].";"; $qres = $this->f->execute_db_query($sql, array( 'origin' => __METHOD__, )); }else{ $this->update_om_utilisateur($om_utilisateur, $request_data); } }else{ if (!$delete){ $sucess = $this->creation_om_utilisateur($request_data); if (!$sucess) return $this->BAD_DATA; return $this->OK; }else{ return $this->BAD_DATA; } } return $this->OK; } /** * Cette methode prend les valeurs d'un om_utilisateur pour le créer * et renvoit l'identifiant du om_utilisateur créer ou false * * @param array $om_utilisateur_valeur Les champs renseignés du om_utilisateur. * @return int L'identifiant de om_utilisateur. */ private function creation_om_utilisateur($data) { $om_utilisateur = $this->f->get_inst__om_dbform(array( "obj" => "om_utilisateur", "idx" => "]", )); $valAuto = array(); foreach($om_utilisateur->champs as $value) { $valAuto[$value] = null; } foreach ($data as $colonne => $valeur) { $valAuto[$colonne] = $valeur; } $valAuto['om_type'] = 'DB'; if ($om_utilisateur->ajouter($valAuto) === false) { $this->setMessage(__("L'om_utilisateur n'a pas été créé.")); return false; } $this->setMessage(__("L'om_utilisateur a été créé avec succès.")); $this->om_utilisateur[$data['nom']] = $om_utilisateur->valF['om_utilisateur']; return $om_utilisateur->valF['om_utilisateur']; } /** * Cette methode prend les valeurs d'un om_utilisateur pour le modifier * et renvoit l'identifiant du om_utilisateur créer ou false * * @param array $om_utilisateur_valeur Les champs renseignés du om_utilisateur. * @return int L'identifiant de om_utilisateur. */ private function update_om_utilisateur($om_utilisateur, $data) { $sql = "UPDATE ".DB_PREFIXE."om_utilisateur SET "; foreach ($data as $colonne => $valeur) { $sql .= $this->f->escape_string_for_db_query($colonne)." = '".$this->f->escape_string_for_db_query($valeur)."', "; } $sql .= " WHERE om_utilisateur = ".$this->f->escape_string_for_db_query($om_utilisateur)." AND om_collectivite = ".$this->f->escape_string_for_db_query($data['om_collectivite']).";"; $qres = $this->f->execute_db_query($sql, array( 'origin' => __METHOD__, 'force_return' => true, )); if ($qres['code'] === 'KO') { $this->setMessage(__("L'om_utilisateur n'a pas été modifié. Erreur : ".$qres['message'])); return $this->KO; } $this->setMessage(__("L'om_utilisateur a été modifié avec succès.")); return $this->OK; } /** * Cette méthode prend le nom et le login d'un om_utilisateur et le transforme en * son identifiant en le trouvant dans la base de données et en le * sauvegardant pour réutilisation * * @param string $nom Nom de l'om_utilisateur. * @param string $login Login de l'om_utilisateur. * @return int L'identifiant de l'om_utilisateur. */ private function get_om_utilisateur($nom, $login) { if (array_key_exists($nom, $this->om_utilisateur) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT om_utilisateur FROM %1$som_utilisateur WHERE om_utilisateur.nom = \'%2$s\' AND om_utilisateur.login = \'%3$s\'', DB_PREFIXE, $this->f->escape_string_for_db_query($nom), $this->f->escape_string_for_db_query($login), ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("L'om_utilisateur passé en paramètre n'existe pas.")); return false; } $this->om_utilisateur[$nom] = $qres["result"]; } return $this->om_utilisateur[$nom]; } /** * Cette méthode prend le libellé de la collectivité et la transforme en * son identifiant en la trouvant dans la base de données et en la * sauvegardant pour réutilisation. * * @param string $collectivite_libelle Libellé de la collectivité. * @return int L'identifiant de la collectivité. */ private function get_om_collectivite($collectivite_libelle) { if (array_key_exists($collectivite_libelle, $this->om_collectivite) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT om_collectivite FROM %1$som_collectivite WHERE om_collectivite.libelle = \'%2$s\'', DB_PREFIXE, $this->f->escape_string_for_db_query($collectivite_libelle) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("La collectivité passée en paramètre n'existe pas.")); return false; } $this->om_collectivite[$collectivite_libelle] = $qres["result"]; } return $this->om_collectivite[$collectivite_libelle]; } /** * Cette méthode prend le libellé de la collectivité et la transforme en * son identifiant en la trouvant dans la base de données et en la * sauvegardant pour réutilisation. * * @param string $profil_libelle Libelle du profil. * @return int L'identifiant du profil. */ private function get_om_profil($profil_libelle) { if (array_key_exists($profil_libelle, $this->om_profil) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT om_profil FROM %1$som_profil WHERE om_profil.libelle = \'%2$s\'', DB_PREFIXE, $this->f->escape_string_for_db_query($profil_libelle) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("Le profil passé en paramètre n'existe pas.")); return false; } $this->om_profil[$profil_libelle] = $qres["result"]; } return $this->om_profil[$profil_libelle]; } } ?>