Subversion Repositories Applications.framework

Rev

Rev 88 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 88 Rev 105
Line 1... Line 1...
1
<?php
1
<?php
-
 
2
// declare(encoding='UTF-8');
2
/**
3
/**
3
 * Modèle d'accès à la base de données des administrateurs 
4
 * Modèle d'accès à la base de données des administrateurs 
4
 * de papyrus
5
 * de papyrus
5
 */
6
 */
6
class listeAdmin extends Modele { 
7
class listeAdmin extends Modele { 
Line 7... Line 8...
7
    
8
    
Line 8... Line 9...
8
    private $config = array();
9
    private $config = array();
9
    
10
    
10
    /**
11
    /**
11
     * Charge la liste complète des administrateurs
12
     * Charge la liste complète des administrateurs
12
     * return array un tableau contenant des objets d'informations sur les administrateurs
13
     * return array un tableau contenant des objets d'informations sur les administrateurs
13
     * @return array un tableau d'objets contenant la liste des administrateurs
14
     * @return array un tableau d'objets contenant la liste des administrateurs
14
     */    
15
     */    
Line 25... Line 26...
25
        }
26
        }
26
        return $admin;
27
        return $admin;
27
    }
28
    }
Line 28... Line 29...
28
    
29
    
29
    /**
30
    /**
30
     * Charge les informations liées à un administrateur
31
     * Charge les informations liées à un administrateur
31
     * grâce à son id 
32
     * grâce à son id 
32
     * @param  int   l'identifiant de l'administrateur.
33
     * @param  int   l'identifiant de l'administrateur.
33
     * @return object un object contenant les informations de l'administrateur demandé 
34
     * @return object un object contenant les informations de l'administrateur demandé
34
     */
35
     */
35
    public function loadDetailsAdmin($id) {
36
    public function loadDetailsAdmin($id) {
36
        $requete = 	'SELECT * '.
37
        $requete = 	'SELECT * '.
37
        			'FROM  gen_annuaire '.
38
        			'FROM  gen_annuaire '.
Line 45... Line 46...
45
        return $admin;
46
        return $admin;
46
    }
47
    }
Line 47... Line 48...
47
    
48
    
48
    
49
    
