Subversion Repositories Applications.framework

Rev

Rev 78 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 78 Rev 83
Line 1... Line 1...
1
<?php
1
<?php
2
 
-
 
3
/**
2
/**
4
 * Modèle d'accès à la base de données des administrateurs 
3
 * Modèle d'accès à la base de données des administrateurs 
5
 * de papyrus
4
 * de papyrus
6
 */
5
 */
7
class listeAdmin extends Modele { 
6
class listeAdmin extends Modele { 
Line 8... Line 7...
8
    
7
    
Line 9... Line 8...
9
    var $config = array() ;
8
    private $config = array();
10
    
9
    
11
    /**
10
    /**
12
     * Charge la liste complète des administrateurs
11
     * Charge la liste complète des administrateurs
13
     * return array un tableau contenant des objets d'informations sur les administrateurs
12
     * return array un tableau contenant des objets d'informations sur les administrateurs
14
     * @return array un tableau d'objets contenant la liste des administrateurs
13
     * @return array un tableau d'objets contenant la liste des administrateurs
15
     */    
-
 
-
 
14
     */    
-
 
15
   public function chargerAdmin() {
16
    function chargerAdmin() {
16
        $requete = 	'SELECT * '.
17
                
17
        			'FROM  gen_annuaire '.
-
 
18
        			'ORDER BY ga_id_administrateur';
18
        $query = 'SELECT * FROM  gen_annuaire ORDER BY ga_id_administrateur' ;
19
        $resultat = $this->requete($requete);
19
        $res = $this->requete($query) ;
20
        
20
        $admin = array() ;
-
 
21
        foreach ($res->fetchAll() as $ligne)
21
        $admin = array();
22
        {
22
        foreach ($resultat->fetchAll() as $ligne) {
23
            if($ligne['ga_id_administrateur'] != 0) { 
23
            if ($ligne['ga_id_administrateur'] != 0) { 
24
                $admin[] = $ligne ;
24
                $admin[] = $ligne;
25
            }
-
 
26
        }
25
            }
27
    
26
        }
Line 28... Line 27...
28
        return $admin ;
27
        return $admin;
29
    }
28
    }
30
    
29
    
31
    /**
30
    /**
32
     * Charge les informations liées à un administrateur
31
     * Charge les informations liées à un administrateur
33
     * grâce à son id 
32
     * grâce à son id 
34
     * @param  int   l'identifiant de l'administrateur.
33
     * @param  int   l'identifiant de l'administrateur.
35
     * @return object un object contenant les informations de l'administrateur demandé 
-
 
-
 
34
     * @return object un object contenant les informations de l'administrateur demandé 
-
 
35
     */
36
     */
36
    public function loadDetailsAdmin($id) {
37
    function loadDetailsAdmin($id) {
37
        $requete = 	'SELECT * '.
-
 
38
        			'FROM  gen_annuaire '.
38
            
39
        			"WHERE ga_id_administrateur = '$id' ";
39
        $query = 'SELECT * FROM  gen_annuaire where ga_id_administrateur="'.$id.'"' ;
40
        $resultat = $this->requete($requete);
40
        $res = $this->requete($query) ;
41
        
41
        $admin = array() ;
42
        $admin = array();
42
        foreach ($res->fetchAll() as $ligne) {
-
 
43
            $admin = $ligne ;
43
        foreach ($resultat->fetchAll() as $ligne) {
44
        }
44
            $admin = $ligne;
Line 45... Line 45...
45
    
45
        }
46
        return $admin ;
46
        return $admin;
Line 57... Line 57...
57
     * @param  string   le code de langue
57
     * @param  string   le code de langue
58
     * @param  string   le mot de passe (optionnel)
58
     * @param  string   le mot de passe (optionnel)
59
     * @param  string   la confirmation du mot de passe (optionnel)
59
     * @param  string   la confirmation du mot de passe (optionnel)
60
     * @return array    un tableau contenant les erreurs s'il y en a, vide sinon
60
     * @return array    un tableau contenant les erreurs s'il y en a, vide sinon
61
     */
61
     */
62
    function modifDetailsAdmin($id,$nom,$prenom,$mail,$lang,$pass='',$pass_conf='') {
62
    function modifDetailsAdmin($id, $nom, $prenom, $mail, $lang, $pass = '', $pass_conf = '') {
63
        
-
 
64
        $res = array() ;
63
        $res = array();
65
        $nb_admin = 0 ;
64
        $nb_admin = 0;
66
        
65
        
67
        if(!$this->validerMail($mail)) {
66
        if (!$this->validerMail($mail)) {
68
            $res['mail'] = 'Adresse mail invalide' ;
67
            $res['mail'] = 'Adresse mail invalide';
69
        }
68
        }
Line 70... Line 69...
70
            
69
            
-
 
70
        $query_verif_mail = 'SELECT COUNT(*) AS nb_admin '.
-
 
71
        					'FROM gen_annuaire '.
-
 
72
        					"WHERE ga_mail = '{$this->proteger($mail)}'".
71
        $query_verif_mail = 'SELECT COUNT(*) AS nb_admin FROM gen_annuaire WHERE ga_mail = '.$this->proteger($mail).' AND ga_id_administrateur !='.$id ;
73
        					"	AND ga_id_administrateur != $id ";
72
        if($res_nb = $this->requete($query_verif_mail)) {
74
        if ($res_nb = $this->requete($query_verif_mail)) {
73
            $ligne = $res_nb->fetch();
75
            $ligne = $res_nb->fetch();
74
            $nb_admin = $ligne['nb_admin'] ;
-
 
75
            
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;
Line 79... Line 80...
79
        }
80
        }
80
        
81
        
81
        if($nb_admin != 0) {
82
        if($nb_admin != 0) {
Line 107... Line 108...
107
            
108
            
108
        } else {
109
        } else {
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' ;
Line 110... Line 111...
110
        }
111
        }
111
        
-
 
112
        return $res ;
112
        
Line 113... Line 113...
113
        
113
        return $res;
114
    }
114
    }
115
    
115
    
Line 222... Line 222...
222
     * si elle constitue un email syntaxiquement valide, faux sinon.
222
     * si elle constitue un email syntaxiquement valide, faux sinon.
223
     * @param string le mail à valider
223
     * @param string le mail à valider
224
     * @return bool true si le mail est valide, false sinon
224
     * @return bool true si le mail est valide, false sinon
225
     */
225
     */
226
    function validerMail($mail) {
226
    function validerMail($mail) {
227
        
-
 
228
        $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // caractères autorisés avant l'arobase
227
        $atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // Caractères autorisés avant l'arobase
229
        $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)
Line 230... Line 229...
230
                                       
229
                                       
231
        $regex = '/^' . $atom . '+' .   // Une ou plusieurs fois les caractères autorisés avant l'arobase
-
 
232
        '(\.' . $atom . '+)*' .         // Suivis par zéro point ou plus
230
        $regex = '/^'.$atom.'+'. // Une ou plusieurs fois les caractères autorisés avant l'arobase
233
                                        // 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
234
        '@' .                           // Suivis d'un arobase
232
        	'@'.// Suivis d'un arobase
235
        '(' . $domain . '{1,63}\.)+' .  // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
-
 
236
                                        // 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
Line 237... Line 234...
237
        $domain . '{2,63}$/i';          // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
234
        	$domain.'{2,63}$/i';// Suivi de 2 à 63 caractères autorisés pour le nom de domaine
238
        
235
        
239
        // test de l'adresse e-mail
236
        // Test de l'adresse e-mail
240
        if (preg_match($regex, $mail)) {
237
        if (preg_match($regex, $mail)) {
241
            return true ;
238
            return true;
242
        } else {
239
        } else {
243
            return false ;
-
 
244
        }
240
            return false;
245
        
-
 
246
    }
241
        }
247
 
-
 
248
}
242
    }
249
    
243
}