formulaire inscription utilise le meme que le formulaire d'update, la gestion du mot de passe est crypter coté client
This commit is contained in:
parent
6ea2fd9cb6
commit
aa47d7916d
5 changed files with 119 additions and 55 deletions
|
@ -23,6 +23,15 @@ $GLOBALS['comptespip_editer'] = [
|
|||
//'fonction' => 'ma_super_fonction'
|
||||
)
|
||||
],
|
||||
[
|
||||
'saisie' => 'input',
|
||||
'options' => array(
|
||||
'nom' => 'prenom',
|
||||
'label' => 'Votre prénom',
|
||||
'obligatoire' => 'oui',
|
||||
//'fonction' => 'ma_super_fonction'
|
||||
)
|
||||
],
|
||||
[
|
||||
'saisie' => 'input',
|
||||
'options' => array(
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<div class="se_connecter inner">
|
||||
<div class="grid-2">
|
||||
<div class="sinscrire">
|
||||
[(#FORMULAIRE_CREER_COMPTE_SPIP{})]
|
||||
[(#FORMULAIRE_EDITER_COMPTE_SPIP{})]
|
||||
</div>
|
||||
<div class="login">
|
||||
<h3 class="mlm">Se connecter</h3>
|
||||
|
|
|
@ -3,19 +3,21 @@
|
|||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
||||
|
||||
<form name="formulaire_#FORM" action="#ENV{action}" method="post"><div>
|
||||
<form name="formulaire_#FORM" id="editer_compte_spip" action="#ENV{action}" method="post"><div>
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
|
||||
<div class="comptespip_logo_auteur">
|
||||
<INCLURE{fond=inclure/logo_auteur,id_auteur,env}>
|
||||
[(#ENV{id_auteur}|!={new}|oui)
|
||||
<div class="comptespip_logo_auteur">
|
||||
<INCLURE{fond=inclure/logo_auteur,id_auteur,env}>
|
||||
|
||||
[(#ENV{_bigup_rechercher_fichiers}|oui)
|
||||
[(#SAISIE{bigup, logo, form, formulaire_args}
|
||||
{previsualiser=oui}
|
||||
{accept=image/*}
|
||||
)]
|
||||
]
|
||||
</div>
|
||||
[(#ENV{_bigup_rechercher_fichiers}|oui)
|
||||
[(#SAISIE{bigup, logo, form, formulaire_args}
|
||||
{previsualiser=oui}
|
||||
{accept=image/*}
|
||||
)]
|
||||
]
|
||||
</div>
|
||||
]
|
||||
|
||||
<div>
|
||||
#GENERER_SAISIES{#ENV{_saisies}}
|
||||
|
@ -35,9 +37,36 @@
|
|||
</fieldset>
|
||||
|
||||
<div class="boutons">
|
||||
[(#ENV{id_auteur}|!={new}|oui)
|
||||
<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>
|
||||
]
|
||||
<button type="submit" class="btn"><:comptespip:valider:></button>
|
||||
</div>
|
||||
</div></form>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="[(#CHEMIN{prive/javascript/login-sha-min.js})]"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
jQuery(function(){
|
||||
jQuery('form#editer_compte_spip').on('submit', function(e){
|
||||
var alea = "#ENV{alea}";
|
||||
['#champ_password', "#champ_password_confirmation"].forEach((champ)=>{
|
||||
var pass = $(champ).val();
|
||||
console.log(alea);
|
||||
|
||||
if (!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 = hex_sha256(alea + pass);
|
||||
if ( hash ) {
|
||||
$('input'+champ).val(hash);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
|
|
@ -6,35 +6,23 @@ function formulaires_editer_compte_spip_saisies_dist($id_auteur = 'new', $redir
|
|||
return $saisies;
|
||||
}
|
||||
|
||||
function comptespip_recupIdauteur($id_auteur){
|
||||
include_spip('inc/autoriser');
|
||||
static $id;
|
||||
if ($id === null) {
|
||||
if (autoriser("administrer","comptespip") and intval($id_auteur)) {
|
||||
$id = intval($id_auteur);
|
||||
}
|
||||
if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']) {
|
||||
$id = $GLOBALS['visiteur_session']['id_auteur'];
|
||||
}
|
||||
$id = 'new';
|
||||
}
|
||||
return $id;
|
||||
}
|
||||
|
||||
function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redirect = ''){
|
||||
$id_auteur = comptespip_recupIdauteur($id_auteur);
|
||||
|
||||
$valeurs = [];
|
||||
$valeurs = ['id_auteur' => $id_auteur];
|
||||
|
||||
if (intval($id_auteur)) {
|
||||
$valeurs = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.intval($id_auteur));
|
||||
if (lire_config('comptespip/modif_logo_auteur')) {
|
||||
$valeurs['_bigup_rechercher_fichiers'] = 'true';
|
||||
$valeurs['logo'] = '';
|
||||
$valeurs['alea'] = $valeurs['alea_actuel'];
|
||||
}
|
||||
}
|
||||
|
||||
$valeurs['alea'] = '';
|
||||
$valeurs['password'] = '';
|
||||
$valeurs['password_confirmation'] = '';
|
||||
if (lire_config('comptespip/modif_logo_auteur')) {
|
||||
$valeurs['_bigup_rechercher_fichiers'] = 'true';
|
||||
$valeurs['logo'] = '';
|
||||
}
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
@ -123,15 +111,32 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
|
|||
|
||||
$saisies = $GLOBALS['comptespip_editer'];
|
||||
$id_auteur = comptespip_recupIdauteur($id_auteur);
|
||||
$mode = lire_config('comptespip/statut');
|
||||
$retour = [];
|
||||
|
||||
include_spip('action/editer_auteur');
|
||||
|
||||
$password = _request('password');
|
||||
|
||||
$update = true;
|
||||
$set = [];
|
||||
if (!intval($id_auteur)) {
|
||||
$id_auteur = auteur_inserer();
|
||||
$update = false;
|
||||
$search = [ ' ', "'", 'é' ];
|
||||
$replace = [ '_', '_', 'e' ];
|
||||
$login = strtolower(str_replace($search, $replace, _request('nom')));
|
||||
$login .= '_'.$id_auteur;
|
||||
$set['login'] = $login;
|
||||
$set['pass'] = $password;
|
||||
$set['statut'] = $mode;
|
||||
} else {
|
||||
if ($password) {
|
||||
$set['pass'] = $password;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($saisies)) {
|
||||
$set = [];
|
||||
foreach ($saisies as $saisie) {
|
||||
$champ = $saisie['options']['nom'];
|
||||
if (isset($f) and !empty($f)) {
|
||||
|
@ -141,37 +146,42 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
|
|||
}
|
||||
}
|
||||
if (count($set) > 0) {
|
||||
$r = auteur_modifier($id_auteur, $set);
|
||||
$r = sql_updateq('spip_auteurs', $set, 'id_auteur='.intval($id_auteur));
|
||||
}
|
||||
}
|
||||
|
||||
// gestion du login et du password
|
||||
if (_request('login')) {
|
||||
$login = _request('login');
|
||||
}
|
||||
if (_request('password')) {
|
||||
$pass = _request('password');
|
||||
}
|
||||
|
||||
$set_instituer = [
|
||||
'pass' => $pass,
|
||||
'login' => $login
|
||||
];
|
||||
auteur_instituer($id_auteur, $set_instituer);
|
||||
|
||||
if (lire_config('comptespip/modif_logo_auteur')) {
|
||||
if ($update and lire_config('comptespip/modif_logo_auteur')) {
|
||||
comptespip_save_logo_auteur($id_auteur);
|
||||
}
|
||||
|
||||
|
||||
include_spip('inc/invalideur');
|
||||
suivre_invalideur("id='id_auteur/$id_auteur'");
|
||||
|
||||
if ($r) {
|
||||
$retour['message_erreur'] = $r;
|
||||
} else {
|
||||
$retour['message_ok'] = _T('comptespip/modification_compte_ok');
|
||||
if (!$update and lire_config('comptespip/connexion_auto')) {
|
||||
// loguer le compte créé (on a vérifié par SMS)
|
||||
$auteur = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur));
|
||||
include_spip('inc/auth');
|
||||
auth_loger($auteur);
|
||||
|
||||
if (lire_config('comptespip/page_redirection_connexion')) {
|
||||
$retour = parametre_url(generer_url_public(lire_config('comptespip/page_redirection_connexion'),'',true),'id_auteur',intval($id_auteur));
|
||||
}
|
||||
return array('message_ok' => _T('form_forum_identifiant_mail'), 'redirect' => $retour);
|
||||
}
|
||||
|
||||
if ($update) {
|
||||
$auteur = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur));
|
||||
include_spip('inc/session');
|
||||
actualiser_sessions($auteur);
|
||||
}
|
||||
|
||||
|
||||
if ($r) {
|
||||
$retour['message_ok'] = _T('comptespip:modification_compte_ok');
|
||||
} else {
|
||||
$retour['message_erreur'] = _T('comptespip:erreur_edition_compte');
|
||||
}
|
||||
|
||||
if ($redirect) {
|
||||
$retour['redirect'] = $redirect;
|
||||
}
|
||||
|
@ -194,3 +204,19 @@ function comptespip_save_logo_auteur($id_auteur){
|
|||
autoriser_exception('modifier', 'article', $id_auteur, false);
|
||||
}
|
||||
}
|
||||
|
||||
function comptespip_recupIdauteur($id_auteur){
|
||||
include_spip('inc/autoriser');
|
||||
static $id;
|
||||
if ($id === null) {
|
||||
if (autoriser("administrer","comptespip") and intval($id_auteur)) {
|
||||
$id = intval($id_auteur);
|
||||
}
|
||||
if (isset($GLOBALS['visiteur_session']['id_auteur']) AND $GLOBALS['visiteur_session']['id_auteur']) {
|
||||
$id = $GLOBALS['visiteur_session']['id_auteur'];
|
||||
}
|
||||
$id = 'new';
|
||||
}
|
||||
return $id;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
|
|||
'aller_a_la_poubelle' => 'Passer le compte en statut "poubelle"',
|
||||
|
||||
// BB
|
||||
'btn_supprimer_compte_spip' => 'Supprimer btn compte',
|
||||
'btn_supprimer_compte_spip' => 'Supprimer mon compte',
|
||||
|
||||
// C
|
||||
'comptespip_titre' => 'CompteSPIP',
|
||||
|
|
Loading…
Add table
Reference in a new issue