Skip to content
Extraits de code Groupes Projets
Valider c8956699 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

permettre de retrouver son site lorsque une restauration echoue :

- on peut se connecter avec un id_auteur=0
- si on ne sait pas quoi restaurer, il faut au moins sortir de la pour recuperer la main
parent 07a8dcdc
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -112,6 +112,7 @@ function import_all_fin($request) {
effacer_meta('restauration_charset_sql_connexion');
effacer_meta('attributs_archive_restauration');
effacer_meta('restauration_table_prefix');
effacer_meta('restauration_table_prefix_source');
effacer_meta('vieille_version_installee');
if ($request['insertion'] == 'passe2')
sql_drop_table("spip_translate");
......
......@@ -47,7 +47,15 @@ function exec_import_all_dist()
array('archive' => $archive));
$admin = charger_fonction('admin', 'inc');
echo $admin('import_all', $action, $commentaire, !$insert);
} else redirige_url_ecrire();
} else {
// on ne sait pas quoi importer, il faut sortir de la !
include_spip('base/import_all');
import_all_fin(array());
include_spip('inc/import');
detruit_restaurateur();
effacer_meta('admin');
redirige_url_ecrire();
}
}
// http://doc.spip.org/@import_queldir
......
......@@ -78,7 +78,9 @@ function inc_auth_dist() {
// Session valide en cours ?
if (isset($_COOKIE['spip_session'])) {
$session = charger_fonction('session', 'inc');
if ($connect_id_auteur = $session()) {
if ($connect_id_auteur = $session()
OR $connect_id_auteur===0 // reprise sur restauration
) {
$auth_can_disconnect = true;
} else unset($_COOKIE['spip_session']);
}
......@@ -114,7 +116,8 @@ function inc_auth_dist() {
}
$where = (is_numeric($connect_id_auteur)
AND $connect_id_auteur>0) ?
/*AND $connect_id_auteur>0*/ // reprise lors des restaurations
) ?
"id_auteur=$connect_id_auteur" :
(!$connect_login ? '' : "login=" . sql_quote($connect_login));
......
......@@ -46,6 +46,7 @@ function inc_session_dist($auteur=false)
// http://doc.spip.org/@ajouter_session
function ajouter_session($auteur) {
if (!is_numeric($auteur['id_auteur'])) return false;
// Si le client a deja une session valide pour son id_auteur
// on conserve le meme fichier
$auteur['id_auteur'] = intval($auteur['id_auteur']);
......@@ -93,7 +94,7 @@ function session_get($nom) {
// (auteurs identifies seulement)
// http://doc.spip.org/@actualiser_sessions
function actualiser_sessions($auteur){
if (!intval($id_auteur = $auteur['id_auteur']))
if (!is_numeric($auteur['id_auteur']))
return;
// memoriser l'auteur courant (celui qui modifie la fiche)
......@@ -215,7 +216,7 @@ function verifier_session($change=false) {
ajouter_session($GLOBALS['visiteur_session']);
}
return $GLOBALS['visiteur_session']['id_auteur'];
return is_numeric($GLOBALS['visiteur_session']['id_auteur'])?$GLOBALS['visiteur_session']['id_auteur']:null;
}
// Code a inserer par inc/presentation pour rejouer la session
......
......@@ -25,10 +25,10 @@ function maj_vieille_base_1917_create() {
# if ($vu) return; else $vu = true;
foreach($tables_principales as $k => $v)
spip_create_table($k, $v['field'], $v['key'], true);
spip_create_vieille_table($k, $v['field'], $v['key'], true);
foreach($tables_auxiliaires as $k => $v)
spip_create_table($k, $v['field'], $v['key'], false);
spip_create_vieille_table($k, $v['field'], $v['key'], false);
foreach($tables_images as $k => $v)
spip_query("INSERT IGNORE INTO spip_types_documents (extension, inclus, titre, id_type) VALUES ('$k', 'image', '" .
......
......@@ -25,10 +25,10 @@ function maj_vieille_base_1927_create() {
# if ($vu) return; else $vu = true;
foreach($tables_principales as $k => $v)
spip_mysql_create($k, $v['field'], $v['key'], true);
spip_create_vieille_table($k, $v['field'], $v['key'], true);
foreach($tables_auxiliaires as $k => $v)
spip_mysql_create($k, $v['field'], $v['key'], false);
spip_create_vieille_table($k, $v['field'], $v['key'], false);
foreach($tables_images as $k => $v)
spip_query_db("INSERT IGNORE INTO spip_types_documents (extension, inclus, titre, id_type) VALUES ('$k', 'image', '" .
......
......@@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
$serveur_vieille_base =0;
function spip_create_table($table,$fields,$keys,$autoinc){
function spip_create_vieille_table($table,$fields,$keys,$autoinc){
static $fcreate = null;
$serveur = $GLOBALS['serveur_vieille_base'];
if (!$fcreate) $fcreate = sql_serveur('create', $serveur);
......@@ -30,25 +30,34 @@ function maj_vieille_base_create_dist($version_cible){
$new_prefixe = "XXspip$version";
// ici on ecrit la meta dans la table 'officielle'
ecrire_meta('restauration_table_prefix',$new_prefixe,'non');
ecrire_meta('vieille_version_installee',$version,'non');
ecrire_meta('vieille_version_installee',$version_cible,'non');
$metas = $GLOBALS['meta'];
//$GLOBALS['table_prefix'] = $new_prefixe;
//lire_metas();
$prefixe_source = $GLOBALS['connexions'][0]['prefixe'];
$GLOBALS['serveur_vieille_base'] = 0;
$GLOBALS['connexions'][$GLOBALS['serveur_vieille_base']] = $GLOBALS['connexions'][0];
$GLOBALS['connexions'][$GLOBALS['serveur_vieille_base']]['prefixe'] = $new_prefixe;
lire_metas();
if (!isset($GLOBALS['meta']['restauration_table_prefix_source'])) {
$create = charger_fonction('create',"maj/vieille_base/$version");
$create();
$create = charger_fonction('create',"maj/vieille_base/$version");
$create();
// reecrire les metas dans la table provisoire
foreach($metas as $k=>$v)
ecrire_meta($k,$v);
ecrire_meta('restauration_table_prefix_source',$prefixe_source,'non');
// reecrire les metas dans la table provisoire
foreach($GLOBALS['meta'] as $k=>$v)
ecrire_meta($k,$v);
ecrire_meta('restauration_table_prefix_source',$prefixe_source,'non');
// noter le numero de version installee
ecrire_meta('version_installee',$version,'non');
}
// noter le numero de version installee
ecrire_meta('version_installee',$version_cible,'non');
if ($version_cible!=$GLOBALS['meta']['version_installee']) {
// upgrader jusqu'a la cible
include_spip('base/upgrade');
maj_base($version_cible);
}
}
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter