From 3766b28d252b25222ded0518157e8bd5ea38e1d6 Mon Sep 17 00:00:00 2001 From: tofulm Date: Wed, 12 Aug 2020 23:47:25 +0200 Subject: [PATCH] debut du form de desincription, le hash en js ne fonctionne plus, maintenant que tous nos sites sont en https, je vais laisser filer --- content/editer_compte_spip.html | 2 +- content/supprimer_compte_spip.html | 8 ++ formulaires/configurer_comptespip.html | 18 +++ formulaires/editer_compte_spip.html | 3 +- formulaires/supprimer_compte_spip.html | 75 ++++++++++++ formulaires/supprimer_compte_spip.php | 112 ++++++++++++++++++ ...on.php => comptespip_mail_inscription.php} | 0 lang/comptespip_fr.php | 15 ++- paquet.xml | 1 + 9 files changed, 230 insertions(+), 4 deletions(-) create mode 100644 content/supprimer_compte_spip.html create mode 100644 formulaires/supprimer_compte_spip.html create mode 100644 formulaires/supprimer_compte_spip.php rename inc/{gamucompte_mail_inscription.php => comptespip_mail_inscription.php} (100%) diff --git a/content/editer_compte_spip.html b/content/editer_compte_spip.html index 88b6dd9..42a00f2 100644 --- a/content/editer_compte_spip.html +++ b/content/editer_compte_spip.html @@ -1,6 +1,6 @@

Editer compte SPIP

