Completed
Push — master ( 7e1ef9...9d5840 )
by cam
01:34
created
ecrire/install/etape_3b.php 2 patches
Indentation   +158 added lines, -158 removed lines patch added patch discarded remove patch
@@ -10,170 +10,170 @@
 block discarded – undo
10 10
 \***************************************************************************/
11 11
 
12 12
 if (!defined('_ECRIRE_INC_VERSION')) {
13
-	return;
13
+    return;
14 14
 }
15 15
 
16 16
 include_spip('inc/headers');
17 17
 
18 18
 function install_etape_3b_dist() {
19
-	$auth_spip = null;
20
-	$session = null;
21
-	$row = null;
22
-	$login = _request('login');
23
-	$email = _request('email');
24
-	$nom = _request('nom');
25
-	$pass = _request('pass');
26
-	$pass_verif = _request('pass_verif');
27
-
28
-	$server_db = defined('_INSTALL_SERVER_DB')
29
-		? _INSTALL_SERVER_DB
30
-		: _request('server_db');
31
-
32
-	if (!defined('_PASS_LONGUEUR_MINI')) {
33
-		define('_PASS_LONGUEUR_MINI', 6);
34
-	}
35
-	if (!defined('_LOGIN_TROP_COURT')) {
36
-		define('_LOGIN_TROP_COURT', 4);
37
-	}
38
-	if ($login) {
39
-		$echec = ($pass != $pass_verif) ?
40
-			_T('info_passes_identiques')
41
-			: ((strlen((string) $pass) < _PASS_LONGUEUR_MINI) ?
42
-				_T('info_passe_trop_court_car_pluriel', ['nb' => _PASS_LONGUEUR_MINI])
43
-				: ((strlen((string) $login) < _LOGIN_TROP_COURT) ?
44
-					_T('info_login_trop_court')
45
-					: ''));
46
-		include_spip('inc/filtres');
47
-		if (!$echec && $email && !email_valide($email)) {
48
-			$echec = _T('form_email_non_valide');
49
-		}
50
-		if ($echec) {
51
-			echouer_etape_3b($echec);
52
-		}
53
-	}
54
-
55
-	if (@file_exists(_FILE_CHMOD_TMP)) {
56
-		include(_FILE_CHMOD_TMP);
57
-	} else {
58
-		redirige_url_ecrire('install');
59
-	}
60
-
61
-	if (!@file_exists(_FILE_CONNECT_TMP)) {
62
-		redirige_url_ecrire('install');
63
-	}
64
-
65
-	# maintenant on connait le vrai charset du site s'il est deja configure
66
-	# sinon par defaut lire_meta reglera _DEFAULT_CHARSET
67
-	# (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET)
68
-
69
-	lire_metas();
70
-	if ($login) {
71
-		include_spip('inc/charsets');
72
-
73
-		$nom = (importer_charset($nom, _DEFAULT_CHARSET));
74
-		$login = (importer_charset($login, _DEFAULT_CHARSET));
75
-		$email = (importer_charset($email, _DEFAULT_CHARSET));
76
-
77
-		include_spip('auth/spip');
78
-		// prelablement, creer le champ webmestre si il n'existe pas (install neuve sur une vieille base)
79
-		$t = sql_showtable('spip_auteurs', true);
80
-		if (!isset($t['field']['webmestre'])) {
81
-			@sql_alter("TABLE spip_auteurs ADD webmestre varchar(3)  DEFAULT 'non' NOT NULL");
82
-		}
83
-		// prelablement, creer le champ backup_cles si il n'existe pas (install neuve sur une vieille base)
84
-		if (!isset($t['field']['backup_cles'])) {
85
-			@sql_alter("TABLE spip_auteurs ADD backup_cles mediumtext DEFAULT '' NOT NULL");
86
-		}
87
-
88
-		// il faut avoir une cle des auth valide pour creer un nouvel auteur webmestre
89
-		$cles = \Spip\Chiffrer\SpipCles::instance();
90
-		$secret = $cles->getSecretAuth();
91
-
92
-		$id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login=' . sql_quote($login));
93
-		if ($id_auteur !== null) {
94
-			// c'est un auteur connu : si on a pas de secret il faut absolument qu'il se reconnecte avec le meme mot de passe
95
-			// pour restaurer la copie des cles
96
-			if (!$secret && !auth_spip_initialiser_secret()) {
97
-				$row = sql_fetsel('backup_cles, pass', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
98
-				if (empty($row['backup_cles']) || !$cles->restore($row['backup_cles'], $pass, $row['pass'], $id_auteur)) {
99
-					$echec = _T('avis_connexion_erreur_fichier_cle_manquant_1');
100
-					echouer_etape_3b($echec);
101
-				}
102
-				spip_logger('auth')->notice("Les cles secretes ont ete restaurées avec le backup du webmestre #$id_auteur");
103
-				$cles->save();
104
-			}
105
-
106
-			sql_updateq('spip_auteurs', [
107
-				'nom' => $nom,
108
-				'email' => $email,
109
-				'login' => $login,
110
-				'statut' => '0minirezo'
111
-			], 'id_auteur=' . (int) $id_auteur);
112
-			// le passer webmestre separement du reste, au cas ou l'alter n'aurait pas fonctionne
113
-			@sql_updateq('spip_auteurs', ['webmestre' => 'oui'], "id_auteur=$id_auteur");
114
-			if (!auth_spip_modifier_pass($login, $pass, $id_auteur)) {
115
-				$echec = _T('avis_erreur_creation_compte');
116
-				echouer_etape_3b($echec);
117
-			}
118
-		} else {
119
-			// Si on a pas de cle et qu'on ne sait pas la creer, on ne peut pas creer de nouveau compte :
120
-			// il faut qu'un webmestre avec un backup fasse l'install
121
-			if (!$secret && !auth_spip_initialiser_secret()) {
122
-				$echec = _T('avis_connexion_erreur_fichier_cle_manquant_2');
123
-				echouer_etape_3b($echec);
124
-			}
125
-
126
-			$id_auteur = sql_insertq('spip_auteurs', [
127
-				'nom' => $nom,
128
-				'email' => $email,
129
-				'login' => $login,
130
-				'statut' => '0minirezo'
131
-			]);
132
-			// le passer webmestre separrement du reste, au cas ou l'alter n'aurait pas fonctionne
133
-			@sql_updateq('spip_auteurs', ['webmestre' => 'oui'], "id_auteur=$id_auteur");
134
-			if (!auth_spip_modifier_pass($login, $pass, $id_auteur)) {
135
-				$echec = _T('avis_erreur_creation_compte');
136
-				echouer_etape_3b($echec);
137
-			}
138
-		}
139
-
140
-		// inserer email comme email webmaster principal
141
-		// (sauf s'il est vide: cas de la re-installation)
142
-		if ($email) {
143
-			ecrire_meta('email_webmaster', $email);
144
-		}
145
-
146
-		// Connecter directement celui qui vient de (re)donner son login
147
-		// mais sans cookie d'admin ni connexion longue
148
-		include_spip('inc/auth');
149
-		$auteur = auth_identifier_login($login, $pass);
150
-		if (!$auteur || !auth_loger($auteur)) {
151
-			spip_logger()->info("login automatique impossible $auth_spip $session" . (is_countable($row) ? count($row) : 0));
152
-		}
153
-	}
154
-
155
-	// installer les metas
156
-	$config = charger_fonction('config', 'inc');
157
-	$config();
158
-
159
-	// activer les plugins
160
-	// leur installation ne peut pas se faire sur le meme hit, il faudra donc
161
-	// poursuivre au hit suivant
162
-	include_spip('inc/plugin');
163
-	actualise_plugins_actifs();
164
-
165
-
166
-	include_spip('inc/distant');
167
-	redirige_par_entete(parametre_url(self(), 'etape', '4', '&'));
19
+    $auth_spip = null;
20
+    $session = null;
21
+    $row = null;
22
+    $login = _request('login');
23
+    $email = _request('email');
24
+    $nom = _request('nom');
25
+    $pass = _request('pass');
26
+    $pass_verif = _request('pass_verif');
27
+
28
+    $server_db = defined('_INSTALL_SERVER_DB')
29
+        ? _INSTALL_SERVER_DB
30
+        : _request('server_db');
31
+
32
+    if (!defined('_PASS_LONGUEUR_MINI')) {
33
+        define('_PASS_LONGUEUR_MINI', 6);
34
+    }
35
+    if (!defined('_LOGIN_TROP_COURT')) {
36
+        define('_LOGIN_TROP_COURT', 4);
37
+    }
38
+    if ($login) {
39
+        $echec = ($pass != $pass_verif) ?
40
+            _T('info_passes_identiques')
41
+            : ((strlen((string) $pass) < _PASS_LONGUEUR_MINI) ?
42
+                _T('info_passe_trop_court_car_pluriel', ['nb' => _PASS_LONGUEUR_MINI])
43
+                : ((strlen((string) $login) < _LOGIN_TROP_COURT) ?
44
+                    _T('info_login_trop_court')
45
+                    : ''));
46
+        include_spip('inc/filtres');
47
+        if (!$echec && $email && !email_valide($email)) {
48
+            $echec = _T('form_email_non_valide');
49
+        }
50
+        if ($echec) {
51
+            echouer_etape_3b($echec);
52
+        }
53
+    }
54
+
55
+    if (@file_exists(_FILE_CHMOD_TMP)) {
56
+        include(_FILE_CHMOD_TMP);
57
+    } else {
58
+        redirige_url_ecrire('install');
59
+    }
60
+
61
+    if (!@file_exists(_FILE_CONNECT_TMP)) {
62
+        redirige_url_ecrire('install');
63
+    }
64
+
65
+    # maintenant on connait le vrai charset du site s'il est deja configure
66
+    # sinon par defaut lire_meta reglera _DEFAULT_CHARSET
67
+    # (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET)
68
+
69
+    lire_metas();
70
+    if ($login) {
71
+        include_spip('inc/charsets');
72
+
73
+        $nom = (importer_charset($nom, _DEFAULT_CHARSET));
74
+        $login = (importer_charset($login, _DEFAULT_CHARSET));
75
+        $email = (importer_charset($email, _DEFAULT_CHARSET));
76
+
77
+        include_spip('auth/spip');
78
+        // prelablement, creer le champ webmestre si il n'existe pas (install neuve sur une vieille base)
79
+        $t = sql_showtable('spip_auteurs', true);
80
+        if (!isset($t['field']['webmestre'])) {
81
+            @sql_alter("TABLE spip_auteurs ADD webmestre varchar(3)  DEFAULT 'non' NOT NULL");
82
+        }
83
+        // prelablement, creer le champ backup_cles si il n'existe pas (install neuve sur une vieille base)
84
+        if (!isset($t['field']['backup_cles'])) {
85
+            @sql_alter("TABLE spip_auteurs ADD backup_cles mediumtext DEFAULT '' NOT NULL");
86
+        }
87
+
88
+        // il faut avoir une cle des auth valide pour creer un nouvel auteur webmestre
89
+        $cles = \Spip\Chiffrer\SpipCles::instance();
90
+        $secret = $cles->getSecretAuth();
91
+
92
+        $id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login=' . sql_quote($login));
93
+        if ($id_auteur !== null) {
94
+            // c'est un auteur connu : si on a pas de secret il faut absolument qu'il se reconnecte avec le meme mot de passe
95
+            // pour restaurer la copie des cles
96
+            if (!$secret && !auth_spip_initialiser_secret()) {
97
+                $row = sql_fetsel('backup_cles, pass', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
98
+                if (empty($row['backup_cles']) || !$cles->restore($row['backup_cles'], $pass, $row['pass'], $id_auteur)) {
99
+                    $echec = _T('avis_connexion_erreur_fichier_cle_manquant_1');
100
+                    echouer_etape_3b($echec);
101
+                }
102
+                spip_logger('auth')->notice("Les cles secretes ont ete restaurées avec le backup du webmestre #$id_auteur");
103
+                $cles->save();
104
+            }
105
+
106
+            sql_updateq('spip_auteurs', [
107
+                'nom' => $nom,
108
+                'email' => $email,
109
+                'login' => $login,
110
+                'statut' => '0minirezo'
111
+            ], 'id_auteur=' . (int) $id_auteur);
112
+            // le passer webmestre separement du reste, au cas ou l'alter n'aurait pas fonctionne
113
+            @sql_updateq('spip_auteurs', ['webmestre' => 'oui'], "id_auteur=$id_auteur");
114
+            if (!auth_spip_modifier_pass($login, $pass, $id_auteur)) {
115
+                $echec = _T('avis_erreur_creation_compte');
116
+                echouer_etape_3b($echec);
117
+            }
118
+        } else {
119
+            // Si on a pas de cle et qu'on ne sait pas la creer, on ne peut pas creer de nouveau compte :
120
+            // il faut qu'un webmestre avec un backup fasse l'install
121
+            if (!$secret && !auth_spip_initialiser_secret()) {
122
+                $echec = _T('avis_connexion_erreur_fichier_cle_manquant_2');
123
+                echouer_etape_3b($echec);
124
+            }
125
+
126
+            $id_auteur = sql_insertq('spip_auteurs', [
127
+                'nom' => $nom,
128
+                'email' => $email,
129
+                'login' => $login,
130
+                'statut' => '0minirezo'
131
+            ]);
132
+            // le passer webmestre separrement du reste, au cas ou l'alter n'aurait pas fonctionne
133
+            @sql_updateq('spip_auteurs', ['webmestre' => 'oui'], "id_auteur=$id_auteur");
134
+            if (!auth_spip_modifier_pass($login, $pass, $id_auteur)) {
135
+                $echec = _T('avis_erreur_creation_compte');
136
+                echouer_etape_3b($echec);
137
+            }
138
+        }
139
+
140
+        // inserer email comme email webmaster principal
141
+        // (sauf s'il est vide: cas de la re-installation)
142
+        if ($email) {
143
+            ecrire_meta('email_webmaster', $email);
144
+        }
145
+
146
+        // Connecter directement celui qui vient de (re)donner son login
147
+        // mais sans cookie d'admin ni connexion longue
148
+        include_spip('inc/auth');
149
+        $auteur = auth_identifier_login($login, $pass);
150
+        if (!$auteur || !auth_loger($auteur)) {
151
+            spip_logger()->info("login automatique impossible $auth_spip $session" . (is_countable($row) ? count($row) : 0));
152
+        }
153
+    }
154
+
155
+    // installer les metas
156
+    $config = charger_fonction('config', 'inc');
157
+    $config();
158
+
159
+    // activer les plugins
160
+    // leur installation ne peut pas se faire sur le meme hit, il faudra donc
161
+    // poursuivre au hit suivant
162
+    include_spip('inc/plugin');
163
+    actualise_plugins_actifs();
164
+
165
+
166
+    include_spip('inc/distant');
167
+    redirige_par_entete(parametre_url(self(), 'etape', '4', '&'));
168 168
 }
169 169
 
170 170
 function echouer_etape_3b($echec): never {
171
-	echo minipres(
172
-		'AUTO',
173
-		info_progression_etape(3, 'etape_', 'install/', true) .
174
-		"<div class='error'><h3>$echec</h3>\n" .
175
-		'<p>' . _T('avis_connexion_echec_2') . '</p>' .
176
-		'</div>'
177
-	);
178
-	exit;
171
+    echo minipres(
172
+        'AUTO',
173
+        info_progression_etape(3, 'etape_', 'install/', true) .
174
+        "<div class='error'><h3>$echec</h3>\n" .
175
+        '<p>' . _T('avis_connexion_echec_2') . '</p>' .
176
+        '</div>'
177
+    );
178
+    exit;
179 179
 }
Please login to merge, or discard this patch.
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -89,12 +89,12 @@  discard block
 block discarded – undo
89 89
 		$cles = \Spip\Chiffrer\SpipCles::instance();
90 90
 		$secret = $cles->getSecretAuth();
91 91
 
92
-		$id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login=' . sql_quote($login));
92
+		$id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login='.sql_quote($login));
93 93
 		if ($id_auteur !== null) {
94 94
 			// c'est un auteur connu : si on a pas de secret il faut absolument qu'il se reconnecte avec le meme mot de passe
95 95
 			// pour restaurer la copie des cles
96 96
 			if (!$secret && !auth_spip_initialiser_secret()) {
97
-				$row = sql_fetsel('backup_cles, pass', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
97
+				$row = sql_fetsel('backup_cles, pass', 'spip_auteurs', 'id_auteur='.(int) $id_auteur);
98 98
 				if (empty($row['backup_cles']) || !$cles->restore($row['backup_cles'], $pass, $row['pass'], $id_auteur)) {
99 99
 					$echec = _T('avis_connexion_erreur_fichier_cle_manquant_1');
100 100
 					echouer_etape_3b($echec);
@@ -108,7 +108,7 @@  discard block
 block discarded – undo
108 108
 				'email' => $email,
109 109
 				'login' => $login,
110 110
 				'statut' => '0minirezo'
111
-			], 'id_auteur=' . (int) $id_auteur);
111
+			], 'id_auteur='.(int) $id_auteur);
112 112
 			// le passer webmestre separement du reste, au cas ou l'alter n'aurait pas fonctionne
113 113
 			@sql_updateq('spip_auteurs', ['webmestre' => 'oui'], "id_auteur=$id_auteur");
114 114
 			if (!auth_spip_modifier_pass($login, $pass, $id_auteur)) {
@@ -148,7 +148,7 @@  discard block
 block discarded – undo
148 148
 		include_spip('inc/auth');
149 149
 		$auteur = auth_identifier_login($login, $pass);
150 150
 		if (!$auteur || !auth_loger($auteur)) {
151
-			spip_logger()->info("login automatique impossible $auth_spip $session" . (is_countable($row) ? count($row) : 0));
151
+			spip_logger()->info("login automatique impossible $auth_spip $session".(is_countable($row) ? count($row) : 0));
152 152
 		}
153 153
 	}
154 154
 
@@ -170,9 +170,9 @@  discard block
 block discarded – undo
170 170
 function echouer_etape_3b($echec): never {
171 171
 	echo minipres(
172 172
 		'AUTO',
173
-		info_progression_etape(3, 'etape_', 'install/', true) .
174
-		"<div class='error'><h3>$echec</h3>\n" .
175
-		'<p>' . _T('avis_connexion_echec_2') . '</p>' .
173
+		info_progression_etape(3, 'etape_', 'install/', true).
174
+		"<div class='error'><h3>$echec</h3>\n".
175
+		'<p>'._T('avis_connexion_echec_2').'</p>'.
176 176
 		'</div>'
177 177
 	);
178 178
 	exit;
Please login to merge, or discard this patch.