Taille: 2257
Commentaire:
|
Taille: 3158
Commentaire: courriel en extra... victoire temporaire de Tini !
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
Voici ma (ThomasNoël) proposition pour la base de donnée des utilisateurs. = Idées générales = * des utilisateurs, des groupes et des abonnements qui permettent de dire que tel utilisateur est dans tel groupe de telle à telle date * la base n'est pas destinée à être utilisée telle quelle pour l'authentification ou la gestion système : des ''backends'' sont disponibles pour créer, à partir de cette base, les données système nécessaires (fichiers ''passwd+shadow'', base MySQL-auth, arbre LDAP, htpasswd, etc). * par défaut la base ne contient pas de données purement "système" : ces données (comme le shell, la homedir, etc) sont calculées par les backend, éventuellement en fonction de conditions locales (exemple: homedir du type /home/a/n/antoine). * un mecanisme de champ "extra" permet d'étendre les tables en associant des variables à un utilisateur, un groupe ou autre (merci JérômeSantini pour cette chouette idée) * la gestion des organismes d'appartenance est hierarchisée (par exemple université->faculté->département). Ainsi, si une personne est de tel département, on sait qu'elle est aussi de telle fac et de telle université. |
Voici ma (ThomasNoël) proposition pour le schéma de la BD de gestion des utilisateurs. |
Ligne 12: | Ligne 4: |
= Base = | attachment:base_utilisateurs_campus.png |
Ligne 14: | Ligne 6: |
== Table utilisateurs == | |
Ligne 16: | Ligne 7: |
* '''id''' * '''login''' * '''mot_de_passe''' * '''courriel''' * '''nom''' * '''prénom''' * '''genre''' * '''date_naissance''' * '''adresses''' * '''téléphones''' * '''id_organisme''' * '''fonction''' * '''commentaires''' |
les sources Dia de ce schéma : attachment:base_utilisateurs_campus.dia |
Ligne 30: | Ligne 9: |
== Table utilisateurs_extra == | |
Ligne 32: | Ligne 10: |
* '''id_utilisateur''' : utilisateur concerné * '''variable''' : nom de la variable (par exemple : ''courriel_alias'', ''homedir'') * '''valeur''' |
= Les utilisateurs = |
Ligne 36: | Ligne 12: |
== Table groupes == | Table utilisateurs:: . id . login . mot_de_passe . --(courriel)-- ''passe en extra... temporairement ?'' . nom_complet . nom . prénom . genre . date_naissance . commentaires |
Ligne 38: | Ligne 24: |
* '''id''' * '''nom''' * '''commentaires''' |
Table utilisateurs_extra:: . id_utilisateur : utilisateur concerné . variable : nom de la variable . valeur |
Ligne 42: | Ligne 29: |
== Table groupes_extra == | . ''Exemples de variables extra :'' . adresse (qui ne sera pas celle de l'organisme avec lequel la personne est relié, cf plus bas) . téléphone . courriel_canonique (adresse de réécriture en sortie) . courriel (n fois) . courriel_transfert (forward, quoi. à utiliser si l'adresse de contact != refer) . repertoire_courriels (forme serveur:/repertoire) . repertoire_fichiers (le HOME, par exemple sous la forme serveur:/repertoire) . acces_shell (0/1) |
Ligne 44: | Ligne 39: |
* '''id_groupe''' * '''variable''' * '''valeur''' |
= Les groupes = |
Ligne 48: | Ligne 41: |
== Table abonnements == | Table groupes:: . id . nom . commentaires |
Ligne 50: | Ligne 46: |
* '''id_utilisateur''' * '''id_groupe''' * '''date_debut''' * '''date_fin''' * '''commentaires''' |
Table groupes_extra:: . id_groupe . variable . valeur |
Ligne 56: | Ligne 51: |
== Table organismes == | = Les abonnements = |
Ligne 58: | Ligne 53: |
* '''id''' * '''nom''' * '''adresses''' * '''telephones''' * '''id_parent''' : pointe vers un id_organisme (0 pour la racine) * '''commentaires''' |
Un abonnement signifie qu'on place un utilisateur dans un groupe pendant un certain laps de temps. |
Ligne 65: | Ligne 55: |
== Table organismes_extra == | Table abonnements:: . id_utilisateur . id_groupe . date_debut . date_fin . suspendu : mis à ''vrai'' si l'abonnement est interrompu temporairement (idée de SébastienDornano) . commentaires |
Ligne 67: | Ligne 63: |
* '''id_organisme''' * '''variable''' * '''valeur''' |
= Les organismes = Ils sont hiérarchisés (arbre simple : un parent peut avoir plusieurs fils). Table organismes:: . id . nom . adresses . telephones . id_organisme_parent : pointe vers un id_organisme (0 pour la racine) . commentaires Table organismes_extra:: . ''note : je ne suis pas sûr de l'utilité de ces extras'' . id_organisme . variable . valeur Chaque utilisateur peut être rattaché à un ou plusieurs organismes. A chaque rattachement on indique la fonction de l'utilisateur dans l'organisme, via un triplet { utilisateur, organisme, fonction }. On peut donc imaginer qu'un utilisateur puisse avoir plusieurs fonctions au sein d'un même organisme. Table fonction:: . id . nom . commentaires Table fonction_extra:: . ''note : je ne suis pas sûr de l'utilité de ces extras'' . id_fonction . variable . valeur Table utilisateur_organisme_fonction:: . id_utilisateur . id_organisme . id_fonction . date_debut (idée pompée sur la proposition de Seb) . date_fin . commentaires = UML (très basique) = Note à OusmaneWilane : j'ai descendu ce schéma qui n'est plus synchro avec le reste. attachment:base_utilisateurs_campus_uml.png (source Dia du schéma UML: attachment:base_utilisateurs_campus_uml.dia) SQL généré pour PostgreSQL : attachment:base_utilisateurs_campus.sql Génération SQL avec [http://tedia2sql.tigris.org/usingtedia2sql.html tedia2sql] : {{{ tedia2sql -t postgres -f -m -v1 -i ./base_utilisateurs_campus_uml.dia -o ./base_utilisateurs_campus.sql }}} |
Voici ma (ThomasNoël) proposition pour le schéma de la BD de gestion des utilisateurs.
- attachment:base_utilisateurs_campus.png
les sources Dia de ce schéma : attachment:base_utilisateurs_campus.dia
Les utilisateurs
- Table utilisateurs
- id
- login
- mot_de_passe
courriel passe en extra... temporairement ?
- nom_complet
- nom
- prénom
- genre
- date_naissance
- commentaires
- Table utilisateurs_extra
- id_utilisateur : utilisateur concerné
- variable : nom de la variable
- valeur
Exemples de variables extra :
- adresse (qui ne sera pas celle de l'organisme avec lequel la personne est relié, cf plus bas)
- téléphone
- courriel_canonique (adresse de réécriture en sortie)
- courriel (n fois)
- courriel_transfert (forward, quoi. à utiliser si l'adresse de contact != refer)
- repertoire_courriels (forme serveur:/repertoire)
- repertoire_fichiers (le HOME, par exemple sous la forme serveur:/repertoire)
- acces_shell (0/1)
Les groupes
- Table groupes
- id
- nom
- commentaires
- Table groupes_extra
- id_groupe
- variable
- valeur
Les abonnements
Un abonnement signifie qu'on place un utilisateur dans un groupe pendant un certain laps de temps.
- Table abonnements
- id_utilisateur
- id_groupe
- date_debut
- date_fin
suspendu : mis à vrai si l'abonnement est interrompu temporairement (idée de SébastienDornano)
- commentaires
Les organismes
Ils sont hiérarchisés (arbre simple : un parent peut avoir plusieurs fils).
- Table organismes
- id
- nom
- adresses
- telephones
- id_organisme_parent : pointe vers un id_organisme (0 pour la racine)
- commentaires
- Table organismes_extra
note : je ne suis pas sûr de l'utilité de ces extras
- id_organisme
- variable
- valeur
Chaque utilisateur peut être rattaché à un ou plusieurs organismes. A chaque rattachement on indique la fonction de l'utilisateur dans l'organisme, via un triplet { utilisateur, organisme, fonction }. On peut donc imaginer qu'un utilisateur puisse avoir plusieurs fonctions au sein d'un même organisme.
- Table fonction
- id
- nom
- commentaires
- Table fonction_extra
note : je ne suis pas sûr de l'utilité de ces extras
- id_fonction
- variable
- valeur
- Table utilisateur_organisme_fonction
- id_utilisateur
- id_organisme
- id_fonction
- date_debut (idée pompée sur la proposition de Seb)
- date_fin
- commentaires
UML (très basique)
Note à OusmaneWilane : j'ai descendu ce schéma qui n'est plus synchro avec le reste.
- attachment:base_utilisateurs_campus_uml.png
(source Dia du schéma UML: attachment:base_utilisateurs_campus_uml.dia)
SQL généré pour PostgreSQL : attachment:base_utilisateurs_campus.sql
Génération SQL avec [http://tedia2sql.tigris.org/usingtedia2sql.html tedia2sql] :
tedia2sql -t postgres -f -m -v1 -i ./base_utilisateurs_campus_uml.dia -o ./base_utilisateurs_campus.sql