Subversion Repositories eFlore/Applications.cel

Rev

Rev 3061 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3061 Rev 3084
1
<?php
1
<?php
2
/**
2
/**
3
 * PHP Version 5
3
 * PHP Version 5
4
*
4
*
5
* @category  PHP
5
* @category  PHP
6
* @package   cel
6
* @package   cel
7
* @author    aurelien <aurelien@tela-botanica.org>
7
* @author    aurelien <aurelien@tela-botanica.org>
8
* @copyright 2015 Tela-Botanica
8
* @copyright 2015 Tela-Botanica
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
* @version   SVN: <svn_id>
10
* @version   SVN: <svn_id>
11
*/
11
*/
-
 
12
 
-
 
13
/**
-
 
14
 * Migre les observations et les images d'un utilisateur, lorsqu'il change d'adresse email
12
 
15
 * (ou les migre d'un utilisateur à l'autre)
-
 
16
 * 
-
 
17
 * Utilisation : http://domain/serice:cel/Modification/?mail=ancien_email@x.fr&nouveau_mail=nouvel_email@x.fr
13
 
18
 */
14
class Modification extends Cel {
19
class Modification extends Cel {
15
	
20
	
16
	public $table_image = "cel_images";
21
	public $table_image = "cel_images";
17
	public $table_obs = "cel_obs";
22
	public $table_obs = "cel_obs";
18
	
23
	
19
	public function getRessource() {
24
	public function getRessource() {
20
		return $this->getElement(array());
25
		return $this->getElement(array());
21
	}
26
	}
22
	
27
	
23
	public function getElement($uid) {
28
	public function getElement($uid) {
24
			
29
 
25
		$id_utilisateur = (isset($_GET['id_utilisateur'])) ? $_GET['id_utilisateur'] : false;
-
 
26
		$mail = (isset($_GET['mail'])) ? $_GET['mail'] : false;
30
		$mail = (isset($_GET['mail'])) ? $_GET['mail'] : false;
27
		$nouveau_mail = (isset($_GET['nouveau_mail'])) ? $_GET['nouveau_mail'] : false;
31
		$nouveau_mail = (isset($_GET['nouveau_mail'])) ? $_GET['nouveau_mail'] : false;
28
		
32
		
29
		if(!$mail || !$id_utilisateur) {
33
		if(!$mail) {
30
			$this->envoyer("false");
34
			$this->envoyer("false");
31
		}
35
		}
32
		
36
		
33
		$ancien_mail = $mail;
37
		$ancien_mail = $mail;
34
		$nouveau_mail = $nouveau_mail;
38
		$nouveau_mail = $nouveau_mail;
35
		
39
		
36
		// si le mail n'a pas changé, on ne change rien
40
		// si le mail n'a pas changé, on ne change rien
37
		if($ancien_mail == $nouveau_mail) {
41
		if($ancien_mail == $nouveau_mail) {
38
			$this->envoyer("OK");
42
			$this->envoyer("OK");
39
			return;
43
			return;
40
		}
44
		}
41
		
45
		
42
		// Sinon on doit changer des trucs dans les obs et les images
46
		// Sinon on doit changer des trucs dans les obs et les images
43
		
47
		
44
		// Une clé existe sur ordre, id_utilisateur et courriel utilisateur 
48
		// Une clé existe sur ordre, id_utilisateur et courriel utilisateur 
45
		
49
		
46
		// Décalage de l'ordre d'éventuelles observations déjà existantes
50
		// Décalage de l'ordre d'éventuelles observations déjà existantes
47
		$requete_decalage_ordre_obs_1 = "UPDATE ".$this->table_obs." SET ordre = ordre + 9999999 ".
51
		$requete_decalage_ordre_obs_1 = "UPDATE ".$this->table_obs." SET ordre = ordre + 9999999 ".
48
				"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail);
52
				"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail);
49
		$requete_decalage_ordre_obs_2 = "UPDATE ".$this->table_obs." SET ordre = ordre + 19999999 ".
53
		$requete_decalage_ordre_obs_2 = "UPDATE ".$this->table_obs." SET ordre = ordre + 19999999 ".
50
				"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail);
54
				"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail);
51
		
55
		
52
		Cel::db()->executer($requete_decalage_ordre_obs_1);
56
		Cel::db()->executer($requete_decalage_ordre_obs_1);
53
		Cel::db()->executer($requete_decalage_ordre_obs_2);
57
		Cel::db()->executer($requete_decalage_ordre_obs_2);
54
		
58
		
55
		$requete_maj_mail_obs = "UPDATE ".$this->table_obs." SET courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ".
59
		$requete_maj_mail_obs = "UPDATE ".$this->table_obs." SET courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ".
56
					"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail);
60
					"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail);
57
		
61
		
58
		Cel::db()->executer($requete_maj_mail_obs);
62
		Cel::db()->executer($requete_maj_mail_obs);
59
		
63
		
60
		$requete_maj_ordre_obs = "SELECT @ordval := 0; ".
64
		$requete_maj_ordre_obs = "SELECT @ordval := 0; ".
61
					"UPDATE ".$this->table_obs." ".
65
					"UPDATE ".$this->table_obs." ".
62
					"SET ordre = (SELECT @ordval := @ordval + 1) ".
66
					"SET ordre = (SELECT @ordval := @ordval + 1) ".
63
        			"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ".
67
        			"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ".
64
        			"ORDER BY date_creation ";
68
        			"ORDER BY date_creation ";
65
		
69
		
66
		Cel::db()->executerRequete($requete_maj_ordre_obs);
70
		Cel::db()->executerRequete($requete_maj_ordre_obs);
67
		
71
		
68
		// Décalage de l'ordre d'éventuelles images déjà existantes
72
		// Décalage de l'ordre d'éventuelles images déjà existantes
69
		$requete_decalage_ordre_img_1 = "UPDATE ".$this->table_image." SET ordre = ordre + 9999999 ".
73
		$requete_decalage_ordre_img_1 = "UPDATE ".$this->table_image." SET ordre = ordre + 9999999 ".
70
				"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail);
74
				"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail);
71
		
75
		
72
		$requete_decalage_ordre_img_2 = "UPDATE ".$this->table_image." SET ordre = ordre + 19999999 ".
76
		$requete_decalage_ordre_img_2 = "UPDATE ".$this->table_image." SET ordre = ordre + 19999999 ".
73
				"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail);
77
				"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail);
74
		
78
		
75
		Cel::db()->executer($requete_decalage_ordre_img_1);
79
		Cel::db()->executer($requete_decalage_ordre_img_1);
76
		Cel::db()->executer($requete_decalage_ordre_img_2);		
80
		Cel::db()->executer($requete_decalage_ordre_img_2);		
77
		
81
		
78
		$requete_maj_mail_img = "UPDATE ".$this->table_image." SET courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ".
82
		$requete_maj_mail_img = "UPDATE ".$this->table_image." SET courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ".
79
				"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail);
83
				"WHERE courriel_utilisateur = ".Cel::db()->proteger($ancien_mail);
80
		
84
		
81
		Cel::db()->executer($requete_maj_mail_img);
85
		Cel::db()->executer($requete_maj_mail_img);
82
		
86
		
83
		$requete_maj_ordre_img = "SELECT @ordval := 0; ".
87
		$requete_maj_ordre_img = "SELECT @ordval := 0; ".
84
					"UPDATE ".$this->table_image." ".
88
					"UPDATE ".$this->table_image." ".
85
					"SET ordre = (SELECT @ordval := @ordval + 1) ".
89
					"SET ordre = (SELECT @ordval := @ordval + 1) ".
86
					"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ".
90
					"WHERE courriel_utilisateur = ".Cel::db()->proteger($nouveau_mail)." ".
87
					"ORDER BY date_creation ";
91
					"ORDER BY date_creation ";
88
		
92
		
89
		Cel::db()->executerRequete($requete_maj_ordre_img);
93
		Cel::db()->executerRequete($requete_maj_ordre_img);
90
		
94
		
91
		$this->envoyer("OK");
95
		$this->envoyer("OK");
92
		return;
96
		return;
93
	}
97
	}
94
}
98
}