Profils

Ce plugin permet de configurer un ou plusieurs profils utilisateurs en déclarant quelles informations ils peuvent contenir (quels champs, une fiche de personne ou d’organisation, des coordonnées, etc).

C’est quoi un profil ?

Un profil est une liste d’informations possibles qui pourront être jointes à un compte utilisateur.

Ce plugin permet de configurer plusieurs profils dans le même site, avec des informations différentes (par ex un profil « association », un profil « entreprise »…). Mais un compte utilisateur aura toujours un seul profil assigné.

Les informations liées à un profil peuvent provenir de différentes sources cumulées :

  • directement des champs de la table des utilisateurs (spip_auteurs)
  • de champs extras ajoutés à cette table
  • des coordonnées liées au compte utilisateur
  • des champs d’un Contact ou d’une Organisation, voire des deux à la fois reliés (une organisation et une personne physique liée à cette organisation)
  • de champs extras ajoutés à ces tables
  • des coordonnées liées à une organisation
  • des coordonnées liées à un contact
  • et tout ça mélangé à la fois !

Le plugin n’ajoute aucun champ lui-même, mais il s’occupera toujours d’enregistrer les bonnes informations aux bons endroits, reliées comme il faut, selon ce que vous avez configuré.

À ce titre, ce plugin peut être vu comme une continuation du plugin Inscription2/3, mais en plus générique.

N.B. : Si vous utilisiez ce plugin, qui ajoutait des champs directement dans spip_auteurs, à partir du moment où vous gardez ces champs intacts en les faisant gérer par Champs Extras à la place, alors vous pourrez le remplacer par Profils d’un coup sans rien perdre.

Configurer un profil

L’édition d’un profil diffère selon les plugins que vous avez installés. Pour cela il faut se rendre dans le menu Configuration => Profils.

Seul un email est obligatoire

Parmi les innombrables possibilités qui vous sont présentées, sachez qu’absolument aucun champ n’est obligatoire dans un profil sauf avoir un email.

Cet email peut être n’importe où : celui de spip_auteurs, ou un champ nommé « email » que vous auriez rajouté avec Champs Extras sur les Contacts ou les Organisations, ou n’importe quelle coordonnées de type Courriel.

Si jamais plusieurs champs sont configurés, le plugin prendra pour email principal, c’est-à-dire celui qui sera aussi copié dans le compte utilisateur et utilisable comme identifiant de connexion, l’email le plus « proche » du compte utilisateur :

  • son champ email directement
  • sinon la première coordonnée Courriel lié à l’utilisateur
  • sinon un champ « email » de l’organisation
  • sinon la première coordonnée Courriel lié à l’organisation
  • sinon un champ « email » du contact
  • sinon la première coordonnée Courriel lié au contact

Nom de l’utilisateur

Sur le même principe, le nom de l’utilisateur sera pris au plus proche : le nom/pseudo de la table utilisateur, ou le nom de l’organisation, ou le prénom et/ou nom du contact.

Et si aucun nom n’est trouvé (c’est facultatif), le nom d’utilisateur sera la partie identifiante de son email (qui lui est obligatoire), ce qui se trouve avant l’arobase.

Cela permet donc aussi d’avoir un formulaire d’inscription demandant seulement un email !

Quoi configurer

Pour chacun des champs, vous pourrez choisir :

  • Inscription : le champ sera demandé lors du formulaire d’inscription (oui celui fourni par SPIP, donc vous n’avez rien à toucher aux squelettes)
  • Édition : le champ sera demandé dans le formulaire de profil complet #FORMULAIRE_PROFIL fourni par le plugin, et utilisable par les admins dans l’interface de SPIP
  • Obligatoire : le champ est obligatoire…

Compte utilisateur

Dans tous les cas, le plugin permet de définir les champs de l’utilisateur (table spip_auteurs), et ses Champs Extras s’ils existent.

Coordonnées

