2009-12-15 11 views
0

J'ai une application qui va gérer un grand nombre d'utilisateurs. Les utilisateurs sont divisés en 2 types: public et privé. De plus, les utilisateurs privés sont composés de deux sociétés différentes (peut-être même plus à l'avenir) et ont déjà établi des noms d'utilisateur à partir de LDAP & répertoires actifs qui seront utilisés pour préremplir le modèle d'utilisateur de mon application. Pour éviter les conflits de noms, je pense à implémenter des espaces de noms de nom d'utilisateur en utilisant un préfixe.Comment éviter l'affrontement d'un nom d'utilisateur avec un grand nombre d'utilisateurs dans django?

par exemple:

  • _company1_user1
  • _company2_user1
  • _web_user1

Je voudrais mettre en œuvre cela si possible en utilisant l'application de modèle utilisateur de django. Peut-être en héritant et en remplaçant les méthodes standard et en ajoutant un argument d'espace de noms.

Répondre

3

Je suggère d'utiliser leur adresse e-mail comme nom d'utilisateur pour les identifier de manière unique.

+0

Oui, c'est ma solution de secours. –

+0

D'accord, mais notez que vous devrez augmenter la taille du champ 'nom d'utilisateur' dans le modèle utilisateur et aussi changer sa routine de validation. Nous l'avons augmenté à 75 caractères. Nous avons également créé une routine, NormalizeUsername(), qui force tout en minuscules et s'assure que * peut * être une adresse email valide. Cela doit être utilisé dans UserManager.create_user et dans votre processus d'authentification. Un peu pénible, mais leur adresse e-mail tend à être quelque chose dont les gens peuvent se souvenir (mais pas toujours). –

+0

"Un peu de douleur" - oui, c'est ce que j'essaie d'éviter. De plus, j'aurais aussi besoin de trouver/implémenter/pirater un LDAP, un backend d'authentification basé sur le courrier électronique. –