- [(#FORMULAIRE_EDITER_COMPTE_SPIP{})] + [(#FORMULAIRE_EDITER_COMPTE_SPIP{#SESSION{id_auteur}})]
diff --git a/content/supprimer_compte_spip.html b/content/supprimer_compte_spip.html new file mode 100644 index 0000000..f6c845d --- /dev/null +++ b/content/supprimer_compte_spip.html @@ -0,0 +1,8 @@ +#CACHE{0} + +
+

<:comptespip:supprimer_compte_spip:>

+
+ [(#FORMULAIRE_SUPPRIMER_COMPTE_SPIP{#SESSION{id_auteur}})] +
+
diff --git a/formulaires/configurer_comptespip.html b/formulaires/configurer_comptespip.html index 267e83f..a76a409 100644 --- a/formulaires/configurer_comptespip.html +++ b/formulaires/configurer_comptespip.html @@ -143,7 +143,25 @@ + +
+

<:comptespip:conf_formulaire_suppression:>

+
+ #SET{name,choix_suppression_compte} + #SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
+ +
+ + +
+
+ + +
+
+
diff --git a/formulaires/editer_compte_spip.html b/formulaires/editer_compte_spip.html index b7e6222..444c4a3 100644 --- a/formulaires/editer_compte_spip.html +++ b/formulaires/editer_compte_spip.html @@ -35,7 +35,8 @@
- + <:comptespip:btn_supprimer_compte_spip:> + <:comptespip:valider:>
diff --git a/formulaires/supprimer_compte_spip.html b/formulaires/supprimer_compte_spip.html new file mode 100644 index 0000000..0292c0f --- /dev/null +++ b/formulaires/supprimer_compte_spip.html @@ -0,0 +1,75 @@ +
+ +[

(#ENV*{message_erreur})

] +[

(#ENV*{message_ok})

] + +[(#ENV{editable}|oui) +
+ #ACTION_FORMULAIRE{#ENV{action}} +
+

lkdsflsdlkf

+ +
+ + [ (#ENV**{erreurs}|table_valeur{new_pass}) ] + +
+ + +
+

+
+ +
+] + + + diff --git a/formulaires/supprimer_compte_spip.php b/formulaires/supprimer_compte_spip.php new file mode 100644 index 0000000..4cae328 --- /dev/null +++ b/formulaires/supprimer_compte_spip.php @@ -0,0 +1,112 @@ + '', + 'toto' => '', + 'login' => $row['login'], + '_alea_actuel' => isset($row['alea_actuel']) ? $row['alea_actuel'] : '', + '_alea_futur' => isset($row['alea_futur']) ? $row['alea_futur'] : '', + ); + + return $valeurs; +} + +function formulaires_supprimer_compte_spip_verifier_dist($id_auteur, $redirect = ''){ + + $erreurs = array(); + + if (! intval($id_auteur)) { + $erreurs['message_erreur'] = _T('moncompte:action_interdite'); + return $erreurs; + } + + //champs obligatoire + foreach (array ('password') as $obligatoire) { + if (!_request($obligatoire)) $erreurs[$obligatoire] = _T('obligatoire'); + } + + return $erreurs; +} + +function formulaires_supprimer_compte_spip_traiter_dist($id_auteur, $redirect = ''){ + $chaine = _request('password'); + $toto = _request('toto'); + + $chaine = substr($chaine,1, -1); + + $password_a_tester = explode(';', $chaine)[0]; + $password = sql_getfetsel('pass', 'spip_auteurs', 'id_auteur='.intval($id_auteur)); + + $retour = array(); + if ( + !$password or + $password === $password_a_tester + ) { + supprimer_ce_compte($id_auteur); + $retour['message_ok'] = _T('moncompte:compte_supprime'); + } else { + echo "Ne pas Supprimer"; + $retour['message_erreur'] = _T('moncompte:compte_pas_supprime'); + } + + $retour['redirect'] = "spip.php"; + if ($redirect) { + $retour = $redirect; + } + + return $retour; +} + +function supprimer_ce_compte($id_auteur){ + + // suppression definitive du compte + $type_action = 'poubelle'; + if (lire_config('comptespip/choix_suppression_compte') === 'supprimer' ) { + $type_action = 'suppression'; + sql_delete('spip_auteurs','id_auteur='.intval($id_auteur)); + sql_delete('spip_forum','id_auteur='.intval($id_auteur)); + + $from = array( + 'spip_auteurs_liens' + ); + $where = array( + 'id_auteur='.intval($id_auteur), + 'objet="article"', + ); + $T_id_article = sql_allfetsel('id_objet',$from, $where); + $in = sql_in('id_article', array_column($T_id_article, 'id_objet')); + sql_updateq('spip_articles', array('statut' => 'poubelle'), $in); + + } else { + // on passe à la poubelle le compte + sql_updateq('spip_auteurs', array('statut' => '5poubelle'), 'id_auteur='.intval($id_auteur)); + sql_updateq('spip_forum', array('auteur' => '', 'email_auteur' => ''), 'id_auteur='.intval($id_auteur)); + } + + pipeline('comptespip_desinscription',[ + 'args' => compact('id_auteur', 'type_action'), + 'data' => '' + ]); + + // on deconnecte + $logout = charger_fonction('logout','action'); + set_request('url', 'spip.php'); + $logout(); + + + // On invalide le cache + include_spip('inc/invalideur'); + suivre_invalideur("id='id_auteur/$id_auteur'"); + +} diff --git a/inc/gamucompte_mail_inscription.php b/inc/comptespip_mail_inscription.php similarity index 100% rename from inc/gamucompte_mail_inscription.php rename to inc/comptespip_mail_inscription.php diff --git a/lang/comptespip_fr.php b/lang/comptespip_fr.php index 9f4e9eb..a61fdfe 100644 --- a/lang/comptespip_fr.php +++ b/lang/comptespip_fr.php @@ -7,10 +7,14 @@ if (!defined('_ECRIRE_INC_VERSION')) { $GLOBALS[$GLOBALS['idx_lang']] = array( - // G - 'comptespip_titre' => 'CompteSPIP', + // AA + 'aller_a_la_poubelle' => 'Passer le compte en statut "poubelle"', + + // BB + 'btn_supprimer_compte_spip' => 'Supprimer btn compte', // C + 'comptespip_titre' => 'CompteSPIP', 'cfg_exemple' => 'Exemple', 'cfg_exemple_explication' => 'Explication de cet exemple', 'cfg_titre_parametrages' => 'Paramétrages', @@ -29,7 +33,11 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'conf_label_logo_auteur' => "Autoriser la modification du logo de l'auteur", 'conf_label_desactiver_page_connect' => "Désactiver la page connect", 'conf_label_desactiver_page_connect_expl' => "Page d'inscription et de login", + 'conf_formulaire_suppression' => "Configuration du formulaire de suppression de compte SPIP", + // LL + 'label_entree_mdp_pour_suppression_de_compte' => "Entrer votre mot de passe pour pouvoir vous désinscrire", + 'label_choix_action_suppression' => 'Action lors de désinscription', // MM 'message_mail' => 'Voici vos identifiants pour vous connecter sur le site "@nom_site_spip@" (@adresse_login@) :', @@ -40,6 +48,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( // OO 'oui' => 'Oui', + // SS + 'supprimer_compte_spip' => "Suppression de mon compte", + 'supprimer_compte_definitivement' => 'Supprimer le compte définitivement', // T 'titre_page_configurer_comptespip' => 'CompteSPIP', ); diff --git a/paquet.xml b/paquet.xml index 477acb4..6f48cfb 100644 --- a/paquet.xml +++ b/paquet.xml @@ -19,6 +19,7 @@ +