49
    /**
50
    /**
50
     * Modifie les informations liées à un administrateur dans la base de données
51
     * Modifie les informations liées à un administrateur dans la base de données
51
     * Si le mot de passe n'est pas renseigné, il n'est pas changé
52
     * Si le mot de passe n'est pas renseigné, il n'est pas changé
52
     * @param  int   identifiant de l'admiistrateur
53
     * @param  int   identifiant de l'admiistrateur
53
     * @param  string   nom
54
     * @param  string   nom
54
     * @param  string   prenom
55
     * @param  string   prenom
Line 72... Line 73...
72
        					"	AND ga_id_administrateur != $id ";
73
        					"	AND ga_id_administrateur != $id ";
73
        if ($res_nb = $this->requete($query_verif_mail)) {
74
        if ($res_nb = $this->requete($query_verif_mail)) {
74
            $ligne = $res_nb->fetch();
75
            $ligne = $res_nb->fetch();
75
            $nb_admin = $ligne['nb_admin'] ;
76
            $nb_admin = $ligne['nb_admin'] ;
76
        } else {
77
        } else {
77
            $res['bdd'] = 'Erreur dans la base de données' ;
78
            $res['bdd'] = 'Erreur dans la base de données' ;
78
            return $res;
79
            return $res;
79
        }
80
        }
Line 80... Line 81...
80
        
81
        
81
        if($nb_admin != 0) {
82
        if($nb_admin != 0) {
82
            $res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ;
83
            $res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ;
Line 83... Line 84...
83
        }
84
        }
84
        
85
        
Line 85... Line 86...
85
        $query = 'UPDATE gen_annuaire SET ga_ce_i18n='.$this->proteger($lang).', ga_nom='.$this->proteger($nom).',ga_prenom='.
86
        $query = 'UPDATE gen_annuaire SET ga_ce_i18n='.$this->proteger($lang).', ga_nom='.$this->proteger($nom).',ga_prenom='.
86
        $this->proteger($prenom).',ga_mail='.$this->proteger($mail) ;
87
        $this->proteger($prenom).',ga_mail='.$this->proteger($mail) ;
87
        
88
        
88
        // si on a entré quelque chose dans les deux champs de mot de passe
89
        // si on a entré quelque chose dans les deux champs de mot de passe
89
        if($pass != '' || $pass_conf != '') {
90
        if($pass != '' || $pass_conf != '') {
90
            // on vérifie si les deux concordent            
91
            // on vérifie si les deux concordent            
91
            if($pass == $pass_conf) {
92
            if($pass == $pass_conf) {
92
                // si oui, on les modifie
93
                // si oui, on les modifie
Line 104... Line 105...
104
        }
105
        }
Line 105... Line 106...
105
        
106
        
Line 106... Line 107...
106
        if($req_maj = $this->requete($query)) {
107
        if($req_maj = $this->requete($query)) {
107
            
108
            
108
        } else {
109
        } else {
Line 109... Line 110...
109
            $res['bdd'] = 'Erreur de la requête dans la base de données' ;
110
            $res['bdd'] = 'Erreur de la requête dans la base de données' ;
110
        }
111
        }
Line 111... Line 112...
111
        
112
        
112
        return $res;
113
        return $res;
113
    }
114
    }
114
    
115
    
115
    /**
116
    /**
116
     * Supprime un administrateur ayant un id donnée
117
     * Supprime un administrateur ayant un id donné
Line 125... Line 126...
125
        $query_verif = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire' ;
126
        $query_verif = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire' ;
126
        if($res_nb = $this->requete($query_verif)) {
127
        if($res_nb = $this->requete($query_verif)) {
127
            $ligne = $res_nb->fetch();
128
            $ligne = $res_nb->fetch();
128
            $nb_admin = $ligne['nb_admin'] ;
129
            $nb_admin = $ligne['nb_admin'] ;
129
        } else {
130
        } else {
130
            $res = 'Erreur dans la base de données' ;
131
            $res = 'Erreur dans la base de donn�es' ;
131
            return $res ;
132
            return $res ;
132
        }
133
        }
Line 133... Line 134...
133
        
134
        
134
        if($nb_admin == 2) {
135
        if($nb_admin == 2) {
Line 139... Line 140...
139
        $query = 'DELETE FROM gen_annuaire WHERE ga_id_administrateur='.$id ;
140
        $query = 'DELETE FROM gen_annuaire WHERE ga_id_administrateur='.$id ;
Line 140... Line 141...
140
        
141
        
141
        if($res_supp = $this->requete($query)) {
142
        if($res_supp = $this->requete($query)) {
142
            return $res ;
143
            return $res ;
143
        } else {
144
        } else {
144
            $res = 'Erreur dans la base de données' ;
145
            $res = 'Erreur dans la base de données' ;
145
            return $res ;
146
            return $res ;
146
        }
147
        }
Line 147... Line 148...
147
    }
148
    }
148
    
149
    
149
    /**
150
    /**
150
     * Ajoute un administrateur dans la base de données
151
     * Ajoute un administrateur dans la base de données
151
     * @param  string   nom
152
     * @param  string   nom
152
     * @param  string   prenom
153
     * @param  string   prenom
153
     * @param  string   le mail
154
     * @param  string   le mail
Line 169... Line 170...
169
        $query_verif_mail = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire WHERE ga_mail = '.$this->proteger($mail) ;
170
        $query_verif_mail = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire WHERE ga_mail = '.$this->proteger($mail) ;
170
        if($res_nb = $this->requete($query_verif_mail)) {
171
        if($res_nb = $this->requete($query_verif_mail)) {
171
            $ligne = $res_nb->fetch() ;
172
            $ligne = $res_nb->fetch() ;
172
            $nb_admin = $ligne['nb_admin'] ;
173
            $nb_admin = $ligne['nb_admin'] ;
173
        } else {
174
        } else {
174
            $res['bdd'] = 'Erreur dans la base de données' ;
175
            $res['bdd'] = 'Erreur dans la base de données' ;
175
            return $res ;
176
            return $res ;
176
        }
177
        }
Line 177... Line 178...
177
        
178
        
178
        if($nb_admin != 0) {
179
        if($nb_admin != 0) {
179
            $res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ;
180
            $res['mail'] = 'Cet email est déjà utilisé par un autre utilisateur' ;
Line 180... Line 181...
180
        }
181
        }
181
        
182
        
182
        if($pass != '' || $pass_conf != '') {
183
        if($pass != '' || $pass_conf != '') {
Line 183... Line 184...
183
            // on vérifie si les deux concordent            
184
            // on vérifie si les deux concordent            
184
            if($pass == $pass_conf) {
185
            if($pass == $pass_conf) {
185
                
186
                
Line 208... Line 209...
208
        }
209
        }
Line 209... Line 210...
209
        
210
        
Line 210... Line 211...
210
        if($res_ajout = $this->requete($query)) {
211
        if($res_ajout = $this->requete($query)) {
211
            
212
            
212
        } else {
213
        } else {
Line 213... Line 214...
213
            $res['bdd'] = 'Erreur de la requête dans la base de données' ;
214
            $res['bdd'] = 'Erreur de la requête dans la base de données' ;
214
        }
215
        }
Line 215... Line 216...
215
        
216
        
216
        return $res ;
217
        return $res ;
217
    }
218
    }
218
    
219
    
219
    /**
220
    /**
220
     * Fonction qui prend une chaine en paramètre et renvoie vrai 
221
     * Fonction qui prend une chaine en paramètre et renvoie vrai 
221
     * si elle constitue un email syntaxiquement valide, faux sinon.
222
     * si elle constitue un email syntaxiquement valide, faux sinon.
222
     * @param string le mail à valider
223
     * @param string le mail à valider
223
     * @return bool true si le mail est valide, false sinon
224
     * @return bool true si le mail est valide, false sinon
Line 224... Line 225...
224
     */
225
     */
225
    function validerMail($mail) {
226
    function validerMail($mail) {
226
        $atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // Caractères autorisés avant l'arobase
227
        $atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // Caractères autorisés avant l'arobase
227
        $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // Caractères autorisés après l'arobase (nom de domaine)
228
        $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // Caractères autorisés après l'arobase (nom de domaine)
228
                                       
229
                                       
Line 229... Line 230...
229
        $regex = '/^'.$atom.'+'. // Une ou plusieurs fois les caractères autorisés avant l'arobase
230
        $regex = '/^'.$atom.'+'. // Une ou plusieurs fois les caractères autorisés avant l'arobase
230
        	'(\.'.$atom.'+)*'. // Suivis par zéro point ou plus, séparés par des caractères autorisés avant l'arobase
231
        	'(\.'.$atom.'+)*'. // Suivis par zéro point ou plus, séparés par des caractères autorisés avant l'arobase
231
        	'@'.// Suivis d'un arobase
232
        	'@'.// Suivis d'un arobase
232
        	'('.$domain .'{1,63}\.)+'.// Suivis par 1 à 63 caractères autorisés pour le nom de domaine, séparés par des points
233
        	'('.$domain .'{1,63}\.)+'.// Suivis par 1 à 63 caractères autorisés pour le nom de domaine, séparés par des points