debut du form de desincription, le hash en js ne fonctionne plus, maintenant que tous nos sites sont en https, je vais laisser filer
This commit is contained in:
parent
5d8e2d9f40
commit
3766b28d25
9 changed files with 230 additions and 4 deletions
|
@ -1,6 +1,6 @@
|
|||
<div class="inner">
|
||||
<h1>Editer compte SPIP</h1>
|
||||
<div class="ajax">
|
||||
[(#FORMULAIRE_EDITER_COMPTE_SPIP{})]
|
||||
[(#FORMULAIRE_EDITER_COMPTE_SPIP{#SESSION{id_auteur}})]
|
||||
</div>
|
||||
</div>
|
||||
|
|
8
content/supprimer_compte_spip.html
Normal file
8
content/supprimer_compte_spip.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
#CACHE{0}
|
||||
|
||||
<div id="supprimer_compte_spip" class="inner">
|
||||
<h1><:comptespip:supprimer_compte_spip:></h1>
|
||||
<div class="ajax">
|
||||
[(#FORMULAIRE_SUPPRIMER_COMPTE_SPIP{#SESSION{id_auteur}})]
|
||||
</div>
|
||||
</div>
|
|
@ -143,7 +143,25 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<h3 class="legend"><:comptespip:conf_formulaire_suppression:></h3>
|
||||
<div class="editer">
|
||||
#SET{name,choix_suppression_compte}
|
||||
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||
<div class="editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
|
||||
<label><:comptespip:label_choix_action_suppression:></label>
|
||||
<div class="choix">
|
||||
<input type="radio" class="radio" name="#GET{name}" value="" id="#GET{name}_poubelle"[ (#ENV{#GET{name}}|=={''}|?{checked="checked"})] >
|
||||
<label for="#GET{name}_poubelle"><:comptespip:aller_a_la_poubelle:></label>
|
||||
</div>
|
||||
<div class="choix">
|
||||
<input type="radio" class="radio" name="#GET{name}" value="supprimer" id="#GET{name}_supprimer"[ (#ENV{#GET{name}}|=={supprimer}|?{checked="checked"})] >
|
||||
<label for="#GET{name}_supprimer"><:comptespip:supprimer_compte_definitivement:></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
|
|
|
@ -35,7 +35,8 @@
|
|||
</fieldset>
|
||||
|
||||
<div class="boutons">
|
||||
<button type="submit" class="btn"><:comptespip:valider:></button>
|
||||
<a class="supprimer_compte_spip btn" href="[(#URL_PAGE{supprimer_compte_spip})]"><:comptespip:btn_supprimer_compte_spip:></a>
|
||||
<a type="submit" class="btn"><:comptespip:valider:></a>
|
||||
</div>
|
||||
</div></form>
|
||||
|
||||
|
|
75
formulaires/supprimer_compte_spip.html
Normal file
75
formulaires/supprimer_compte_spip.html
Normal file
|
@ -0,0 +1,75 @@
|
|||
<div class="formulaire_spip formulaire_#FORM">
|
||||
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||
|
||||
[(#ENV{editable}|oui)
|
||||
<form name="formulaire_#FORM" id="desinscription" action="#ENV{action}" method="post"><div>
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
<div class="editer_groupe">
|
||||
<p class="glop">lkdsflsdlkf</p>
|
||||
|
||||
<div class='editer editer_new_pass[ (#ENV**{erreurs}|table_valeur{new_pass}|oui)erreur]'>
|
||||
<label for='new_pass'><:moncompte:entree_mdp_pour_suppression_de_compte:></label>
|
||||
[ <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{new_pass})</span> ]
|
||||
<input type='password' autocomplete="off" class='password' name='password' id='password' value="" required />
|
||||
</div>
|
||||
<input type="text" value="" name="toto" id="toto"/>
|
||||
|
||||
</div>
|
||||
<p class="boutons"><input type="submit" class="submit" value="<:moncompte:desinscription:>" ></p>
|
||||
</div></form>
|
||||
|
||||
</div>
|
||||
]
|
||||
|
||||
<script type="text/javascript" src="[(#CHEMIN{prive/javascript/login-sha-min.js})]"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
var login_info = {
|
||||
'alea_actuel': '#ENV{_alea_actuel}',
|
||||
'alea_futur': '#ENV{_alea_futur}',
|
||||
'login': '#ENV{login}',
|
||||
'compat_md5': false
|
||||
};
|
||||
|
||||
function desinscription_submit() {
|
||||
}
|
||||
//console.log(login_info);
|
||||
//var a = jQuery("input[name=password]");
|
||||
//var b = a.prop("value");
|
||||
//console.log(calcule_hash_pass(b));
|
||||
//if ( b && ( login_info.alea_actuel || login_info.alea_futur )) {
|
||||
//a.after('<input name="password" type="hidden" value="" />').prop("value", b);
|
||||
//a.prop("name", "nothing").prop("value",""), calcule_hash_pass(b);
|
||||
//}
|
||||
|
||||
jQuery(function(){
|
||||
jQuery('form#desinscription').submit(function(e){
|
||||
e.preventDefault();
|
||||
var pass = $('#password').val();
|
||||
|
||||
if ((login_info.alea_actuel || login_info.alea_futur)
|
||||
&& !pass.match(/^\{([0-9a-f]{32});([0-9a-f]{32})\}$/i)
|
||||
&& !pass.match(/^\{([0-9a-f]{64});([0-9a-f]{64});([0-9a-f]{32});([0-9a-f]{32})\}$/i)
|
||||
&& sha256_self_test() // verifions que le hash sha est operationnel
|
||||
) {
|
||||
var hash = "";
|
||||
hash = hex_sha256(login_info.alea_actuel + pass);
|
||||
|
||||
hash = hash+';'+hex_sha256(login_info.alea_futur + pass);
|
||||
// envoyer aussi le md5 si demande (compatibilite)
|
||||
if (window.calcMD5){
|
||||
hash = hash+';'+calcMD5(login_info.alea_actuel + pass);
|
||||
hash = hash+';'+calcMD5(login_info.alea_futur + pass);
|
||||
}
|
||||
|
||||
jQuery('input#password').prop('value', '');
|
||||
jQuery('input#toto').prop('value', hash);
|
||||
|
||||
};
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
112
formulaires/supprimer_compte_spip.php
Normal file
112
formulaires/supprimer_compte_spip.php
Normal file
|
@ -0,0 +1,112 @@
|
|||
<?php
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
function formulaires_supprimer_compte_spip_charger_dist($id_auteur, $redirect = ''){
|
||||
|
||||
if (! intval($id_auteur)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$row = sql_fetsel('login, alea_actuel, alea_futur', 'spip_auteurs', 'id_auteur='.intval($id_auteur));
|
||||
|
||||
$valeurs = array(
|
||||
'password' => '',
|
||||
'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'");
|
||||
|
||||
}
|
|
@ -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',
|
||||
);
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
<pipeline nom="autoriser" inclure="comptespip_autorisations.php" />
|
||||
<pipeline nom="insert_head_css" inclure="comptespip_pipelines.php" />
|
||||
|
||||
<pipeline nom="comptespip_desinscription" action="" />
|
||||
<pipeline nom="comptespip_pre_inscription" action="" />
|
||||
<pipeline nom="comptespip_pre_login" action="" />
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue