Compare commits

...
Sign in to create a new pull request.

38 commits

Author SHA1 Message Date
cy_altern
12ab35cf12 Chore : ajout du login (mais en disabled) dans le form d'édition du compte. Passage en balise + condition plutôt que BOUCLE condition pour le test de présence de verifmobile 2025-03-22 19:14:42 +01:00
62f575c917 fix: on ajoute autocomplete a off, car pas mieux 2024-11-21 15:10:40 +01:00
89046f4273 fix: pas d'autocompletion du champ password_confirmation 2024-11-21 15:02:18 +01:00
b57a3079a6 suppression des classes trop restrictive 2024-11-15 11:41:53 +01:00
ccb926ed3b up de y pour la compat spip 4, et l'utilisation de l'api editer_auteur 2024-11-15 11:24:31 +01:00
bac069e461 feat: on deplace la page dans un inclure, afin de pouvoir l'appeler dans un conteneur perso 2024-11-15 11:23:51 +01:00
17b16a2990 fix: compat spip 4 et sup 2024-11-15 11:23:20 +01:00
7683235a46 compat spip 4.* 2024-11-15 10:51:25 +01:00
03abfaecc3 fix: le champ row n'existe plus/pas 2024-11-15 10:51:18 +01:00
77537f58be test_inscription_dist ne donne pas le pass donc on le recupere dans le select 2022-05-06 16:33:56 +02:00
871dfe0df1 erreur nom variable 2022-03-21 12:20:33 +01:00
0d3724910d test presence constatne 2022-03-17 11:01:42 +01:00
672b222314 indentation/alignement 2021-09-22 10:25:37 +02:00
d7cd0f1219 ajout d'un statut 6forum par defaut 2021-09-14 09:29:15 +02:00
cy_altern
83f29c9b7d merge verifmobi 2021-08-12 13:12:37 +02:00
cy_altern
d168f786cc préparation du merge avec la master 2021-08-12 13:00:32 +02:00
cy_altern
e9806a0703 report ad070c3 (#FORMULAIRE_LOGIN à la place de #LOGIN_PUBLIC) 2021-08-12 11:06:07 +02:00
d6b1387de0 comp spip 4.0 2021-05-02 22:33:22 +02:00
88c77f5a58 ajout d'une nouvelle entrée : modifier qui permet d'appeler une fonction
dans la declaration de la saisie pour faire un traitement spécifique à
un champ
2021-04-29 13:52:09 +02:00
7d729610f3 il manquait l'appel de la fonction 2021-04-29 12:09:28 +02:00
af82b089bf Merge branch 'master' of https://git.gamuza.fr/spip/comptespip 2021-04-26 15:15:15 +02:00
de88c3afb3 pas d'erreur si le nom est trop court 2021-04-26 15:15:11 +02:00
cy_altern
9ae5b78fd1 ne pas laisser trainer le mode debug dans les arguments passés à Gamumail : les messages ne partent pas... 2021-04-25 22:00:11 +02:00
cy_altern
a07579bc39 maj du slug créé si Gamumail est présent. Débogage de l'envoi du mail d'inscription avec Gamumail. 2021-04-25 21:38:16 +02:00
cy_altern
884bab15fc si gamumail est activé et le slug mail_inscription existe, passer par Gamumail pour l'envoi du mail d'inscription 2021-04-24 02:11:15 +02:00
cy_altern
e72c81d385 ajout de la création du slug mail_inscription à l'installation du plugin si Gamumail est actif 2021-04-24 01:47:40 +02:00
a6cedc712c ajout cache 0 2021-04-21 17:05:37 +02:00
8f79056db5 up de z 2021-04-19 21:51:52 +02:00
db8e0bf3c0 on fait KISS et robuste pour le login: login_xx 2021-04-19 21:51:37 +02:00
eaff4f0954 le champ id_auteur en hidden 2021-02-24 16:20:29 +01:00
4d24491055 ajout l'input id_auteur pour pouvoir le recuperer en request 2021-02-24 16:18:25 +01:00
b285cd9eed ajout d'un pipeline a la fin du form, pour pouvoir gerer la redirection en autre 2021-02-23 18:01:13 +01:00
3057cd995b up de z 2021-02-23 16:47:20 +01:00
544b7c51b5 Dans le pipeline de post_edition : comptespip_modifie_auteur, on ajoute l'arg : update 2021-02-23 16:44:55 +01:00
360a003294 Au déplace la gestion d'auted dans la partie creation d'un auteur
on se branche 2 fois sur le pipeline post_edition,
Une fois à la creation une fois à la modification
2021-02-23 16:16:42 +01:00
f82e317765 ajout d'un margin entre les 2 blocs 2021-02-10 13:33:18 +01:00
b1f0d139c0 Merge branch 'master' of ssh://git.gamuza.fr:2222/spip/comptespip into master 2020-10-20 17:13:43 +02:00
bb30b39bcb correction mdp 2020-10-20 17:13:29 +02:00
13 changed files with 316 additions and 208 deletions

View file

@ -0,0 +1,73 @@
<?php
/**
* Fichier gérant l'installation et désinstallation du plugin CompteSPIP
*
* @plugin comptespip
* @copyright 2020
* @author tofulm
* @licence GNU/GPL
* @package SPIP\CompteSPIP\Installation
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Fonction d'installation et de mise à jour du plugin CompteSPIP.
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @param string $version_cible
* Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
* @return void
**/
function comptespip_upgrade($nom_meta_base_version, $version_cible) {
$maj = array();
$maj['create'] = array(
array('comptespip_creer_slug', array('mail_inscription', []),
array('statut_defaut')
));
$maj['1.0.3'] = array(array('comptespip_creer_slug', array('mail_inscription', [])));
$maj['1.0.4'] = array(array('statut_defaut'));
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
function statut_defaut() {
ecrire_config('comptespip/statut', '6forum');
}
/**
* si Gamumail est actif, créer le slug pour le mail d'inscription afin de donner la main aux admins pour son contenu
**/
function comptespip_creer_slug($nom_slug, $options = []) {
if (test_plugin_actif('gamumail')) {
$cree_slug = charger_fonction('creer_slug', 'action');
$message = _T('form_forum_message_auto')."\r\n"."\r\n"._T('form_forum_bonjour', array('nom' => '@@nom@@'))."\r\n"."\r\n";
$message .= _T('comptespip:confirmation_creation_compte', array('url_site' => '@@url_site@@'));
$set = [
'titre' => _T('comptespip:mail_inscription'),
'sujet' => '['.lire_config('nom_site').'] '._T('comptespip:creation_compte'),
'texte' => $message,
'statut' => 'publie',
'editable' => 'non',
];
$cree_slug('mail_inscription', $set);
}
}
/**
* Fonction de désinstallation du plugin CompteSPIP.
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @return void
**/
function comptespip_vider_tables($nom_meta_base_version) {
effacer_meta($nom_meta_base_version);
}

View file

@ -13,7 +13,20 @@ if (!defined('_ECRIRE_INC_VERSION')) {
return; return;
} }
defined('_LOGIN_TROP_COURT') or define('_LOGIN_TROP_COURT', 1);
$GLOBALS['comptespip_editer'] = [ $GLOBALS['comptespip_editer'] = [
[
'saisie' => 'input',
'options' => array(
'nom' => 'login',
'label' => 'Votre identifiant de connexion',
'obligatoire' => 'non',
'disable' => 'oui',
//'fonction' => 'ma_super_fonction'
//'modifier' => 'ma_super_fonction_pour_modifier'
)
],
[ [
'saisie' => 'input', 'saisie' => 'input',
'options' => array( 'options' => array(
@ -21,6 +34,7 @@ $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'
) )
], ],
[ [

View file

@ -24,3 +24,4 @@ function comptespip_insert_head_css($flux){
$flux .= '<link rel="stylesheet" href="' . timestamp(find_in_path('css/comptespip.css')) . '" type="text/css" />' . "\n"; $flux .= '<link rel="stylesheet" href="' . timestamp(find_in_path('css/comptespip.css')) . '" type="text/css" />' . "\n";
return $flux; return $flux;
} }

View file

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

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

@ -41,9 +41,11 @@
float: left; float: left;
} }
/*
.se_connecter .formulaire_spip { .se_connecter .formulaire_spip {
background-color: rgba(235, 235, 235, 1) !important; background-color: rgba(235, 235, 235, 1) !important;
} }
*/
.se_connecter .boutons { .se_connecter .boutons {
background-color: transparent !important; background-color: transparent !important;
} }
@ -58,7 +60,7 @@
padding: 0 1.5rem; padding: 0 1.5rem;
margin-bottom: 1rem; margin-bottom: 1rem;
letter-spacing: initial; letter-spacing: initial;
font-variant: small-caps; /*font-variant: small-caps;*/
} }
.se_connecter #indicatif { .se_connecter #indicatif {
width: 2rem; width: 2rem;
@ -74,9 +76,9 @@
} }
} }
.comptespip_titre_form { /* .comptespip_titre_form { */
margin-bottom: -3rem; /* margin-bottom: -3rem; */
position: relative; /* position: relative; */
z-index: 1; /* z-index: 1; */
margin-left: 2rem; /* margin-left: 2rem; */
} /* } */

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,82 +24,83 @@
</div> </div>
] ]
<fieldset> <div class="editer_groupe">
<legend><:comptespip:identite:></legend>
#GENERER_SAISIES{#ENV{_saisies}}
</fieldset>
<BOUCLE_con(CONDITION){si #PLUGIN{verifmob}|oui}>
<style type="text/css" media="screen">
.editer_telephone {
display: none
}
</style>
<fieldset> <fieldset>
<legend><:comptespip:telephone|ucfirst:></legend> <legend><:comptespip:identite:></legend>
<div class="editer"> #GENERER_SAISIES{#ENV{_saisies}}
#SET{erreurs,#ENV**{erreurs}|table_valeur{mobile}}
[<span class="erreur_message">(#GET{erreurs})</span>]
<div class="verif_mobile editer">
<div class="indicateur_plus">
<span class="badge toto"><i class="fa fa-plus"></i></span>
</div>
<input class="text" type="text"
name="indicatif"
id="indicatif"
value="#ENV{indicatif}"
pattern="[0-9]{2,4}"
required
>
<input type="tel" class="verif_mobile"
id="mobile"
name="mobile"
placeholder="611223344"
value="[(#ENV{mobile})]"
pattern="^[67][0-9]{8}$"
autocomplete="off"
required
maxlength="9"
>
<button class="btn--warning envoyer_sms mts mlm" type="button"><:gabo:envoyer_sms:></button>
</div>
</div>
<div class='editer saisie_confirmation obligatoire[ (#ENV*{erreurs}|table_valeur{confirmation}|oui)erreur]'>
<label for="confirmation"><:comptespip:code_confirmation_sms:> <em class="obligatoire"><:info_obligatoire_02:></em></label>
#SET{erreurs,#ENV**{erreurs}|table_valeur{confirmation_sms}}
[<span class="erreur_message">(#GET{erreurs})</span>]
<input type="text" class="text" id="confirmation_sms" name="confirmation_sms" value="#ENV{confirmation_sms}">
</div>
<button class="btn btn--warning renvoyer_sms" type="button"> <:comptespip:renvoyer_sms:> </button>
</fieldset> </fieldset>
[(#INCLURE{fond=inclure/verif_mobile})] </div>
</BOUCLE_con>
<div class="editer_groupe">
[(#PLUGIN{verifmob}|oui)
<style type="text/css" media="screen">
.editer_telephone {
display: none
}
</style>
<fieldset>
<legend><:comptespip:telephone|ucfirst:></legend>
<div class="editer">
[(#SET{erreurs,#ENV**{erreurs}|table_valeur{mobile}})]
[<span class="erreur_message">(#GET{erreurs})</span>]
<div class="verif_mobile editer">
<div class="indicateur_plus">
<span class="badge toto"><i class="fa fa-plus"></i></span>
</div>
<input class="text" type="text"
name="indicatif"
id="indicatif"
value="[(#ENV{indicatif})]"
pattern="\[0-9\]{2,4}"
required
>
<input type="tel" class="verif_mobile"
id="mobile"
name="mobile"
placeholder="611223344"
value="[(#ENV{mobile})]"
pattern="^\[67\]\[0-9\]{8}$"
autocomplete="off"
required
maxlength="9"
>
<button class="btn--warning envoyer_sms mts mlm" type="button"><:gabo:envoyer_sms:></button>
</div>
</div>
<div class='editer saisie_confirmation obligatoire[ (#ENV*{erreurs}|table_valeur{confirmation}|oui)erreur]'>
<label for="confirmation"><:comptespip:code_confirmation_sms:> <em class="obligatoire"><:info_obligatoire_02:></em></label>
[(#SET{erreurs,#ENV**{erreurs}|table_valeur{confirmation_sms}})]
[<span class="erreur_message">(#GET{erreurs})</span>]
<input type="text" class="text" id="confirmation_sms" name="confirmation_sms" value="[(#ENV{confirmation_sms})]">
</div>
<button class="btn btn--warning renvoyer_sms" type="button"> <:comptespip:renvoyer_sms:> </button>
</fieldset>
[(#INCLURE{fond=inclure/verif_mobile})]
]
</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}}})]
<div style="height: 0;"> [(#SET{chaine_langue,#VAL{comptespip:champ_password}|_T{#ARRAY{min,#ENV{pass_longeur_mini}}}})]
[(#SAISIE{input,new_password}
{type=hidden}
)]
[(#SAISIE{input,new_password_confirmation}
{type=hidden}
)]
</div>
[(#SET{min,#VAL{minlength=}|concat{#ENV{pass_longeur_mini,6}}})] [(#SAISIE{input,password}
[(#SET{chaine_langue,#VAL{comptespip:champ_password}|_T{#ARRAY{min,#ENV{pass_longeur_mini}}}})] {defaut=#ENV{password}}
[(#SAISIE{input,password} {type=password}
{type=password} {attributs=#GET{min}}
{attributs=#GET{min}} {autocomplete=off}
{label=#GET{chaine_langue}} {label=#GET{chaine_langue}}
)] )]
[(#SAISIE{input,password_confirmation} [(#SAISIE{input,password_confirmation}
{type=password} {defaut=#ENV{password_confirmation}}
{label=<:comptespip:champ_password_confirm:>} {type=password}
)] {attributs=#GET{min}}
</div> {autocomplete=off}
{label=<:comptespip:champ_password_confirm:>}
)]
</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})
@ -106,34 +111,3 @@
</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(){
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>

View file

@ -31,14 +31,10 @@ function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redir
$valeurs['confirmation_sms'] = ''; $valeurs['confirmation_sms'] = '';
} }
$valeurs['alea'] = '';
$valeurs['alea'] = ''; $valeurs['password'] = '';
$valeurs['new_password'] = ''; $valeurs['password_confirmation'] = '';
$valeurs['new_password_confirmation'] = ''; $valeurs['pass_longeur_mini'] = _PASS_LONGUEUR_MINI;
$valeurs['password'] = '';
$valeurs['password_confirmation'] = '';
$valeurs['pass_longeur_mini'] = _PASS_LONGUEUR_MINI;
return $valeurs; return $valeurs;
} }
@ -53,16 +49,16 @@ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redi
} }
// mot de passe // mot de passe
if (_request('new_password') != _request('new_password_confirmation')){ if (_request('password') != _request('password_confirmation')){
$erreurs['new_password_confirmation'] = _T('info_passes_identiques'); $erreurs['password_confirmation'] = _T('info_passes_identiques');
} }
// 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('password')){
$erreurs['password'] = _T('info_obligatoire'); $erreurs['password'] = _T('info_obligatoire');
} }
if (!_request('new_password_confirmation')){ if (!_request('password_confirmation')){
$erreurs['password_confirmation'] = _T('info_obligatoire'); $erreurs['password_confirmation'] = _T('info_obligatoire');
} }
} }
@ -83,7 +79,7 @@ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redi
} else { } else {
$f = 'test_inscription_dist'; $f = 'test_inscription_dist';
} }
$declaration = $f($mode, $mail, _request('nom'), $id); $declaration = $f($mode, $mail, _request('nom'), $id_auteur);
if (is_string($declaration)) { if (is_string($declaration)) {
$k = (strpos($declaration, 'mail') !== false) ? $k = (strpos($declaration, 'mail') !== false) ?
'mail_inscription' : 'nom_inscription'; 'mail_inscription' : 'nom_inscription';
@ -99,11 +95,11 @@ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redi
'id_auteur!='.intval($id_auteur) 'id_auteur!='.intval($id_auteur)
] ]
)) { )) {
if (($row['statut'] == '5poubelle') and empty($declaration['pass'])) { if (($row['statut'] == '5poubelle') and empty($row['pass'])) {
// irrecuperable // irrecuperable
$erreurs['message_erreur'] = _T('form_forum_access_refuse'); $erreurs['message_erreur'] = _T('form_forum_access_refuse');
} else { } else {
if (($row['statut'] != 'nouveau') and empty($declaration['pass'])) { if (($row['statut'] != 'nouveau') and empty($row['pass'])) {
if (intval($row['statut']) > intval($mode)) { if (intval($row['statut']) > intval($mode)) {
set_request('_upgrade_auteur', $row['id_auteur']); set_request('_upgrade_auteur', $row['id_auteur']);
} else { } else {
@ -128,7 +124,6 @@ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redi
$erreurs['mobile'] = _T('comptespip:telephone_deja_enregistre'); $erreurs['mobile'] = _T('comptespip:telephone_deja_enregistre');
} }
} }
return $erreurs; return $erreurs;
} }
@ -145,98 +140,105 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
} }
include_spip('action/editer_auteur'); include_spip('action/editer_auteur');
include_spip('inc/acces'); $password = _request('password');
$password = _request('new_password');
$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 = [ ' ', "'", 'é' ]; $login = 'login_'.$id_auteur;
$replace = [ '_', '_', 'e' ];
$login = strtolower(str_replace($search, $replace, _request('nom')));
$login .= '_'.$id_auteur;
} }
$set['login'] = $login; $set_inst['login'] = $login;
$set['statut'] = $mode; $set_inst['statut'] = $mode;
if (strlen($password) < 50) { auteur_instituer($id_auteur, $set_inst);
include_spip('inc/acces'); /*
include_spip('auth/sha256.inc'); * Branchement sur le plugin Autorisations etendues
$alea_actuel = creer_uniqid(); */
$pass = spip_sha256($alea_actuel . $password); $aut_modele = lire_config('comptespip/aut_modele');
$set['pass'] = $pass; if ($aut_modele and test_plugin_actif('auted')) {
$set['alea_actuel'] = $alea_actuel; $autorisations = sql_getfetsel('aut_modele', 'spip_aut_modeles', 'nom='.sql_quote($aut_modele));
$set['alea_futur'] = $alea_actuel; $set['aut_nom'] = $aut_modele;
} else { $set['autorisations'] = $autorisations;
$set['pass'] = $password;
$set['alea_actuel'] = "";
$set['alea_futur'] = creer_uniqid();
}
} 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');
} }
$set = pipeline(
'post_edition',
array(
'args' => array(
'table' => 'spip_auteurs',
'id_objet' => $id_auteur,
'action' => 'comptespip_creer_auteur',
),
'data' => $set
)
);
} }
/* if ($password) {
* Branchement sur le plugin Autorisations etendues auteur_instituer($id_auteur, [
*/ 'pass' => $password
$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)); if (lire_config('comptespip/login_telephone') === 'oui') {
$set['aut_nom'] = $aut_modele; auteur_instituer($id_auteur, [
$set['autorisations'] = $autorisations; 'login' => _request('telephone')
]);
} }
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) {
$r = sql_updateq('spip_auteurs', $set, 'id_auteur='.intval($id_auteur)); $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 = auteur_modifier($id_auteur, $set);
} }
} }
// 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 +248,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) {
@ -260,15 +278,23 @@ function formulaires_editer_compte_spip_traiter_dist($id_auteur = 'new', $redir
if ($r) { if ($r) {
$retour['message_ok'] = _T('comptespip:modification_compte_ok');
} else {
$retour['message_erreur'] = _T('comptespip:erreur_edition_compte'); $retour['message_erreur'] = _T('comptespip:erreur_edition_compte');
} else {
$retour['message_ok'] = _T('comptespip:modification_compte_ok');
} }
if ($redirect) { if ($redirect) {
$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);
} }
$mail_complet = $contexte['email']; 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); $message = recuperer_fond('modeles/mail_inscription',$contexte);
$sujet = lire_config('comptespip/mail_inscription_sujet'); $sujet = lire_config('comptespip/mail_inscription_sujet');
include_spip('inc/notifications'); include_spip('inc/notifications');
notifications_envoyer_mails($mail_complet, $message, $sujet); notifications_envoyer_mails($mail_complet, $message, $sujet);
}
} }

View file

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

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,6 +1,6 @@
[(#REM) [(#REM)
FORK deu modèle de SPIP FORK du modèle de SPIP
][(#HTTP_HEADER{Content-type: text/plain[; charset=(#CHARSET)]})] ][(#HTTP_HEADER{Content-type: text/plain[; charset=(#CHARSET)]})]
[\[(#NOM_SITE_SPIP|concat{'\] : ',<:form_forum_identifiants:>}|nettoyer_titre_email)] [\[(#NOM_SITE_SPIP|concat{'\] : ',<:form_forum_identifiants:>}|nettoyer_titre_email)]

View file

@ -1,11 +1,12 @@
<paquet <paquet
prefix="comptespip" prefix="comptespip"
categorie="edition" categorie="edition"
version="1.0.0" version="1.1.0"
etat="dev" etat="dev"
compatibilite="[3.3.0-dev;3.3.*]" compatibilite="[3.3;4.*]"
logo="prive/themes/spip/images/comptespip-xx.svg" logo="prive/themes/spip/images/comptespip-xx.svg"
documentation="" documentation=""
schema="1.0.4"
> >
<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>