préparation du merge avec la master

This commit is contained in:
cy_altern 2021-08-12 13:00:32 +02:00
parent 9c41a89b1f
commit d168f786cc
8 changed files with 140 additions and 59 deletions

View file

@ -13,6 +13,8 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return; return;
} }
define('_LOGIN_TROP_COURT', 1);
$GLOBALS['comptespip_editer'] = [ $GLOBALS['comptespip_editer'] = [
[ [
'saisie' => 'input', 'saisie' => 'input',
@ -21,7 +23,8 @@ $GLOBALS['comptespip_editer'] = [
'label' => 'Votre Nom', 'label' => 'Votre Nom',
'obligatoire' => 'oui', 'obligatoire' => 'oui',
//'fonction' => 'ma_super_fonction' //'fonction' => 'ma_super_fonction'
) //'modifier' => 'ma_super_fonction_pour_modifier'
)
], ],
[ [
'saisie' => 'input', 'saisie' => 'input',

View file

@ -1,3 +1,5 @@
#CACHE{0}
[(#SESSION{id_auteur}|sinon_interdire_acces{[(#URL_PAGE{mon_compte})]})] [(#SESSION{id_auteur}|sinon_interdire_acces{[(#URL_PAGE{mon_compte})]})]
<div class="inner se_connecter"> <div class="inner se_connecter">
<h3 class="comptespip_titre_form"><i class="fa fa-pencil fas fa-pen"></i> <:comptespip:editer_compte_spip:></h3> <h3 class="comptespip_titre_form"><i class="fa fa-pencil fas fa-pen"></i> <:comptespip:editer_compte_spip:></h3>

View file

@ -20,13 +20,13 @@
<div class="se_connecter inner"> <div class="se_connecter inner">
<div class="grid-2"> <div class="grid-2 has-gutter-l">
<div class="login"> <div class="login">
<h3 class="comptespip_titre_form"><i class="fa fa-unlock"></i> <:comptespip:se_connecter:></h3> <h3 class="comptespip_titre_form mlm"><i class="fa fa-unlock"></i> <:comptespip:se_connecter:></h3>
[(#FORMULAIRE_LOGIN{#URL_PAGE{#CONFIG{comptespip/page_redirection_connexion}}})] [(#FORMULAIRE_LOGIN{#URL_PAGE{#CONFIG{comptespip/page_redirection_connexion}}})]
</div> </div>
<div class="sinscrire"> <div class="sinscrire">
<h3 class="comptespip_titre_form"><i class="fa fa-user-plus"></i> <:comptespip:sinscrire:></h3> <h3 class="comptespip_titre_form mlm"><i class="fa fa-user-plus"></i> <:comptespip:sinscrire:></h3>
<div class="PasAjax"> <div class="PasAjax">
[(#FORMULAIRE_EDITER_COMPTE_SPIP{})] [(#FORMULAIRE_EDITER_COMPTE_SPIP{})]
</div> </div>

View file

@ -1,12 +1,16 @@
#CACHE{0} #CACHE{0}
<div class="formulaire_spip formulaire_#FORM"> <div class="formulaire_spip formulaire_#FORM">
[<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" id="editer_compte_spip" 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}}
<input type="hidden" value="#ENV{id_auteur}" name="id_auteur"/>
[(#ENV{id_auteur}|!={new}|oui) [(#ENV{id_auteur}|!={new}|oui)
<div class="comptespip_logo_auteur"> <div class="comptespip_logo_auteur">
<INCLURE{fond=inclure/logo_auteur,id_auteur,env}> <INCLURE{fond=inclure/logo_auteur,id_auteur,env}>
@ -20,11 +24,14 @@
</div> </div>
] ]
<fieldset> <div class="editer_groupe">
<legend><:comptespip:identite:></legend> <fieldset>
#GENERER_SAISIES{#ENV{_saisies}} <legend><:comptespip:identite:></legend>
</fieldset> #GENERER_SAISIES{#ENV{_saisies}}
</fieldset>
</div>
<div class="editer_groupe">
<BOUCLE_con(CONDITION){si #PLUGIN{verifmob}|oui}> <BOUCLE_con(CONDITION){si #PLUGIN{verifmob}|oui}>
<style type="text/css" media="screen"> <style type="text/css" media="screen">
.editer_telephone { .editer_telephone {
@ -70,10 +77,14 @@
</fieldset> </fieldset>
[(#INCLURE{fond=inclure/verif_mobile})] [(#INCLURE{fond=inclure/verif_mobile})]
</BOUCLE_con> </BOUCLE_con>
</div>
<div class="editer_groupe">
<fieldset> <fieldset>
<legend><:comptespip:mot_de_passe:></legend> <legend><:comptespip:mot_de_passe:></legend>
<div class="editer_groupe"> [(#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;"> <div style="height: 0;">
[(#SAISIE{input,new_password} [(#SAISIE{input,new_password}
{type=hidden} {type=hidden}
@ -82,9 +93,6 @@
{type=hidden} {type=hidden}
)] )]
</div> </div>
[(#SET{min,#VAL{minlength=}|concat{#ENV{pass_longeur_mini,6}}})]
[(#SET{chaine_langue,#VAL{comptespip:champ_password}|_T{#ARRAY{min,#ENV{pass_longeur_mini}}}})]
[(#SAISIE{input,password} [(#SAISIE{input,password}
{type=password} {type=password}
{attributs=#GET{min}} {attributs=#GET{min}}
@ -94,8 +102,8 @@
{type=password} {type=password}
{label=<:comptespip:champ_password_confirm:>} {label=<:comptespip:champ_password_confirm:>}
)] )]
</div>
</fieldset> </fieldset>
</div>
<div class="boutons"> <div class="boutons">
[(#ENV{id_auteur}|!={new}|et{#AUTORISER{supprimer,comptespip}|oui}|et{#CONFIG{comptespip/interdire_suppression}|!={oui}|oui}) [(#ENV{id_auteur}|!={new}|et{#AUTORISER{supprimer,comptespip}|oui}|et{#CONFIG{comptespip/interdire_suppression}|!={oui}|oui})
@ -110,7 +118,6 @@
<script type="text/javascript" src="[(#CHEMIN{prive/javascript/login-sha-min.js})]"></script> <script type="text/javascript" src="[(#CHEMIN{prive/javascript/login-sha-min.js})]"></script>
<script type="text/javascript"> <script type="text/javascript">
jQuery(function(){ jQuery(function(){
setTimeout(()=> $('#champ_password_confirmation').val(''), 400); setTimeout(()=> $('#champ_password_confirmation').val(''), 400);
jQuery('form#editer_compte_spip').on('submit', function(e){ jQuery('form#editer_compte_spip').on('submit', function(e){

View file

@ -31,14 +31,12 @@ function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redir
$valeurs['confirmation_sms'] = ''; $valeurs['confirmation_sms'] = '';
} }
$valeurs['alea'] = '';
$valeurs['alea'] = '';
$valeurs['new_password'] = ''; $valeurs['new_password'] = '';
$valeurs['new_password_confirmation'] = ''; $valeurs['new_password_confirmation'] = '';
$valeurs['password'] = ''; $valeurs['password'] = '';
$valeurs['password_confirmation'] = ''; $valeurs['password_confirmation'] = '';
$valeurs['pass_longeur_mini'] = _PASS_LONGUEUR_MINI; $valeurs['pass_longeur_mini'] = _PASS_LONGUEUR_MINI;
return $valeurs; return $valeurs;
} }
@ -57,13 +55,17 @@ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redi
$erreurs['new_password_confirmation'] = _T('info_passes_identiques'); $erreurs['new_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 // Mais si l'un des deux champs n'est pas rempli, cette erreur prend le dessus
if ($id_auteur === 'new') { if ($id_auteur === 'new') {
if (!_request('new_password')){ if (!_request('new_password')){
$erreurs['password'] = _T('info_obligatoire'); $erreurs['new_password'] = _T('info_obligatoire');
} }
if (!_request('new_password_confirmation')){ if (!_request('new_password_confirmation')){
$erreurs['password_confirmation'] = _T('info_obligatoire'); $erreurs['new_password_confirmation'] = _T('info_obligatoire');
} }
} }
@ -152,20 +154,21 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
$update = true; $update = true;
$set = []; $set = [];
if (!intval($id_auteur)) { if (!intval($id_auteur)) {
$update = false;
if (function_exists('comptespip_associer_auteur')) { if (function_exists('comptespip_associer_auteur')) {
$id_auteur = comptespip_associer_auteur(); $id_auteur = comptespip_associer_auteur();
} else { } else {
$id_auteur = auteur_inserer(); $id_auteur = auteur_inserer();
} }
$update = false;
if (lire_config('comptespip/login_telephone') === 'oui') { if (lire_config('comptespip/login_telephone') === 'oui') {
$login = _request('telephone'); $login = _request('telephone');
} else { } else {
$search = [ ' ', "'", 'é' ]; // $search = [ ' ', "'", 'é' ];
$replace = [ '_', '_', 'e' ]; // $replace = [ '_', '_', 'e' ];
$login = strtolower(str_replace($search, $replace, _request('nom'))); // $login = strtolower(str_replace($search, $replace, _request('nom')));
$login .= '_'.$id_auteur; // $login .= '_'.$id_auteur;
$login = 'login_'.$id_auteur;
} }
$set['login'] = $login; $set['login'] = $login;
$set['statut'] = $mode; $set['statut'] = $mode;
@ -182,6 +185,26 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
$set['alea_actuel'] = ""; $set['alea_actuel'] = "";
$set['alea_futur'] = creer_uniqid(); $set['alea_futur'] = creer_uniqid();
} }
/*
* Branchement sur le plugin Autorisations etendues
*/
$aut_modele = lire_config('comptespip/aut_modele');
if ($aut_modele and test_plugin_actif('auted')) {
$autorisations = sql_getfetsel('aut_modele', 'spip_aut_modeles', 'nom='.sql_quote($aut_modele));
$set['aut_nom'] = $aut_modele;
$set['autorisations'] = $autorisations;
}
$set = pipeline(
'post_edition',
array(
'args' => array(
'table' => 'spip_auteurs',
'id_objet' => $id_auteur,
'action' => 'comptespip_creer_auteur',
),
'data' => $set
)
);
} else { } else {
if ($password) { 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 // si le password fait moins de 50 caracteres, on peut penser que le javascript n'a pas fonctionné, on crypte alors le mdp
@ -204,39 +227,50 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
} }
} }
/*
* Branchement sur le plugin Autorisations etendues
*/
$aut_modele = lire_config('comptespip/aut_modele');
if ($aut_modele and test_plugin_actif('auted')) {
$autorisations = sql_getfetsel('aut_modele', 'spip_aut_modeles', 'nom='.sql_quote($aut_modele));
$set['aut_nom'] = $aut_modele;
$set['autorisations'] = $autorisations;
}
if (!empty($saisies)) { if (!empty($saisies)) {
foreach ($saisies as $saisie) { foreach ($saisies as $saisie) {
$champ = $saisie['options']['nom']; $champ = $saisie['options']['nom'];
if (isset($f) and !empty($f)) { if (
isset($saisies['options']['fonction'])
and $f = $saisies['options']['fonction']
) {
$f($id_auteur, $champ, _request($champ)); $f($id_auteur, $champ, _request($champ));
} elseif (
isset($saisies['options']['modifier'])
and $m = $saisies['options']['modifier']
) {
$set[$champ] = $m($champ, _request($champ));
} else { } else {
if (_request('champ')) { $set[$champ] = _request($champ);
$set[$champ] = _request($champ);
}
} }
} }
if (count($set) > 0) { if (count($set) > 0) {
$set = pipeline(
'post_edition',
array(
'args' => array(
'table' => 'spip_auteurs',
'id_objet' => $id_auteur,
'action' => 'comptespip_modifier_auteur',
'update' => $update
),
'data' => $set
)
);
$r = sql_updateq('spip_auteurs', $set, 'id_auteur='.intval($id_auteur)); $r = sql_updateq('spip_auteurs', $set, 'id_auteur='.intval($id_auteur));
} }
} }
// envoyer le mail d'inscription si nouveau compte
if (!$update) {
$envoyer_mail = charger_fonction('comptespip_mail_inscription','inc');
$envoyer_mail($id_auteur);
}
if ($update and lire_config('comptespip/modif_logo_auteur')) { if ($update and 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'");
@ -246,10 +280,26 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
include_spip('inc/auth'); include_spip('inc/auth');
auth_loger($auteur); auth_loger($auteur);
$retour['redirect'] = "spip.php";
if (lire_config('comptespip/page_redirection_connexion')) { 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)); $retour['redirect'] = 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 ($redirect) {
$retour['redirect'] = $redirect;
}
$retour['message_ok'] = _T('form_forum_identifiant_mail');
$retour = pipeline(
'comptespip_post_traiter',
array(
'args' => $set,
'data' => $retour
)
);
return $retour;
} }
if ($update) { if ($update) {
@ -269,6 +319,14 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
$retour['redirect'] = $redirect; $retour['redirect'] = $redirect;
} }
$retour = pipeline(
'comptespip_post_traiter',
array(
'args' => $set,
'data' => $retour
)
);
return $retour; return $retour;
} }

View file

@ -13,16 +13,23 @@ if (!defined('_ECRIRE_INC_VERSION')){
* @return void * @return void
*/ */
function inc_comptespip_mail_inscription_dist(int $id_auteur, array $options = []) :void{ function inc_comptespip_mail_inscription_dist(int $id_auteur, array $options = []) :void{
//$options['debug'] = true;
$contexte = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.intval($id_auteur)); if (test_plugin_actif('gamumail') and sql_countsel('spip_gamumails', 'slug="mail_inscription"')) {
if (isset($options['pass'])) { $envoyer_gamumail = charger_fonction('envoyer_gamumail', 'inc');
$contexte['pass'] = $options['pass']; $envoyer_gamumail('mail_inscription', $id_auteur, $options);
}
else {
$contexte = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.intval($id_auteur));
if (isset($options['pass'])) {
$contexte['pass'] = $options['pass'];
}
$mail_complet = $contexte['email'];
$message = recuperer_fond('modeles/mail_inscription',$contexte);
$sujet = lire_config('comptespip/mail_inscription_sujet');
include_spip('inc/notifications');
notifications_envoyer_mails($mail_complet, $message, $sujet);
} }
$mail_complet = $contexte['email'];
$message = recuperer_fond('modeles/mail_inscription',$contexte);
$sujet = lire_config('comptespip/mail_inscription_sujet');
include_spip('inc/notifications');
notifications_envoyer_mails($mail_complet, $message, $sujet);
} }

View file

@ -36,6 +36,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'conf_formulaire_suppression' => "Configuration du formulaire de suppression de compte SPIP", 'conf_formulaire_suppression' => "Configuration du formulaire de suppression de compte SPIP",
'champ_password' => "Mot de passe d'au moins @min@ caractères", 'champ_password' => "Mot de passe d'au moins @min@ caractères",
'champ_password_confirm' => "Confirmer votre mot de passe", 'champ_password_confirm' => "Confirmer votre mot de passe",
'confirmation_creation_compte' => 'Votre compte sur le site @url_site@ a bien été créé. Votre identifiant de connexion est l\'adresse mail sur laquelle vous recevez ce message.'."\r\n".'Merci de votre participation!',
'creation_compte' => 'Création de votre compte',
// E // E
'explication_non_suppression' => 'Le texte pour expliquer l\'impossibilité de supprimer son compte', 'explication_non_suppression' => 'Le texte pour expliquer l\'impossibilité de supprimer son compte',
@ -52,6 +54,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'label_non_suppression' => 'Texte d\'explication', 'label_non_suppression' => 'Texte d\'explication',
// MM // MM
'mail_inscription' => 'Mail d\'inscription au site',
'message_mail' => 'Voici vos identifiants pour vous connecter sur le site "@nom_site_spip@" (@adresse_login@) :', 'message_mail' => 'Voici vos identifiants pour vous connecter sur le site "@nom_site_spip@" (@adresse_login@) :',
'mot_de_passe' => 'Mot de passe', 'mot_de_passe' => 'Mot de passe',
'mon_compte' => 'Mon compte', 'mon_compte' => 'Mon compte',

View file

@ -1,11 +1,12 @@
<paquet <paquet
prefix="comptespip" prefix="comptespip"
categorie="edition" categorie="edition"
version="1.0.0" version="1.0.3"
etat="dev" etat="dev"
compatibilite="[3.3.0-dev;3.3.*]" compatibilite="[3.3.0-dev;4.0.*]"
logo="prive/themes/spip/images/comptespip-xx.svg" logo="prive/themes/spip/images/comptespip-xx.svg"
documentation="" documentation=""
schema="1.0.3"
> >
<nom>CompteSPIP</nom> <nom>CompteSPIP</nom>
@ -22,6 +23,6 @@
<pipeline nom="comptespip_desinscription" action="" /> <pipeline nom="comptespip_desinscription" action="" />
<pipeline nom="comptespip_pre_inscription" action="" /> <pipeline nom="comptespip_pre_inscription" action="" />
<pipeline nom="comptespip_pre_login" action="" /> <pipeline nom="comptespip_pre_login" action="" />
<pipeline nom="comptespip_post_traiter" action="" />
</paquet> </paquet>