[réglé] Validation ou approbation des inscriptions
Forum rules
Règles du forum
Règles du forum
- Tiko
- Joomla! Apprentice
- Posts: 21
- Joined: Wed Apr 30, 2008 9:06 pm
- Location: Burgundy
- Contact:
[réglé] Validation ou approbation des inscriptions
Salut,
Je voudrais valider les inscriptions sur mon site afin de contrôler qui a accès ou non au contenu.
Actuellement, via le login form, un mail est envoyé avec un lien pour valider l'inscription. Seulement, je voudrais que ce sois moi qui valide l'inscription et pas le nouveau membre.
Avez-vous une idée comment je pourrais faire cela, svp ?
Remerciements,
Hatshepsout
Joomla! 1.5.0 stable
Je voudrais valider les inscriptions sur mon site afin de contrôler qui a accès ou non au contenu.
Actuellement, via le login form, un mail est envoyé avec un lien pour valider l'inscription. Seulement, je voudrais que ce sois moi qui valide l'inscription et pas le nouveau membre.
Avez-vous une idée comment je pourrais faire cela, svp ?
Remerciements,
Hatshepsout
Joomla! 1.5.0 stable
Last edited by Tiko on Sat May 10, 2008 8:44 pm, edited 1 time in total.
- mejean
- Joomla! Hero
- Posts: 2714
- Joined: Thu Aug 18, 2005 12:28 pm
- Location: viewforum.php?f=19
- Contact:
Re: Validation des inscriptions
Bonjour,
Regarde le composant (et son plugin) approbation : http://www.joomlagora.org/index.php/app ... gorie.html
Regarde le composant (et son plugin) approbation : http://www.joomlagora.org/index.php/app ... gorie.html
Jérôme Bussière - simple utilisateur
www.cardabelle.net
www.cardabelle.net
- ouly
- Joomla! Ace
- Posts: 1074
- Joined: Sun Aug 21, 2005 9:18 pm
- Contact:
Re: Validation des inscriptions
Bonjour Tiko et mejean,
Juste pour information l'extension approbation n'est pas compatible J! 1.5.x
On m'a déjà demandé de la porter sur J! 1.5.x mais actuellement je n'ai pas suffisamment de temps
Dans l'immédiat je propose de réappliquer un hack ressemblant à celui pour J! 1.0.x (voir ce sujet) en modifiant la classe JUserHelper :
de la sorte :
Et la classe UserController :
de la sorte :
ouly
Note : pas testé
Juste pour information l'extension approbation n'est pas compatible J! 1.5.x
On m'a déjà demandé de la porter sur J! 1.5.x mais actuellement je n'ai pas suffisamment de temps
Dans l'immédiat je propose de réappliquer un hack ressemblant à celui pour J! 1.0.x (voir ce sujet) en modifiant la classe JUserHelper :
Code: Select all
/**
* Method to activate a user
*
* @param string $activation Activation string
* @return boolean True on success
* @since 1.5
*/
function activateUser($activation)
{
/*...*/
$user->set('block', '0');
/*...*/
}
Code: Select all
/**
* Method to activate a user
*
* @param string $activation Activation string
* @return boolean True on success
* @since 1.5
*/
function activateUser($activation)
{
/*...*/
// On conserve le compte bloque
//$user->set('block', '0');
/*...*/
}
Code: Select all
/**
* Save user registration and notify users and admins if required
* @return void
*/
function register_save()
{
/*...*/
// If user activation is turned on, we need to set the activation information
$useractivation = $usersConfig->get( 'useractivation' );
if ($useractivation == '1')
{
jimport('joomla.user.helper');
$user->set('activation', md5( JUserHelper::genRandomPassword()) );
$user->set('block', '1');
}
/*...*/
}
Code: Select all
/**
* Save user registration and notify users and admins if required
* @return void
*/
function register_save()
{
/*...*/
// If user activation is turned on, we need to set the activation information
$useractivation = $usersConfig->get( 'useractivation' );
if ($useractivation == '1')
{
jimport('joomla.user.helper');
$user->set('activation', md5( JUserHelper::genRandomPassword()) );
}
// On bloque le compte dans tous les cas
$user->set('block', '1');
/*...*/
}
Note : pas testé
Last edited by ouly on Fri May 09, 2008 6:33 pm, edited 2 times in total.
Reason: Ajout d'une note
Reason: Ajout d'une note
- Tiko
- Joomla! Apprentice
- Posts: 21
- Joined: Wed Apr 30, 2008 9:06 pm
- Location: Burgundy
- Contact:
Re: Validation des inscriptions
Ouly et Mejan,
J'ai trouvé ce que je cherchais et c'est très efficace. A quand une intégration directe de cette option dans le natif ? En tout cas, merci pur vos reponses.
- a quand l'envoi du mail a l'admin pour l'avertir d'une validation en instance ?
- a quand un envoi de mail automatique au membre lors de la validation de son enregistrement ?
Je pinaille ?
Encore merci,
Tiko
J'ai trouvé ce que je cherchais et c'est très efficace. A quand une intégration directe de cette option dans le natif ? En tout cas, merci pur vos reponses.
Pour être vraiment parfait, il manquerait peut-être 2 choses :Bon ben j'ai du modifier 2 fonctions dans le fichier afin de modérer les inscriptions.
Paramètre:
Configuration générale->Activation du compte du nouvel utilisateur->non
Fichier:
component/com_user/controller.php
commenter les 2 fonctions:
- function register_save()
- function _sendMailModeration(&$user, $password)
et les remplacer par celles-ci:
Ajouter dans le fichier:Code: Select all
function register_save() { global $mainframe; // Check for request forgeries JRequest::checkToken() or die( 'Invalid Token' ); // Get required system objects $user = clone(JFactory::getUser()); $pathway =& $mainframe->getPathway(); $config =& JFactory::getConfig(); $authorize =& JFactory::getACL(); $document =& JFactory::getDocument(); // If user registration is not allowed, show 403 not authorized. $usersConfig = &JComponentHelper::getParams( 'com_users' ); if ($usersConfig->get('allowUserRegistration') == '0') { JError::raiseError( 403, JText::_( 'Access Forbidden' )); return; } // Initialize new usertype setting $newUsertype = $usersConfig->get( 'new_usertype' ); if (!$newUsertype) { $newUsertype = 'Registered'; } // Bind the post array to the user object if (!$user->bind( JRequest::get('post'), 'usertype' )) { JError::raiseError( 500, $user->getError()); } // Set some initial user values $user->set('id', 0); $user->set('usertype', ''); $user->set('gid', $authorize->get_group_id( '', $newUsertype, 'ARO' )); // TODO: Should this be JDate? $user->set('registerDate', date('Y-m-d H:i:s')); // If user activation is turned on, we need to set the activation information $useractivation = $usersConfig->get( 'useractivation' ); //michael: useractivation->Si oui, l'utilisateur recevra par email un lien sur lequel il devra cliquer pour activer son compte avant de pouvoir se connecter. if ($useractivation == '1') { jimport('joomla.user.helper'); $user->set('activation', md5( JUserHelper::genRandomPassword()) ); $user->set('block', '1'); } //michael: ajout d'une modération d'inscription par l'admin du site: // - verouillage du nouveau compte // - l'admin reçoit un email de demande de validation du compte créé // - le nouveau membre reçoit un email de confirmation de demande d'inscription. Cet email ne contient pas le lien d'activation du compte else { $user->set('block', '1'); $password = JRequest::getString('password', '', 'post', JREQUEST_ALLOWRAW); $password = preg_replace('/[\x00-\x1F\x7F]/', '', $password); //Disallow control chars in the email UserController::_sendMailModeration($user, $password); } // If there was an error with registration, set the message and display form if ( !$user->save() ) { JError::raiseWarning('', JText::_( $user->getError())); $this->register(); return false; } //michael /* // Send registration confirmation mail $password = JRequest::getString('password', '', 'post', JREQUEST_ALLOWRAW); $password = preg_replace('/[\x00-\x1F\x7F]/', '', $password); //Disallow control chars in the email UserController::_sendMail($user, $password); */ // Everything went fine, set relevant message depending upon user activation state and display message if ( $useractivation == 1 ) { $message = JText::_( 'REG_COMPLETE_ACTIVATE' ); } else { //$message = JText::_( 'REG_COMPLETE' ); $message = JText::_( 'MSG_MODERATION' ); } //TODO :: this needs to be replace by raiseMessage JError::raiseNotice('', $message); $this->register(); } //michael: fonction de modération des inscriptions function _sendMailModeration(&$user, $password) { global $mainframe, $mes_moderation; $db =& JFactory::getDBO(); $name = $user->get('name'); $email = $user->get('email'); $username = $user->get('username'); $usersConfig = &JComponentHelper::getParams( 'com_users' ); $sitename = $mainframe->getCfg( 'sitename' ); $useractivation = $usersConfig->get( 'useractivation' ); $mailfrom = $mainframe->getCfg( 'mailfrom' ); $fromname = $mainframe->getCfg( 'fromname' ); $siteURL = JURI::base(); $subject = sprintf ( JText::_( 'Account details for' ), $name, $sitename); $subject = html_entity_decode($subject, ENT_QUOTES); if ( $useractivation == 1 ) { $message = sprintf ( JText::_( 'SEND_MSG_ACTIVATE' ), $name, $sitename, $siteURL."index.php?option=com_user&task=activate&activation=".$user->get('activation'), $siteURL, $username, $password); } else { $message = sprintf ( JText::_( 'SEND_MSG_MODERATION' ), $name, $sitename, $siteURL); } $message = html_entity_decode($message, ENT_QUOTES); //get all super administrator $query = 'SELECT name, email, sendEmail' . ' FROM #__users' . ' WHERE LOWER( usertype ) = "super administrator"'; $db->setQuery( $query ); $rows = $db->loadObjectList(); // Send email to user if ( ! $mailfrom || ! $fromname ) { $fromname = $rows[0]->name; $mailfrom = $rows[0]->email; } JUtility::sendMail($mailfrom, $fromname, $email, $subject, $message); // Send notification to all administrators $subject2 = sprintf ( JText::_( 'Account details for' ), $name, $sitename); $subject2 = html_entity_decode($subject2, ENT_QUOTES); // get superadministrators id foreach ( $rows as $row ) { if ($row->sendEmail) { $message2 = sprintf ( JText::_( 'SEND_MSG_ADMIN' ), $row->name, $sitename, $name, $email, $username); $message2 = html_entity_decode($message2, ENT_QUOTES); JUtility::sendMail($mailfrom, $fromname, $row->email, $subject2, $message2); } } }
language/fr-FR/fr-FR.com_user.ini
J'espère être clair.Code: Select all
SEND_MSG_MODERATION=Bonjour %s,\n\nMerci de votre inscription à %s.\n\nVotre inscription doit être validée par notre administrateur.\nVous serez prévenu par email lorsque votre compte sera activé et vous pourrez vous pourrez vous connecter à %s avec l'identifiant et le mot de passe que vous avez choisis lors de votre enregistrement.\n\nA bientôt. MSG_MODERATION=Merci de votre inscription.<br>Votre inscription doit être validée par notre administrateur.<br>Vous serez prévenu par email lorsque votre compte sera activé.
Michaël
- a quand l'envoi du mail a l'admin pour l'avertir d'une validation en instance ?
- a quand un envoi de mail automatique au membre lors de la validation de son enregistrement ?
Je pinaille ?
Encore merci,
Tiko
-
- Joomla! Fledgling
- Posts: 3
- Joined: Thu Sep 18, 2008 8:01 am
Re: [réglé] Validation des inscriptions
Bonjour Tiko et les autres,
Chouette proposition, mais on en est à la version 1.5.7 de Joomla et il y a l'air de ne rien y avoir de neuf en natif...
Avez-vous fait des modifications pour que l'admin soit prévenu de l'inscription etc ?
Merci.
Barbara
Chouette proposition, mais on en est à la version 1.5.7 de Joomla et il y a l'air de ne rien y avoir de neuf en natif...
Avez-vous fait des modifications pour que l'admin soit prévenu de l'inscription etc ?
Merci.
Barbara
-
- Joomla! Fledgling
- Posts: 3
- Joined: Thu Sep 18, 2008 8:01 am
Re: [réglé] Validation des inscriptions
Bonjour,
Comme j'utilise principalement le forum forum.joomla.fr mais que je suis tombée sur le même sujet sur ce forum-ci, voici le lien vers la discussion quasi-identique sur l'autre forum, avec la solution aux deux dernières demandes concernant la modération des inscriptions.
Je m'excuse platement auprès des modérateurs du cross-posting mais c'est pour ne pas tout répéter. C'est un peu bête qu'on ait deux forums, dans le fond ^^.
http://forum.joomla.fr/showpost.php?p=3 ... stcount=18
Bon hack et bonne journée,
Barbara
Comme j'utilise principalement le forum forum.joomla.fr mais que je suis tombée sur le même sujet sur ce forum-ci, voici le lien vers la discussion quasi-identique sur l'autre forum, avec la solution aux deux dernières demandes concernant la modération des inscriptions.
Je m'excuse platement auprès des modérateurs du cross-posting mais c'est pour ne pas tout répéter. C'est un peu bête qu'on ait deux forums, dans le fond ^^.
http://forum.joomla.fr/showpost.php?p=3 ... stcount=18
Bon hack et bonne journée,
Barbara
- mejean
- Joomla! Hero
- Posts: 2714
- Joined: Thu Aug 18, 2005 12:28 pm
- Location: viewforum.php?f=19
- Contact:
Re: [réglé] Validation des inscriptions
Ouly,
Tout cela est-il toujours possible avec un plugin ?
Tout cela est-il toujours possible avec un plugin ?
Jérôme Bussière - simple utilisateur
www.cardabelle.net
www.cardabelle.net
-
- Joomla! Apprentice
- Posts: 11
- Joined: Fri May 02, 2008 5:16 pm
Re: [réglé] Validation des inscriptions
Moins élégant mais plus rapide (pas besoin de chipoter dans les fonctions) que les solutions précitées: simplement désactiver le lien de confirmation dans l'email envoyé à l'utilisateur. Faudra changer qqs lignes dans les fichiers de langues.
Dans le fichier language/fr-FR/fr/FR.com_user.ini repérez SEND_MSG_ACTIVATE (aux alentours de la ligne 118). Là, virez les %s du texte. L'utilisateur ne pourra pas se connecter car il n'aura pas activé son compte.
Ca donne un truc du style (remplacer XXXX par vos données):
J'oubliais REG_COMPLETE_ACTIVATE aux alentours de la ligne 90
Finalement dans le fichier fr-FR.ini, repérez E_NOLOGIN_BLOCKED (+/- ligne 175) et modifiez-le (si l'utilisateur tente de se connecter sans avoir été activé):
Voilà, pas top mais efficace et rapide (ça règle déjà l'envoi du mail a l'admin pour l'avertir d'une validation en instance). Faudra toujours envoyer un email signalant à l'utilisateur que son compte a été activé. En espérant que la version 1.5.8 nous intègre tout ça joliment...
Dans le fichier language/fr-FR/fr/FR.com_user.ini repérez SEND_MSG_ACTIVATE (aux alentours de la ligne 118). Là, virez les %s du texte. L'utilisateur ne pourra pas se connecter car il n'aura pas activé son compte.
Ca donne un truc du style (remplacer XXXX par vos données):
Code: Select all
SEND_MSG_ACTIVATE=Bonjour.\n\n Merci de vous être inscrit chez XXXX.\n\n Nous activerons votre compte au plus tôt et vous informerons par email, vous pourrez vous connecter à l'espace membre en utilisant le nom d'utilisateur et le mot de passe que vous avez choisis.\n\nBien à vous, XXXX.
SEND_MSG_ADMIN=Bonjour %s. Un nouvel utilisateur s'est inscrit sur le site %s.\n Cet e-mail contient ses coordonnées : \n Nom : %s \n E-mail : %s \n Nom d'utilisateur : %s \n\n N'oubliez pas d'activer l'utilisateur dans le backend.
Code: Select all
REG_COMPLETE_ACTIVATE=Votre compte a été créé et une confirmation a été envoyée à l'adresse e-mail que vous avez saisie. Notez que vous devez <strong>attendre que votre compte soit confirmé</strong> avant de vous connecter.
Code: Select all
E_NOLOGIN_BLOCKED=<strong>Connexion refusée!</strong> Votre compte a été bloqué ou alors il n'a pas encore été activé.
- ouly
- Joomla! Ace
- Posts: 1074
- Joined: Sun Aug 21, 2005 9:18 pm
- Contact:
Re: [réglé] Validation des inscriptions
Peut-être il faudrait se plonger dans le code de la série 1.5.x pour déterminer si c'est effectivement possible...mejean wrote:Ouly,
Tout cela est-il toujours possible avec un plugin ?
-
- Joomla! Apprentice
- Posts: 15
- Joined: Wed Nov 30, 2005 5:25 pm
Re: [réglé] Validation des inscriptions
Bonjour à tous,
je déterre ce post pour savoir si il y a eu du nouveau.
je déterre ce post pour savoir si il y a eu du nouveau.
- mejean
- Joomla! Hero
- Posts: 2714
- Joined: Thu Aug 18, 2005 12:28 pm
- Location: viewforum.php?f=19
- Contact:
Re: [réglé] Validation ou approbation des inscriptions
Et bien voilà, en effet, du nouveau : http://www.joomlaxi.com/downloads.html? ... einfo&id=8
Attention : cette extension ne figure par (encore ?) au JED !
Attention : cette extension ne figure par (encore ?) au JED !
Jérôme Bussière - simple utilisateur
www.cardabelle.net
www.cardabelle.net
-
- Joomla! Apprentice
- Posts: 11
- Joined: Thu Oct 13, 2011 8:18 am
Re: [réglé] Validation ou approbation des inscriptions
Bonjour, j'excave à nouveau le sujet : je n'ai pas réussi à trouver d'info qui datent de moins de... 3 ans. Joomla 2.5 intègre-t-il plusieurs politiques d'inscription ?
A mon sens, le lien d'activation est essentiel pour déterminer si le mail de l'utilisateur est correct ou non. Dans le cadre d'une activation contrôlée, l'idéal serait que le lien de l'utilisateur ne soit pas un lien d'activation mais un lien lançant un module qui enverrai un mail à l'administrateur ; c'est ce mail qui contiendrait le lien d'activation.
Ainsi l'administrateur n'aurait pas à se loguer à chaque fois sur l'espace admin pour valider les inscriptions.
A mon sens, le lien d'activation est essentiel pour déterminer si le mail de l'utilisateur est correct ou non. Dans le cadre d'une activation contrôlée, l'idéal serait que le lien de l'utilisateur ne soit pas un lien d'activation mais un lien lançant un module qui enverrai un mail à l'administrateur ; c'est ce mail qui contiendrait le lien d'activation.
Ainsi l'administrateur n'aurait pas à se loguer à chaque fois sur l'espace admin pour valider les inscriptions.
- sebiseb
- Joomla! Guru
- Posts: 706
- Joined: Fri Aug 19, 2005 1:04 pm
- Location: IdF - Centre
- Contact:
Re: [réglé] Validation ou approbation des inscriptions
C'est désormais possible avec la version 2.5
Joomla 3.9.15 - template basé sur Protostar 1.0
outils d'administration : Akeeba Backup Core 7.0.2 - Admin Tools Core 5.5.0
extensions : JCE Editor Pro 2.8.9 - Creative Contact Form 4.6.2 - kunena « Oberon » 5.1.15
outils d'administration : Akeeba Backup Core 7.0.2 - Admin Tools Core 5.5.0
extensions : JCE Editor Pro 2.8.9 - Creative Contact Form 4.6.2 - kunena « Oberon » 5.1.15
-
- Joomla! Apprentice
- Posts: 11
- Joined: Thu Oct 13, 2011 8:18 am
Re: [réglé] Validation ou approbation des inscriptions
Excellente nouvelle, merci !
Comment faut-il procéder ? Je ne l'ai pas trouvé dans la configuration. S'agit-il d'un composant / module / plugin natif ?
Comment faut-il procéder ? Je ne l'ai pas trouvé dans la configuration. S'agit-il d'un composant / module / plugin natif ?
- sebiseb
- Joomla! Guru
- Posts: 706
- Joined: Fri Aug 19, 2005 1:04 pm
- Location: IdF - Centre
- Contact:
Re: [réglé] Validation ou approbation des inscriptions
Dans l'administration ; Utilisateurs -> Gestion des utilisateurs -> icône : paramètres -> la boîte de dialogue s'ouvre sur composant ; les utilisateurs doivent pouvoir s'enregistrer eux-même, mais une approbation doit être faite par l'administrateur.
Joomla 3.9.15 - template basé sur Protostar 1.0
outils d'administration : Akeeba Backup Core 7.0.2 - Admin Tools Core 5.5.0
extensions : JCE Editor Pro 2.8.9 - Creative Contact Form 4.6.2 - kunena « Oberon » 5.1.15
outils d'administration : Akeeba Backup Core 7.0.2 - Admin Tools Core 5.5.0
extensions : JCE Editor Pro 2.8.9 - Creative Contact Form 4.6.2 - kunena « Oberon » 5.1.15
-
- Joomla! Apprentice
- Posts: 11
- Joined: Thu Oct 13, 2011 8:18 am
Re: [réglé] Validation ou approbation des inscriptions
Impeccable, merci beaucoup Sebiseb !
Je vais pouvoir éviter d'installer Community Builder.
J'ai découvert hier qu'on pouvait créer, de façon native, des champs personnalisables lors de l'inscription. Pour ceux que ça intéresserait :
http://docs.joomla.org/Creating_a_profile_plugin
http://forum.joomla.org/viewtopic.php?t=582603
Je vais pouvoir éviter d'installer Community Builder.
J'ai découvert hier qu'on pouvait créer, de façon native, des champs personnalisables lors de l'inscription. Pour ceux que ça intéresserait :
http://docs.joomla.org/Creating_a_profile_plugin
http://forum.joomla.org/viewtopic.php?t=582603