Retour : Page Principale > sommaire applications botaniques > CEL
Première étape avant la refactorisation présentée ci-dessus
Il sera nécessaire de remplacer les deux champs ci-dessus par un seul nommé "coauteurId:#num" qui contiendra l'id de l'utilisateur à rechercher dans la table cel_utilisateurs.
Mémo sur la refactorisation de la gestion des utilisateurs du CEL
ATTENTION (2017-07-19) - la situation peut avoir changé depuis que ces informations ont été écrites
- Remplacer la table cel_utilisateur (vue) et cel_utilisateur_infos par une seul table cel_utilisateurs
- Une classe Php CelUtilisateur doit
- permettre d'obtenir l'id CEL de l'utilisateur si on lui fournit un courriel, un session_id ou un id de l'annuaire Tela (3 méthodes ?).
- vérifier automatiquement l'existence de l'utilisateur dans l'annuaire Tela
- Mettre à jour la table cel_utilisateur lors des différents type de connexion
- Fusionner les utilisateurs lorsqu'une personne s'inscrit au réseau après avoir déposé des données de manière anonyme ou occasionnelle.
- Il est peut être préférable de débuter l'auto-incrément de la table cel_utilisateur à 1 000 000 pour avoir une correspondance entre l'id CEL et l'id Tela.
- Les tables cel_obs, cel_images, cel_mots_cles_* devront contenir seulement une référence (ce_utilisateur) vers la table cel_utilisateurs quelque soit le type d'utilisateur
- Le champ ce_utilisateur devra être un entier positif (bigint)
A définir
- Doit on début l'auto-increment de cel_utilisateurs à 1 000 000 ?
- Doit on stocker le mot de passe dans cel_utilisateurs ? : nous ne stockerons pas dans la table cel_utilisateurs de mot de passe. C'est le web service extérieur, actuellement de l'annuaire, dans le futur du SSO, qui sera utilisé.
Table cel_utilisateurs
La table cel_utilisateurs ne sera plus une vue. Elle contiendra les champs suivants :- id_utilisateur : identifiant de l'utilisateur dans le CEL (auto-incrémenté)
- type (varchar 32) : contient le type d'identification : anonyme, occasionnel, inscrit (voir ci-dessous)
- session_id : identifiant de session sur 32 caractères
- telabotanica_id : id de l'utilisateur dans l'annuaire de Tela Botanica
- prenom (varchar 128)
- nom (varchar 128)
- pseudo (varchar 128) : pseudo de l'utilisateur issu de l'annuaire
- pseudo_utilise (bool) : le pseudo est-il actif ou non
- intitule (varchar 128) : intitulé d'un groupe ou d'un session de terrain (utilse pour la gestion des coauteurs).
- courriel (varchar 128)
- admin (bool) : 1 indique que l'utilisateur est administrateur du CEL
- licence_acceptee (bool) : 1 indique l'acceptation de la licence
- preferences (longtext) : préférence de l'utilisateur concernant l'application (utiliser du json ou du xml pour stocker les préférences)
- date_mise_a_jour (datetime) : date de mise à jour des données de l'utilisateur dans cette table (permet les comparaisons avec l'annuaire).
- date_premiere_utilisation (datetime) : date de première utilisation (= date d'ajout de la ligne dans cette table)
- date_derniere_utilisation (datetime) : date de la dernière utilisation
Type d'utilisateur
- anonyme : utilisateur anonyme possédent seulement un identifiant de session (champ session_id).
- Champs renseignés : session_id, date_premiere_utilisation, date_mise_a_jour
- occasionnel : utilisateur ayant renseigné son prénom, nom et courriel (mais n'est pas inscrit à Tela Botanica).
- Champs renseignés : session_id, prenom, nom, courriel, date_premiere_utilisation, date_mise_a_jour
- inscrit : utilisateur inscrit à Tela Botanica avec un id dans l'annuaire de Tela.
- Champs renseignés : session_id, telabotanica_id, prenom, nom, pseudo, courriel, admin, licence_acceptee, date_premiere_utilisation, date_mise_a_jour
Création d'un nouveau profil utilisateur
L'annuaire devra appeler un webservice CeL qui recherchera les données occasionnelles associées au courriel du nouveau compte, et mettra à jour les informations "nom", "prenom", "pseudo", "pseudo_utilise", "id" pour le courriel concerné.Mise à jour du profil d'un utilisateur
L'annuaire devra appeler un webservice CeL qui mettra à jour les informations "nom", "prenom", "pseudo", "pseudo_utilise", "courriel" pour l' ID utilisateur concerné.Gestion du partage des observations entre utilisateurs
La gestion des coauteurs d'observation va passer par les champs étendus.Première étape avant la refactorisation présentée ci-dessus
- Pour partager une observation, il suffira de rajouter un champ étendu dont la clé vaut "coauteurCourriel:#num", où #num est à remplacé par un nombre entier incrémenté pour chaque coauteur. Ce champ étendu doit contenir le courriel du coauteur. Si un utilisateur du CEL utilise cette email pour se connecter au CEL, il devra pouvoir accéder à ces observations. La modification de l'interface du CEL reste à définir...
- Un champ étendu supplémentaire avec pour clé "coauteurIntitule:#num" pourra contenir l'intitulé du coauteur, généralement "Prénom NOM", mais qui peut être aussi un nom de groupe (par exemple "Rencontre Tela Botanica 2014").
Il sera nécessaire de remplacer les deux champs ci-dessus par un seul nommé "coauteurId:#num" qui contiendra l'id de l'utilisateur à rechercher dans la table cel_utilisateurs.