fix: compat spip 4 et sup
This commit is contained in:
parent
7683235a46
commit
17b16a2990
2 changed files with 26 additions and 96 deletions
|
@ -85,14 +85,6 @@
|
|||
[(#SET{min,#VAL{minlength=}|concat{#ENV{pass_longeur_mini,6}}})]
|
||||
[(#SET{chaine_langue,#VAL{comptespip:champ_password}|_T{#ARRAY{min,#ENV{pass_longeur_mini}}}})]
|
||||
|
||||
<div style="height: 0;">
|
||||
[(#SAISIE{input,new_password}
|
||||
{type=hidden}
|
||||
)]
|
||||
[(#SAISIE{input,new_password_confirmation}
|
||||
{type=hidden}
|
||||
)]
|
||||
</div>
|
||||
[(#SAISIE{input,password}
|
||||
{type=password}
|
||||
{attributs=#GET{min}}
|
||||
|
@ -114,33 +106,3 @@
|
|||
</div></form>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="[(#CHEMIN{prive/javascript/login-sha-min.js})]"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
jQuery(function(){
|
||||
setTimeout(()=> $('#champ_password_confirmation').val(''), 400);
|
||||
jQuery('form#editer_compte_spip').on('submit', function(e){
|
||||
['#champ_password', "#champ_password_confirmation"].forEach((champ)=>{
|
||||
var pass = $(champ).val();
|
||||
$(champ).val('');
|
||||
|
||||
if (pass
|
||||
&& !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(pass);
|
||||
if ( hash ) {
|
||||
if (champ === "#champ_password") {
|
||||
$('input#champ_new_password').val(hash);
|
||||
} else {
|
||||
$('input#champ_new_password_confirmation').val(hash);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
|
|
@ -32,8 +32,6 @@ function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redir
|
|||
}
|
||||
|
||||
$valeurs['alea'] = '';
|
||||
$valeurs['new_password'] = '';
|
||||
$valeurs['new_password_confirmation'] = '';
|
||||
$valeurs['password'] = '';
|
||||
$valeurs['password_confirmation'] = '';
|
||||
$valeurs['pass_longeur_mini'] = _PASS_LONGUEUR_MINI;
|
||||
|
@ -51,21 +49,17 @@ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redi
|
|||
}
|
||||
|
||||
// mot de passe
|
||||
if (_request('new_password') != _request('new_password_confirmation')){
|
||||
$erreurs['new_password_confirmation'] = _T('info_passes_identiques');
|
||||
if (_request('password') != _request('password_confirmation')){
|
||||
$erreurs['password_confirmation'] = _T('info_passes_identiques');
|
||||
}
|
||||
|
||||
//if ( strlen(_request('password')) > 0 and strlen(_request('password')) < _PASS_LONGUEUR_MINI ){
|
||||
//$erreurs['password'] = _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI));
|
||||
//}
|
||||
|
||||
// Mais si l'un des deux champs n'est pas rempli, cette erreur prend le dessus
|
||||
if ($id_auteur === 'new') {
|
||||
if (!_request('new_password')){
|
||||
$erreurs['new_password'] = _T('info_obligatoire');
|
||||
if (!_request('password')){
|
||||
$erreurs['password'] = _T('info_obligatoire');
|
||||
}
|
||||
if (!_request('new_password_confirmation')){
|
||||
$erreurs['new_password_confirmation'] = _T('info_obligatoire');
|
||||
if (!_request('password_confirmation')){
|
||||
$erreurs['password_confirmation'] = _T('info_obligatoire');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -130,7 +124,6 @@ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redi
|
|||
$erreurs['mobile'] = _T('comptespip:telephone_deja_enregistre');
|
||||
}
|
||||
}
|
||||
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
|
@ -147,9 +140,7 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
|
|||
}
|
||||
|
||||
include_spip('action/editer_auteur');
|
||||
include_spip('inc/acces');
|
||||
|
||||
$password = _request('new_password');
|
||||
$password = _request('password');
|
||||
|
||||
$update = true;
|
||||
$set = [];
|
||||
|
@ -164,27 +155,11 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
|
|||
if (lire_config('comptespip/login_telephone') === 'oui') {
|
||||
$login = _request('telephone');
|
||||
} else {
|
||||
// $search = [ ' ', "'", 'é' ];
|
||||
// $replace = [ '_', '_', 'e' ];
|
||||
// $login = strtolower(str_replace($search, $replace, _request('nom')));
|
||||
// $login .= '_'.$id_auteur;
|
||||
$login = 'login_'.$id_auteur;
|
||||
}
|
||||
$set['login'] = $login;
|
||||
$set['statut'] = $mode;
|
||||
if (strlen($password) < 50) {
|
||||
include_spip('inc/acces');
|
||||
include_spip('auth/sha256.inc');
|
||||
$alea_actuel = creer_uniqid();
|
||||
$pass = spip_sha256($alea_actuel . $password);
|
||||
$set['pass'] = $pass;
|
||||
$set['alea_actuel'] = $alea_actuel;
|
||||
$set['alea_futur'] = $alea_actuel;
|
||||
} else {
|
||||
$set['pass'] = $password;
|
||||
$set['alea_actuel'] = "";
|
||||
$set['alea_futur'] = creer_uniqid();
|
||||
}
|
||||
$set_inst['login'] = $login;
|
||||
$set_inst['statut'] = $mode;
|
||||
auteur_instituer($id_auteur, $set_inst);
|
||||
/*
|
||||
* Branchement sur le plugin Autorisations etendues
|
||||
*/
|
||||
|
@ -205,28 +180,20 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
|
|||
'data' => $set
|
||||
)
|
||||
);
|
||||
} else {
|
||||
if ($password) {
|
||||
// si le password fait moins de 50 caracteres, on peut penser que le javascript n'a pas fonctionné, on crypte alors le mdp
|
||||
if (strlen($password) < 50) {
|
||||
include_spip('inc/acces');
|
||||
include_spip('auth/sha256.inc');
|
||||
$alea_actuel = creer_uniqid();
|
||||
$pass = spip_sha256($alea_actuel . $password);
|
||||
$set['pass'] = $pass;
|
||||
$set['alea_actuel'] = $alea_actuel;
|
||||
$set['alea_futur'] = $alea_actuel;
|
||||
} else {
|
||||
$set['pass'] = $password;
|
||||
$set['alea_actuel'] = "";
|
||||
$set['alea_futur'] = creer_uniqid();
|
||||
}
|
||||
}
|
||||
if (lire_config('comptespip/login_telephone') === 'oui') {
|
||||
$set['login'] = _request('telephone');
|
||||
}
|
||||
}
|
||||
|
||||
if ($password) {
|
||||
auteur_instituer($id_auteur, [
|
||||
'pass' => $password
|
||||
]);
|
||||
}
|
||||
if (lire_config('comptespip/login_telephone') === 'oui') {
|
||||
auteur_instituer($id_auteur, [
|
||||
'login' => _request('telephone')
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
if (!empty($saisies)) {
|
||||
foreach ($saisies as $saisie) {
|
||||
$champ = $saisie['options']['nom'];
|
||||
|
@ -257,7 +224,8 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
|
|||
'data' => $set
|
||||
)
|
||||
);
|
||||
$r = sql_updateq('spip_auteurs', $set, 'id_auteur='.intval($id_auteur));
|
||||
// $r = sql_updateq('spip_auteurs', $set, 'id_auteur='.intval($id_auteur));
|
||||
$r = auteur_modifier($id_auteur, $set);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -310,9 +278,9 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
|
|||
|
||||
|
||||
if ($r) {
|
||||
$retour['message_ok'] = _T('comptespip:modification_compte_ok');
|
||||
} else {
|
||||
$retour['message_erreur'] = _T('comptespip:erreur_edition_compte');
|
||||
} else {
|
||||
$retour['message_ok'] = _T('comptespip:modification_compte_ok');
|
||||
}
|
||||
|
||||
if ($redirect) {
|
||||
|
|
Loading…
Add table
Reference in a new issue