14,84 → 14,53 |
* Migre les observations et les images d'un utilisateur, lorsqu'il change d'adresse email |
* (ou les migre d'un utilisateur à l'autre) |
* |
* Utilisation : http://domain/serice:cel/Modification/?mail=ancien_email@x.fr&nouveau_mail=nouvel_email@x.fr |
* Utilisation : http://domain/service:cel/Modification/?mail=oldemail@example.fr&nouveau_mail=newemail@example.fr |
*/ |
class Modification extends Cel { |
|
public $table_image = "cel_images"; |
public $table_obs = "cel_obs"; |
|
|
public $table_image = "photo"; |
public $table_obs = "occurrence"; |
|
public function getRessource() { |
return $this->getElement(array()); |
} |
|
|
public function getElement($uid) { |
|
$mail = (isset($_GET['mail'])) ? $_GET['mail'] : false; |
$ancien_mail = (isset($_GET['mail'])) ? $_GET['mail'] : false; |
$nouveau_mail = (isset($_GET['nouveau_mail'])) ? $_GET['nouveau_mail'] : false; |
|
if(!$mail) { |
|
if(!$ancien_mail) { |
$this->envoyer("false"); |
return; |
} |
|
$ancien_mail = $mail; |
$nouveau_mail = $nouveau_mail; |
|
|
// si le mail n'a pas changé, on ne change rien |
if($ancien_mail == $nouveau_mail) { |
$this->envoyer("OK"); |
return; |
} |
|
|
// Sinon on doit changer des trucs dans les obs et les images |
|
// Une clé existe sur ordre, id_utilisateur et courriel utilisateur |
|
// Décalage de l'ordre d'éventuelles observations déjà existantes |
$requete_decalage_ordre_obs_1 = "UPDATE ".$this->table_obs." SET ordre = ordre + 9999999 ". |
"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail); |
$requete_decalage_ordre_obs_2 = "UPDATE ".$this->table_obs." SET ordre = ordre + 19999999 ". |
"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail); |
|
Cel::db()->executer($requete_decalage_ordre_obs_1); |
Cel::db()->executer($requete_decalage_ordre_obs_2); |
|
$requete_maj_mail_obs = "UPDATE ".$this->table_obs." SET courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ". |
"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail); |
|
|
$requete_maj_mail_obs = "UPDATE ".$this->table_obs." SET user_email = ".Cel::db()->proteger($nouveau_mail)." ". |
"WHERE user_email = ".Cel::db()->proteger($ancien_mail); |
|
Cel::db()->executer($requete_maj_mail_obs); |
|
$requete_maj_ordre_obs = "SELECT @ordval := 0; ". |
"UPDATE ".$this->table_obs." ". |
"SET ordre = (SELECT @ordval := @ordval + 1) ". |
"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ". |
"ORDER BY date_creation "; |
|
Cel::db()->executerRequete($requete_maj_ordre_obs); |
|
// Décalage de l'ordre d'éventuelles images déjà existantes |
$requete_decalage_ordre_img_1 = "UPDATE ".$this->table_image." SET ordre = ordre + 9999999 ". |
"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail); |
|
$requete_decalage_ordre_img_2 = "UPDATE ".$this->table_image." SET ordre = ordre + 19999999 ". |
"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail); |
|
Cel::db()->executer($requete_decalage_ordre_img_1); |
Cel::db()->executer($requete_decalage_ordre_img_2); |
|
$requete_maj_mail_img = "UPDATE ".$this->table_image." SET courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ". |
"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail); |
|
|
$requete_maj_mail_img = "UPDATE ".$this->table_image." SET user_email = ".Cel::db()->proteger($nouveau_mail)." ". |
"WHERE user_email = ".Cel::db()->proteger($ancien_mail); |
|
Cel::db()->executer($requete_maj_mail_img); |
|
|
$requete_maj_ordre_img = "SELECT @ordval := 0; ". |
"UPDATE ".$this->table_image." ". |
"SET ordre = (SELECT @ordval := @ordval + 1) ". |
"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ". |
"ORDER BY date_creation "; |
|
"UPDATE ".$this->table_image." ". |
"SET ordre = (SELECT @ordval := @ordval + 1) ". |
"WHERE user_email = ".Cel::db()->proteger($nouveau_mail)." ". |
"ORDER BY date_creation "; |
|
Cel::db()->executerRequete($requete_maj_ordre_img); |
|
|
$this->envoyer("OK"); |
return; |
} |