Si vous avez le plugin idoine, une case à cocher apparaitra permettant de dérouler un nouveau tableau pour les coordonnées.

Il est possible d’ajouter plusieurs coordonnées (une nouvelle ligne apparait quand on en valide une), mais par contre, une seule coordonnées d’un même type (un seul numéro « portable », un seul numéro « professionnel », etc).

Pour les coordonnées, il est en plus possible de surcharger le label afin d’avoir quelque chose de moins lourd que ce qui est généré par défaut.

Le tableau sera le même pour les coordonnées d’une organisation ou d’un contact.

Organisation

Si vous avez le plugin C&O, vous pouvez lier une organisation (une personne morale) au compte utilisateur, et choisir un ou plusieurs champs.

Contact

Si vous avez le plugin C&O, vous pouvez lier un contact (une personne physique) au compte utilisateur, et choisir un ou plusieurs champs.

Le plugin l’explique dans l’interface, mais vous avez la possibilité de lier un contact et une organisation. Dans ce cas, ce sera toujours l’organisation qui sera lié au compte utilisateur directement. Le contact lui, sera lié à l’organisation.

Annuaire

Si jamais vous avez activé la gestion des annuaires dans C&O, alors le plugin Profils en tiendra compte aussi ! Vous pouvez donc choisir l’annuaire dans lequel seront rangés l’organisation et le contact. À défaut, dans tous les cas, Profils créera l’annuaire à la volée du même nom et même identifiant que le profil en cours de configuration.

Gestion des comptes

Une fois sur la page d’un profil configuré, vous avez alors un faux formulaire non-fonctionnel, qui vous donne une vue d’ensemble des champs que vous avez choisi pour l’édition.

Dessous se trouvera la liste de tous les comptes utilisateurs attachés à ce profil, et un lien d’ajout. Vous pouvez alors créer de nouveau compte ou modifier des comptes existants, grâce au formulaire tout-en-un généré dynamiquement, qui enregistrera toutes les informations dans les bons contenus.

Les comptes utilisateurs créés par ce moyen par les admins seront des comptes « visiteurs » et auront ce profil attaché en tant que profil principal (un champ id_profil est ajouté dans spip_auteurs).

Dans de nombreux cas, cette interface peut alors remplacer complètement les pages d’admin des visiteurs + celles de Contacts & Organisations. Tout est accessible et éditable sur une même page.

Édition en masse avec CSV

Le plugin fournit des formulaires pour exporter et importer tous les profils et toutes les informations liées en CSV.

Importation

Un formulaire permet l’importation en masse de multiples comptes utilisateurs avec toutes leurs informations liées, quelque soit leur complexité. Pour cela, les colonnes doivent avoir des noms précis suivant un formalisme qui permet au plugin de savoir où enregistrer les données (tel champ est pour auteur, tel autre pour organisation, etc).

Afin de connaitre les colonnes attendues pour tel profil précis, il vous suffit d’exporter les colonnes avec l’autre formulaire.

Grâce au champ d’email principal qui est censé être obligatoire, le plugin reconnait si un compte utilisateur existe déjà, et lance alors une modification de l’existant. Vous pouvez donc utiliser l’importation en masse pour modifier des centaines de comptes existants d’un coup !

Attention au fonctionnement : pour chaque ligne à importer, le plugin crée une tâche (avec le gestionnaire de tâches de SPIP). Elles seront donc exécutées au fil de l’eau, vous pouvez les voir dans l’interface Maintenance => Liste des travaux.

Exportation

L’export fournit l’ensemble des données configurées pour ce profil, avec des noms de colonnes précis, qui vont permettre de ré-importer dans l’autre sens si vous le désirez.

Une case permet aussi de n’exporter que les colonnes. Cela vous permet de remplir des données en masse pour les importer ensuite, sans forcément vouloir éditer l’existant.

Mot de passe dès l’inscription

