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'
|
//'fonction' => 'ma_super_fonction'
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'saisie' => 'input',
|
||||||
|
'options' => array(
|
||||||
|
'nom' => 'prenom',
|
||||||
|
'label' => 'Votre prénom',
|
||||||
|
'obligatoire' => 'oui',
|
||||||
|
//'fonction' => 'ma_super_fonction'
|
||||||
|
)
|
||||||
|
],
|
||||||
[
|
[
|
||||||
'saisie' => 'input',
|
'saisie' => 'input',
|
||||||
'options' => array(
|
'options' => array(
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<div class="se_connecter inner">
|
<div class="se_connecter inner">
|
||||||
<div class="grid-2">
|
<div class="grid-2">
|
||||||
<div class="sinscrire">
|
<div class="sinscrire">
|
||||||
[(#FORMULAIRE_CREER_COMPTE_SPIP{})]
|
[(#FORMULAIRE_EDITER_COMPTE_SPIP{})]
|
||||||
</div>
|
</div>
|
||||||
<div class="login">
|
<div class="login">
|
||||||
<h3 class="mlm">Se connecter</h3>
|
<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_erreur">(#ENV*{message_erreur})</p>]
|
||||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</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}}
|
#ACTION_FORMULAIRE{#ENV{action}}
|
||||||
|
|
||||||
<div class="comptespip_logo_auteur">
|
[(#ENV{id_auteur}|!={new}|oui)
|
||||||
<INCLURE{fond=inclure/logo_auteur,id_auteur,env}>
|
<div class="comptespip_logo_auteur">
|
||||||
|
<INCLURE{fond=inclure/logo_auteur,id_auteur,env}>
|
||||||
|
|
||||||
[(#ENV{_bigup_rechercher_fichiers}|oui)
|
[(#ENV{_bigup_rechercher_fichiers}|oui)
|
||||||
[(#SAISIE{bigup, logo, form, formulaire_args}
|
[(#SAISIE{bigup, logo, form, formulaire_args}
|
||||||
{previsualiser=oui}
|
{previsualiser=oui}
|
||||||
{accept=image/*}
|
{accept=image/*}
|
||||||
)]
|
)]
|
||||||
]
|
]
|
||||||
</div>
|
</div>
|
||||||
|
]
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
#GENERER_SAISIES{#ENV{_saisies}}
|
#GENERER_SAISIES{#ENV{_saisies}}
|
||||||
|
@ -35,9 +37,36 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<div class="boutons">
|
<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 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>
|
||||||
</div></form>
|
</div></form>
|
||||||
|
|
||||||
</div>
|
</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;
|
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 = ''){
|
function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redirect = ''){
|
||||||
$id_auteur = comptespip_recupIdauteur($id_auteur);
|
$id_auteur = comptespip_recupIdauteur($id_auteur);
|
||||||
|
|
||||||
$valeurs = [];
|
$valeurs = ['id_auteur' => $id_auteur];
|
||||||
|
|
||||||
if (intval($id_auteur)) {
|
if (intval($id_auteur)) {
|
||||||
$valeurs = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.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'] = '';
|
||||||
$valeurs['password_confirmation'] = '';
|
$valeurs['password_confirmation'] = '';
|
||||||
if (lire_config('comptespip/modif_logo_auteur')) {
|
|
||||||
$valeurs['_bigup_rechercher_fichiers'] = 'true';
|
|
||||||
$valeurs['logo'] = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
return $valeurs;
|
return $valeurs;
|
||||||
}
|
}
|
||||||
|
@ -123,15 +111,32 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
|
||||||
|
|
||||||
$saisies = $GLOBALS['comptespip_editer'];
|
$saisies = $GLOBALS['comptespip_editer'];
|
||||||
$id_auteur = comptespip_recupIdauteur($id_auteur);
|
$id_auteur = comptespip_recupIdauteur($id_auteur);
|
||||||
|
$mode = lire_config('comptespip/statut');
|
||||||
$retour = [];
|
$retour = [];
|
||||||
|
|
||||||
include_spip('action/editer_auteur');
|
include_spip('action/editer_auteur');
|
||||||
|
|
||||||
|
$password = _request('password');
|
||||||
|
|
||||||
|
$update = true;
|
||||||
|
$set = [];
|
||||||
if (!intval($id_auteur)) {
|
if (!intval($id_auteur)) {
|
||||||
$id_auteur = auteur_inserer();
|
$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)) {
|
if (!empty($saisies)) {
|
||||||
$set = [];
|
|
||||||
foreach ($saisies as $saisie) {
|
foreach ($saisies as $saisie) {
|
||||||
$champ = $saisie['options']['nom'];
|
$champ = $saisie['options']['nom'];
|
||||||
if (isset($f) and !empty($f)) {
|
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) {
|
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 ($update and lire_config('comptespip/modif_logo_auteur')) {
|
||||||
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')) {
|
|
||||||
comptespip_save_logo_auteur($id_auteur);
|
comptespip_save_logo_auteur($id_auteur);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
include_spip('inc/invalideur');
|
include_spip('inc/invalideur');
|
||||||
suivre_invalideur("id='id_auteur/$id_auteur'");
|
suivre_invalideur("id='id_auteur/$id_auteur'");
|
||||||
|
|
||||||
if ($r) {
|
if (!$update and lire_config('comptespip/connexion_auto')) {
|
||||||
$retour['message_erreur'] = $r;
|
// loguer le compte créé (on a vérifié par SMS)
|
||||||
} else {
|
$auteur = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur));
|
||||||
$retour['message_ok'] = _T('comptespip/modification_compte_ok');
|
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) {
|
if ($redirect) {
|
||||||
$retour['redirect'] = $redirect;
|
$retour['redirect'] = $redirect;
|
||||||
}
|
}
|
||||||
|
@ -194,3 +204,19 @@ function comptespip_save_logo_auteur($id_auteur){
|
||||||
autoriser_exception('modifier', 'article', $id_auteur, false);
|
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"',
|
'aller_a_la_poubelle' => 'Passer le compte en statut "poubelle"',
|
||||||
|
|
||||||
// BB
|
// BB
|
||||||
'btn_supprimer_compte_spip' => 'Supprimer btn compte',
|
'btn_supprimer_compte_spip' => 'Supprimer mon compte',
|
||||||
|
|
||||||
// C
|
// C
|
||||||
'comptespip_titre' => 'CompteSPIP',
|
'comptespip_titre' => 'CompteSPIP',
|
||||||
|
|
Loading…
Add table
Reference in a new issue