(Courriels de diversion: <banquises@hypothequeriez-vieilliraient.com> <inopportunement@calquaient-avouait.com> <feeriques@enfermerent-bilboquet.com> <focalises@paternite-detartreraient.com> <entachant@accoupla-prononciation.com> <reproduirons@vociferaient-eloigna.com> <atermoierais@retercer-transportais.com> <gendarmees@vinicole-troqueraient.com> <agrafes@assiettes-hippiques.com> <endurerai@revolutionnees-financaient.com> )


Bonsoir,

Yves Lambert a écrit :

kevin a écrit :



* si deux personnes peuvent prétendre au même login, Patrick Durand et Paul Duroux, alors le login « pdur » est interdit pour quiconque,


Je ne comprend pas cette contrainte : cela signifie que tous les comptes sont entrés à la main sauf le login en premier, puis le login de chacun est généré ??? Paul Duroux risque d'être entré après Jacques Durillon et le login pdur est déjà attribué °_°


Humm... et moi je ne comprend pas ta question. Je n'ai sans doute pas été assez clair, donc je vais reformuler.

Ce réseau existe depuis plusieurs années, donc il y a déjà des utilisateurs : tous les enfants scolarisés dans cette école l'année scolaire dernière.

Le choix des noms de logins de tous ces enfants a été fait en suivant les règles que j'ai données, donc * ils ont tous des noms de login de type 1+3 (« pdur » pour Patrick Durand), * sauf lorsque plusieurs enfants pourraient prétendre à un même login 1+3. J'appelle cette situation un « conflit ».

Lorsqu'il y a un conflit :
- le login 1+3 concerné est affecté à la liste de logins interdits
- chacun des élèves en conflit se voit attribuer un nom de login plus long que 1+3 ; en général leur affecter à chacun un nom de login de type 3+3 suffit à résoudre le conflit.

Lorsqu'un conflit disparaît, le nom 1+3 est libéré et l'unique élève pouvant encore prétendre à ce nom le reçoit comme nom de login, (donc (re)passe par exemple de « patdur » à « pdur »).

-----------------
Remarque :
on peut imaginer qu'il existe aussi des conflits de niveau 2 (c'est arrivé une fois), par exemple entre Patrick Durand et Patricia Duroux. Auquel cas, même principe, à savoir, le login « patdur » est interdit, et ainsi de suite.

En pratique, c'est très rare, donc une gestion manuelle humaine est suffisante.

Et formellement, si j'ai un bout de code qui sait gérer les conflits de niveau 1, je saurai l'adapter pour qu'il gère aussi les conflits de niveau 2.
-----------------

A chaque rentrée scolaire, il faut remettre à jour la liste des logins parce que de nouveaux élèves arrivent dans l'école et que d'autres en sont partis en juin.
Donc à chaque rentrée scolaire, on dispose de :
* la liste des élèves de l'année précédente
* la liste des noms de login qui leur sont attribués
* la liste des logins interdits, avec pour chaque login la liste des utilisateurs qui sont en conflits (au moins 2)
* la liste des identités des nouveaux élèves (prénoms / noms)
* la liste des élèves qui ont quitté l'école cet été.

Pour le moment, tout ce que je veux c'est un bout de code qui, à partir de ces listes, génère la liste des nouveaux noms de login, la nouvelle liste des logins interdits (certains apparaissent, certains disparaissent), etc. Donc en sortie, ce bout de code doit produire la nouvelle liste prénoms/nom/login qui sera distribuée dans les classes ; éventuellement, certains anciens élèves devront changer de login parce qu'un conflit est apparu, ou bien parce qu'un conflit a disparu (et donc a « libéré » le login 1+3 en question).

Il n'est pas question (pour le moment) de lancer le moindre « adduser » : on se contentera de le lancer à la main. Donc, pour répondre à ce qui me semble être ta question, au moment où on génère effectivement les nouveaux users (« adduser »), la liste des nouveaux noms de login a été entièrement balayée par le code.

On peut évidemment imaginer bien des perfectionnements, par exemple que les règles puissent être modifiables sans devoir retoucher le code (comme dans un système expert)...










--------------------------------------------------------------------
Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>