Si vous voulez que vos visiteurs puissent choisir leur mot de passe dès l’inscription (c’est plus sécurisé que d’envoyer un mot de passe en clair par email), vous pouvez utiliser le plugin dédié Mot de passe dès l’inscription. Il fonctionnera avec le plugin Profils sans conflit.

Connexion dès l’inscription

Si vous voulez que les gens soient directement connectés au terme du formulaire d’inscription, là aussi utilisez le plugin dédié Connexion dès l’inscription.

Utilisation dans les squelettes

Inscription

Comme écrit plus haut, ce plugin étend directement le formulaire d’inscription fourni par SPIP, qui s’insère avec #FORMULAIRE_INSCRIPTION. Vous n’avez donc rien à faire si vos squelettes l’utilise déjà.

Édition du profil

Afin que vos utilisateurs puissent modifier leur profil complet, le plugin fournit un nouveau formulaire #FORMULAIRE_PROFIL à utiliser dans votre site public. Il s’agit du même formulaire utilisé par les admins dans l’interface de SPIP.

Pour qu’il soit utilisé en mode édition, vous devez au moins fournir l’id_auteur. Si ce compte a déjà un profil lié, c’est le formulaire de ce profil qui sera généré. Sinon il prendra le premier profil trouvé (il est prévu d’ajouter une config pour définir quel est le profil par défaut du site).

#FORMULAIRE_PROFIL{#ID_AUTEUR}

Par ailleurs, il est possible de demander explicitement un profil précis. De cette manière, vous avez même la possibilité d’éditer un même compte utilisateur avec plusieurs profils différents, avec donc des champs différents !

#FORMULAIRE_PROFIL{#ID_AUTEUR, association}

Un troisième paramètre permet de définir la page où rediriger après traitement. Sinon cela restera sur la même page.

#FORMULAIRE_PROFIL{#ID_AUTEUR, '', #URL_PAGE{truc}}

Discussion

