# Fonctionnalités d'inscription et de récupération de compte Ce document décrit le fonctionnement et la mise en place des fonctionnalités d'inscription et de récupération de mots de passe. ## Fonctionnement Nos applications peuvent désormais être ouvertes au public. Il existe deux fonctionnements pour l'inscription : - **classique** : l'utilisateur s'inscrit et confirme lui-même son adresse mail. - **contrôlé** : l'utilisateur s'inscrit et attend qu'un administrateur valide sa demande. ### Fonctionnement classique ![classique-sequence] ### Fonctionnement contrôlé ![controle-sequence] ### Récupération de compte ![fpwd-confirm] ## Mise en place L'activation de ces fonctions se fait via les **properties** de l'application. ### Paramétrage dans properties.inc Vous pouvez passer par l'interface et paramétrer cette partie via le formulaire (section **Configuration**) ![config-form] Vous pouvez également intervenir sur le serveur en ajoutant/modifiant ces deux lignes dans le fichier **properties.inc** qui se trouve dans **VAS/rest/conf** ```php $properties["sign_up"] = "enabled"; $properties["password_forgotten"] = "enabled"; ``` ### Paramétrage dans properties_server.inc Pour paramétrer cette partie, vous serez obligé d'intervenir directement sur le serveur, en modifiant le fichier **properties_server.inc** qui se trouve dans **VAS/rest/conf** Il vous faut maintenant configurer le compte qui créera les comptes dans votre base postgresSQL (assurez-vous que ce compte puisse créer des rôles de connexion) : ```php $properties['db_superuser_login'] = 'XXXX'; $properties['db_superuser_pass'] = 'XXXX'; ``` Il vous faudra également configurer une connexion SMTP pour envoyer les mails (**ATTENTION** : ces properties existent aussi dans GTF ; pensez à les commenter pour que GTF utilise les properties de Vitis) : ```php $properties['mail_sender'] = 'XXXX@gmail.com'; $properties['nickname_sender'] = 'Veremes'; $properties['smtp_host'] = 'smtp.gmail.com'; $properties['smtp_port'] = 587; $properties['smtp_authentification'] = true; $properties['smtp_login'] = 'XXXX@gmail.com'; $properties['smtp_password'] = 'XXXX'; ``` Il vous faut aussi définir le fonctionnement (classique ou contrôlé) : ```php $properties['automated_sign_up'] = true; // true pour 'classique' false pour 'controlé' ``` Pour finir, vérifiez que vous avez bien ces properties : ```php //adresse mail de l'admin pour le fonctionnement controlé $properties["admin_sign_up"] = "anthony.borghi@veremes.com"; //clé du captcha google $properties["google_private_captcha"] = "6LdWLR8UAAAAAPE5wdl7hHJsmFxxrcmR5fZhApG2"; //liste des privilèges à donner aux nouveaux inscrits (vitis_user est donné par défaut) $properties['sign_up_automated_roles'] = array('vmap_user', 'gtf_user'); ``` ### Modification de l'interface Une fois la configuration terminée, l'interface de connexion de votre application doit afficher deux nouveaux boutons : ![login-form] ## Personnalisation du template de mail **Personnaliser vos mails nécessite une certaine connaissance des langages HTML, Javascript, et PHP. Dans le cas où vous ne connaîtriez pas ces langages de programmation, nous pouvons le faire durant une prestation, qui vous sera facturée.** **Lors de la mise à jour de votre application, ce fichier sera écrasé par la nouvelle version de notre template. Nous vous conseillons donc de garder une sauvegarde de votre travail en dehors de l'application.** Par défaut, l'application utilise ce template de mail : ![mail-confirm] Pour personnaliser vos mails, il faut retoucher le fichier **Accounts.class.mail.inc**. Dans ce fichier, vous trouverez un tableau contenant plusieurs clés : - **newUserTitle** : Objet et titre du mail en mode 'contrôlé'. - **newUserTitleAutomated** : Objet et titre du mail en mode 'classique'. - **newUserBody** : Corps du mail d'inscription. Ce texte contiendra certaines données qui remplaceront les clés suivantes : - **TITLE** : Titre précédemment défini. - **HOSTNAME** : Nom du serveur récupéré depuis les properties. - **LOGIN** : Login de l'utilisateur ayant fait la demande. - **MAIL** : Adresse mail de l'utilisateur ayant fait la demande. - **COMPANY** : Entreprise de l'utilisateur ayant fait la demande. - **URL** : URL vers l'API rest pour permettre l'inscription (nécessaire au fonctionnement de la fonctionnalité). - **confirmationSignUpTitle** : Objet du mail de confirmation d'inscription. - **genericBody** : Mise en forme du corps. Il doit comporter une balise : - **MESSAGE** : Sera remplacé par le corps du mail souhaité (nécessaire au fonctionnement de la fonctionnalité). - **SignUpOk** : Corps du mail de confirmation d'inscription, si l'inscription a réussi (Mode contrôlé, reçu par l'admin). - **SignUpError** : Corps du mail de confirmation d'inscription, si l'inscription a échoué (Mode contrôlé, reçu par l'admin). - **signUpConfirmation** : Corps du mail de confirmation d'inscription, si l'inscription a réussi (Mode contrôlé, reçu par l'utilisateur). - **fpwdTitle** : Objet et titre du mail de récupération de compte. - **fpwdUpdateOk** : Affiché si le mot de passe a pu être mis à jour. - **fpwdUpdateError** : Affiché si le mot de passe n'a pas pu être mis à jour. - **alreadyUpdate** : Affiché si l'utilisateur réutilise le même mail pour changer une deuxième fois son mot de passe. - **fpwdBody** : Corps du mail envoyé à l'utilisateur pour changer son mot de passe. Ce texte contiendra certaines données qui remplaceront les clés suivantes : - **HOSTNAME** : Nom du serveur récupéré depuis les properties. - **LOGIN** : Login de l'utilisateur ayant fait la demande. - **URL** : URL vers l'API pour accéder au formulaire de récupération de mot de passe (nécessaire au fonctionnement de la fonctionnalité). - **fpwdForm** : Contient le formulaire permettant le changement de mot de passe. Ce texte contiendra certaines données qui remplaceront les clés suivantes : - **URL** : URL vers l'API pour finaliser la récupération de mot de passe (nécessaire au fonctionnement de la fonctionnalité). - **TOKEN** : Remplacé par le token (token de la session contenant les informations de la demande de récupération de compte) dans le formulaire pour pouvoir l'envoyer au serveur lors de la validation du formulaire (nécessaire au fonctionnement de la fonctionnalité). - **passwordScript** : Javascript utilisé pour la récupération de compte (vérification de concordance entre les deux mots de passe). - **mainBody** : Corps principal du mail, sur l'image ci-dessus c'est le fond, ainsi que le logo Veremes en haut, et tout ce qui est sous le bandeau multicolore en bas. Ce template doit contenir certaines clés : - **CONTENT** : Remplacé par genericBody (nécessaire au fonctionnement de la fonctionnalité) - **SCRIPT** : Remplacé par le JavaScript (nécessaire au fonctionnement de la fonctionnalité) [classique-sequence]: ./images/_inscription_classique.jpg [controle-sequence]: ./images/_inscription.jpg [fpwd-confirm]: ./images/_forgotten_password.jpg [config-form]: ./images/config-form.JPG [login-form]: ./images/login.JPG [mail-confirm]: ./images/mail-confirm.JPG