source: spip-zone/_core_/plugins/neo-dist/formulaires/mot_de_passe.php @ 93647

Last change on this file since 93647 was 93647, checked in by marcimat@…, 5 years ago

Meilleure compatibilité avec PSR-2 et nos règles d'écriture, en appliquant
différents fix avec php-cs-fixers. Fixers appliqués ici :

'encoding', utf8
'eof_ending',
un saut de ligne en fin de fichier
'elseif', elseif plutôt que else if
'function_call_space',
espaces sur fonctions
'function_declaration', espaces sur fonctions
'function_typehint_space',
espaces sur fonctions
'linefeed', sauts de ligne \n uniquement
'lowercase_constants',
true, false, null en munuscule
'lowercase_keywords', mots clés PHP en lowercase
'method_argument_space',
espaces sur appels de fonctions
'multiple_use', use unique sur fonctions anonymes
'newline_after_open_tag',
ouverture de php… et c'est tout sur cette ligne
'operators_spaces', espaces de part et d'autres des opérateurs binaires
'parenthesis',
pas d'espace juste après parenthèse ouvrante, ou avant parenthèse fermante
'php_closing_tag', pas de fermeture de php
'short_tag',
tag PHP corrects
'trailing_spaces', pas d'espace qui traîne en fin de ligne
'visibility',
déclarer 'public / private / protected' sur les méthodes

File size: 4.4 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2015                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined('_ECRIRE_INC_VERSION')) {
14        return;
15}
16
17include_spip('base/abstract_sql');
18
19function retrouve_auteur($id_auteur, $jeton = '') {
20        if ($id_auteur = intval($id_auteur)) {
21                return sql_fetsel('*', 'spip_auteurs', array('id_auteur=' . intval($id_auteur), "statut<>'5poubelle'", "pass<>''"));
22        } elseif ($jeton) {
23                include_spip('action/inscrire_auteur');
24                if ($auteur = auteur_verifier_jeton($jeton)
25                        and $auteur['statut'] <> '5poubelle'
26                        and $auteur['pass'] <> ''
27                ) {
28                        return $auteur;
29                }
30        }
31
32        return false;
33}
34
35// chargement des valeurs par defaut des champs du formulaire
36/**
37 * Chargement de l'auteur qui peut changer son mot de passe.
38 * Soit un cookie d'oubli fourni par #FORMULAIRE_OUBLI est passe dans l'url par &p=
39 * Soit un id_auteur est passe en parametre #FORMULAIRE_MOT_DE_PASSE{#ID_AUTEUR}
40 * Dans les deux cas on verifie que l'auteur est autorise
41 *
42 * @param int $id_auteur
43 * @return array
44 */
45function formulaires_mot_de_passe_charger_dist($id_auteur = null, $jeton = null) {
46
47        $valeurs = array();
48        // compatibilite anciens appels du formulaire
49        if (is_null($jeton)) {
50                $jeton = _request('p');
51        }
52        $auteur = retrouve_auteur($id_auteur, $jeton);
53
54        if ($auteur) {
55                $valeurs['id_auteur'] = $id_auteur; // a toutes fins utiles pour le formulaire
56                if ($jeton) {
57                        $valeurs['_hidden'] = '<input type="hidden" name="p" value="' . $jeton . '" />';
58                }
59        } else {
60                $valeurs['_hidden'] = _T('pass_erreur_code_inconnu');
61                $valeurs['editable'] = false; // pas de saisie
62        }
63        $valeurs['oubli'] = '';
64        $valeurs['nobot'] = '';
65
66        return $valeurs;
67}
68
69/**
70 * Verification de la saisie du mot de passe.
71 * On verifie qu'un mot de passe est saisi, et que sa longuer est suffisante
72 * Ce serait le lieu pour verifier sa qualite (caracteres speciaux ...)
73 *
74 * @param int $id_auteur
75 */
76function formulaires_mot_de_passe_verifier_dist($id_auteur = null, $jeton = null) {
77        $erreurs = array();
78        if (!_request('oubli')) {
79                $erreurs['oubli'] = _T('info_obligatoire');
80        } else {
81                if (strlen($p = _request('oubli')) < _PASS_LONGUEUR_MINI) {
82                        $erreurs['oubli'] = _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI));
83                } else {
84                        if (!is_null($c = _request('oubli_confirm'))) {
85                                if (!$c) {
86                                        $erreurs['oubli_confirm'] = _T('info_obligatoire');
87                                } elseif ($c !== $p) {
88                                        $erreurs['oubli'] = _T('info_passes_identiques');
89                                }
90                        }
91                }
92        }
93        if (isset($erreurs['oubli'])) {
94                set_request('oubli');
95                set_request('oubli_confirm');
96        }
97
98        if (_request('nobot')) {
99                $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
100        }
101
102        return $erreurs;
103}
104
105/**
106 * Modification du mot de passe d'un auteur.
107 * Utilise le cookie d'oubli fourni en url ou l'argument du formulaire pour identifier l'auteur
108 *
109 * @param int $id_auteur
110 */
111function formulaires_mot_de_passe_traiter_dist($id_auteur = null, $jeton = null) {
112        $res = array('message_ok' => '');
113        refuser_traiter_formulaire_ajax(); // puisqu'on va loger l'auteur a la volee (c'est bonus)
114
115        // compatibilite anciens appels du formulaire
116        if (is_null($jeton)) {
117                $jeton = _request('p');
118        }
119        $row = retrouve_auteur($id_auteur, $jeton);
120
121        if ($row
122                && ($id_auteur = $row['id_auteur'])
123                && ($oubli = _request('oubli'))
124        ) {
125                include_spip('action/editer_auteur');
126                include_spip('action/inscrire_auteur');
127                if ($err = auteur_modifier($id_auteur, array('pass' => $oubli))) {
128                        $res = array('message_erreur' => $err);
129                } else {
130                        auteur_effacer_jeton($id_auteur);
131                        $login = $row['login'];
132                        $res['message_ok'] = "<b>" . _T('pass_nouveau_enregistre') . "</b>" .
133                                "<br />" . _T('pass_rappel_login', array('login' => $login));
134
135                        include_spip('inc/auth');
136                        $row = sql_fetsel("*", "spip_auteurs", "id_auteur=" . intval($id_auteur));
137                        auth_loger($row);
138                }
139        }
140
141        return $res;
142}
Note: See TracBrowser for help on using the repository browser.