10 discussions

  • 1

    bonjour

    Attention :

    Profils 2.0.0 n’est pas compatible SPIP 4.0 si le plugin Coordonnées est installé : la version utile, 4.2.1 n’est compatible qu’à partir de SPIP 4.1

    ... je viens d’en faire l’amère expérience ... et s’il existe un moyen de rétropédaler, je prends !
    (j’ai la version 1.8.8 sous le coude mais qui, depuis, reste obstinément obsolète, même en compat forcée 3.2 )

    Répondre à ce message

  • 4

    Encore un grand bravo sur ce plug que j’utilise tous les jours ... Magique et drôlement pratique !
    Dans le cadre d’un élargissement de l’utilisation, j’ai besoin d’un profil qui utilise plus largement contacts et organisations et donc sur un profil j’aurai besoin de voir l’organisation à laquelle est rattaché le contact courant visualisé dans le profil.
    Il semble que cela a été prévu, mais il y a un os une fonction ne semble pas opérationnelle (j’ai quand même essayé trois fois avant de mettre un mot ici).

    Base : un contact lié à une organisation, + l’auteur qui y est lié au contact, sur le profil j’ai besoin de l’organisation liée au contact soit visible, cela semble ok mais le lien vers l’organisation (et donc l’affichage de son nom par exemple) ne se fait pas et c’est du genre :
    https://xxxxxxxxxxxxxx.org/ecrire/?exec=organisation&id_organisation=0 alors que par exemple l’organisation est la 5 !

    C’est grave docteur ? Et pouvez-vous vous pencher sur mon cas ?

    Merci d’avance !
    Marc

    • Je complète avec un petit visuel de l’écran en question

    • J’ai un doute sur l’envoi de l’image désolé si doublon ...

    • C’est marqué quand tu configures un profil, ou là dans la doc. Quand il y a organisation ET contact, c’est toujours l’organisation le truc principal. Donc là c’est normal, ya aucune organisation lié au compte utilisateur, donc ça marche pas.

    • Merci pour la réponse, en effet j’avais lu :

      Le plugin l’explique dans l’interface, mais vous avez la possibilité de lier un contact et une organisation. Dans ce cas, ce sera toujours l’organisation qui sera lié au compte utilisateur directement. Le contact lui, sera lié à l’organisation.

      Mais je n’avais pas tout bien compris et j’ai été surpris de constater que ni l’un ni l’autre ne fonctionnait en appelant une référence 0 ...

      Merci je vais repenser certains aspects du profil en dév. Merci bcp !
      Marc

    Répondre à ce message

  • 1

    J’ai le besoin de changer le profil de mes auteurs après création (par exemple via la section « Auteur » de SPIP). J’ai donc tenté de rajouter un champ extra ’id_profil’ mais SPIP refuse car le champ est déjà géré. Quel serait le meilleur moyen d’arriver à mes fins ? Je suis au courant bien sûr que les champs qui ne correspondent pas au nouveau profil ne seront pas vidés.

    • La version 1.6.16 (ou dernière SVN) permet d’afficher le profil principal de chaque utilisateur quand il y en a un, et de l’éditer ! C’est conditionné par une autoriser « modifierprofil » qui n’existe pas, donc par défaut ce ne sont que les admins normalement qui peuvent.

    Répondre à ce message

  • 2

    J’ai voulu faire des tests avec #FORMULAIRE_INSCRIPTION et #FORMULAIRE_PROFIL en modifiant le squelette sommaire standard.

    #FORMULAIRE_INSCRIPTION fonctionne : tant que je ne suis pas connecté il apparait.

    Par contre, je n’arrive pas faire apparaitre #FORMULAIRE_PROFIL, j’ai essayé #FORMULAIRE_PROFIL{2} et #FORMULAIRE_PROFIL{#SESSION{id_auteur}} qu’est ce que j’ai loupé ?

    Merci d’avance
    Antoine

    • Bé je ne sais pas, t’as bien configuré au moins un profil, et t’es connecté avec un utilisateur quand tu visionnes la page ?

    • Merci, il faut au moins un profil configuré..............

    Répondre à ce message

  • 2

    Houston on a un autre problème !
    J’ai bien eu le « Coordonnées » j’ai essayé de tout réinstaller, mais cela me dit toujours ça :

    • Bé là c’est le plugin Profils qui n’est pas bien installé chez toi, t’as vraiment tout supprimé d’abord ? La table n’est pas installée, ça risque pas de marcher.

    • Vous avez raison, je mérite des baffes !
      En fait je raconte pour si cela arrive à d’autres ....
      1re installation, ça a l’air installé mais comme il manquait d’autres plugins en fait la procédure n’était pas bonne ....
      J’ai installé les plugins qui manquaient (grâce au chef) mais j’ai oublié de réfléchir et de me souvenir qu’en fait Profils n’était pas installé....
      J’ai tout DÉSINSTALLÉ et EFFACÉ et tout refait depuis le début et ça marche !
      Maintenant, il faut que je me serve de ce qu’il me reste de cerveau pour adapter les choses à mes besoins et inversement ...
      Merci RASTA !

    Répondre à ce message

  • 2

    Alloooooo HOUSTON nous avons un problème !

    Les versions de Contacts et Coordonnées ne sont pas en circulation directe, comment faire car sinon pas d’installation possible ...

    Merci d’avance, pour Contacts j’ai réussi à la trouver, mais Coordonnées rien du tout !

    A plouche !

    • Je viens d’ajouter la branche de dev de Coordonnées aux paquets, ça arrivera dans les heures prochaines. :)

    • Merci, je vais donc pouvoir tester cette petite merveille qui devrait m’aider à résoudre plusieurs problèmes en même temps !!
      J’attends sagement !

       ;-)

    Répondre à ce message

  • 9

    Beau boulot ce plugin !

    Question : c’est voulu que quand on passe par la partie « Auteur » de SPIP tous les champs extra sont visibles et non pas seulement ceux attribués au profil ?

    • Yo
      oui puisque tu peux très bien vouloir voir ces champs et les éditer en admin pour d’autres besoin, ça n’a aucun rapport avec le profil (le form de profil et/ou l’inscription).

      On devrait ajouter une page (ou juste une box JS) pour voir uniquement les infos du profil précis bientôt. :)

    • @RastaPopoulos : je vais voir du coup pour surcharger le formulaire auteur de SPIP de mon côté car c’est un peu confusant d’avoir des champs qui ne correspondent pas au profil ;)

      Sinon je n’ai pas le plugin coordonnées et j’ai une erreur sur pas mal d’écrans où il se plaint que le filtre coordonnees_lister_types_coordonnees n’est pas là, par ex sur /ecrire/ ?exec=profil&id_profil=1.

    • Ah merci du retour, on va regarder pour Coordonnées, le but c’est bien que tout soit toujours optionnel.

    • Ça devrait être réglé en v1.5.3

    • @RastaPopoulos : voilà ce que j’ai intégré dans mes_fonctions.php : https://gist.github.com/julienmru/4...

      Comme ça, sur la partie Auteurs de SPIP je n’ai que les champs correspondant au profil :)

      C’est peut être pas parfait mais ça répond à mon besoin ^^

    • Yep ok mais du coup, ces champs que tu masques tu les as ajouté pour quoi ?

      Et dans tous les cas, pour les admins du site, comment tu modifies ces valeurs si tu n’y as plus accès ?

      Dans tous les cas l’édition des infos des profils devraient en priorité se faire depuis la liste des profils, vu que c’est pas le bon formulaire tout-en-un généré exprès pour les champs voulus.

    • En fait j’ai des champs extras spécifiques qui ne me servent que pour les auteurs ayant un profil donné et le code ne touche qu’à l’affichage des champs extra dans les formulaires des auteurs, les champs standards de SPIP ne sont pas concernés. Et pour les admins (ou les auteurs sans profil) tous les champs sont affichés (quoiqu’on pourrait décider de ne pas les afficher).

      Si je fais ça c’est pour ne pas perturber les administrateurs passant par la section auteurs de SPIP. Ce qui est obligatoire pour gérer le mot de passe par exemple.

    • Merci Julien.
      Moi aussi ça me gênait d’avoir tous les champs de mes profils sur la fiche d’auteur.
      Je trouve cela plus logique... Chaque auteur a son profil, et les champs des autres profils ne l’intéresse pas (pas plus l’admin d’ailleurs...)

    Répondre à ce message

  • 2

    Bonjour,
    Bravo pour ce super plugin ! Est-il possible, lors de l’inscription, de faire choisir au visiteur son profil ? Une fois inscrit, ce visiteur est automatiquement lié au profil voulu...
    Merci

    • Ce n’est pas encore une fonctionnalité du plugin, mais ce serait intéressant à garder en tête comme amélioration pour plus tard oui

    • Ce serait vraiment pratique ! Je pense que ça « décloisonnerait » vraiment SPIP. Ainsi, cela rajouterait de nouvelles fonctionnalités, et de possibilités aux auteurs et/ou visiteurs.

    Répondre à ce message

  • 17

    Chouette plugin pour gérer le RGPD.

    Petit problème : la propriété afficher_si pour les champs extra bloque l’affichage des champs concernés.

    • Yop, pas compris de qui de quoi pour afficher_si et champs extras, faudrait un exemple de config.

    • En édition, les profils n’affichent pas les champs extra qui sont soumis à un affichage conditionnel, même si la condition est réalisée.

    • Dans #FORMULAIRE_PROFIL et #FORMULAIRE_INSCRIPTION ? Est-ce que tu as des erreurs javascript ? URL pour voir ?

    • Je n’utilise que le formulaire #FORMULAIRE_PROFIL{id_auteur,id_profil}.
      Ca doit effectivement bloquer au niveau du javascript car je vois tout ce qu’il me faut dans le code html.

    • Bé oui mais regarde justement pour dire si oui ou non. :)
      Il faut ouvrir la console JS avec F12 et recharger la page.

    • Je vois que ça dans la console :

      Blocage du chargement du contenu mixte actif (mixed active content) « http://fonts.googleapis.com/css?family=Muli »

    • si on avait une url ce serait plus simple.

    • hum, le formulaire lui même n’apparait pas dans le code html (en dehors même de toute question d’afficher_si)

    • Comme je disais : pas si évident. Question de droits
      login toto passe tatito

    • Service worker event waitUntil() was passed a promise that rejected with ’TypeError : NetworkError when attempting to fetch resource.’.

      > peut être ca qui bloque la suite.

      Est-ce que tu pourrais mettre le code suivant
      define('_SAISIES_AFFICHER_SI_JS_LISIBLE', true);

      ca permet d’avoir un code js lisible pour l’affichage conditionnel.

    • (code à mettr dans mes_options.php)

    • la case à cocher est est de name contact[architecte] alors que l’affiche conditionnel porte sur architecte. Il y a donc un problème dans l’afficjage conditionnel.

    • Bien vu ! Merci

    • Ah oui il y a forcément un problème avec ça. Car quand on configure les champs extras, on le fait suivant le nom des champs de l’objet. Mais dans le formulaire de profil (et d’inscription) tout est renommé en mettant dans un tableau du type de l’objet. Et on peut pas changer ça manuellement puisqu’il faut que ça marche à la fois dans l’édition classique de l’objet où on a ajouté le champ, et dans les profils.

      Normalement ya une transformation automatique quand on génère les saisies du profil, mais possible que ça oublie de transformer les valeurs des afficher_si. Ça se passe là :
      https://zone.spip.net/trac/spip-zone/browser/spip-zone/_plugins_/profils/trunk/inc/profils.php#L185

    • Personnellement, j’ai trouvé la solution d’affichage :
      test(champ) || test(objet[champ])

    • Oui ça marche mais donc ça veut dire le faire manuellement en sachant qu’on a le plugin Profils aussi et qu’on sait qu’il fonctionne comme ça. Donc c’est quand même problématique, ça devrait être auto.

    Répondre à ce message

  • 1

    Merci beaucoup pour ce plugin.
    Quelques questions :
    -  Existe-t-il une API pour pouvoir créer des profils lors de l’installation d’un autre plugin comme c’est le cas avec les champs extras ?
    -  Peut-on restreindre la création et l’édition d’objets éditoriaux ainsi que les zones d’accès (plugin accès restreint) en fonction du profil ?

    • -  Non. :) Enfin après c’est pas pareil que les champs extras, car si tu dois toi-même ajouter un nouveau champ, tu devrais toi-même t’inscrire dans 12 pipelines différents pour faire toutes les actions nécessaires. Donc là normal qu’il y ait une API. Alors que pour Profils, il s’agit d’UN objet à insérer dans spip_profils avec son tableau de config. Donc bah ça tu peux déjà le faire dans ton fichier « administrations » en ajoutant un contenu lors de l’installation de ton plugin.

      -  Le plugin gère des profils et c’est tout. Après tu en fais ce que tu veux ailleurs, mais le plugin ne fait rien d’autre que ça. Même principe que pour le plugin Abonnements : il ne gère que des abonnements qui sont des « périodes » (début-fin) liées à un compte utilisateur. Et c’est tout, ça ne fait rien d’autre. Après charge à d’autres plugins de l’utiliser, comme le plugin « Abonnements à des zones restreintes ». Là ça serait un peu le même principe dans ce que tu expliques. En tout cas à faire dans un autre plugin forcément.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom