8
votes

Système d'authentification administrateur / utilisateur distinct à Django

J'ai récemment commencé à apprendre / utiliser Django; J'essaie de trouver un moyen d'avoir deux systèmes d'authentification distincts pour les administrateurs et les utilisateurs. Plutôt que de créer un tout nouveau système d'authentification, j'aimerais tirer parti de la fonctionnalité intégrée de Django (c'est-à-dire la gestion de la session, @Login_Required décorateur, etc.).

Spécifiquement, je veux avoir deux tables de connexion distinctes - une pour les administrateurs, un pour les utilisateurs. La table de connexion de l'administrateur doit être la table par défaut que Django génère avec ses champs par défaut (c.-à-d. ID ID, nom d'utilisateur, email, is_staff, etc. ). La table des utilisateurs, d'autre part, je veux avoir 5 champs - ID, e-mail, mot de passe, nom, last_name . En outre, je souhaite utiliser la gestion de session intégrée Django pour les tables de connexion et le décorateur @Login_Required pour leurs vues respectives. Enfin, je veux deux formulaires de connexion distincts et distincts pour les administrateurs et les utilisateurs.

Quelqu'un a des suggestions sur la manière dont je peux atteindre mon objectif ou savoir de tout article / exemples qui pourraient m'aider?


2 commentaires

Ne sont-ils pas les autorisations déjà suffisantes pour la plupart des tâches? Les administrateurs ne sont que des utilisateurs avec des autorisations appropriées. Et il y a même user.is_staff / user.is_superuser si vous ne voulez pas d'autorisations à réglage précis.


Il semble que ma question n'était pas claire; J'ai modifié ma question en ajoutant plus de détails et de détails, espérons-le plus clairement plus clair. Merci pour l'aperçu / l'aide.


3 Réponses :


0
votes

Modifier les choses légèrement afin que les utilisateurs aient un préfixe de catégorie sur leur nom d'utilisateur? Vous n'avez pas beaucoup fourni des informations sur ce que vous voulez faire, il est possible que vos besoins puissent être satisfaits en utilisant le cadre de sites, ou simplement deux installations Django distinctes.

Si ce que vous essayez de faire est de faire la page de connexion de l'utilisateur et de la page de connexion de l'administrateur, utilisez simplement le cadre intégré comme détaillé dans les documents pour créer une page de connexion "utilisateur" et laisser l'administrateur seul. Si vous craignez que les utilisateurs commencent d'une manière ou d'une autre, commencent à éditer des trucs de connexion à l'administrateur, ils ne seraient pas à moins que vous ne les laissez.


0 commentaires

1
votes

Vous pouvez potentiellement écrire un ou plusieurs backens d'authentification personnalisés. Ceci est documenté ici . J'ai écrit un backend personnalisé pour vous authentifier contre un serveur LDAP, par exemple.


0 commentaires

1
votes

Si je comprends votre question correctement (et peut-être que je ne le fais pas), je pense que vous demandez comment créer un formulaire de connexion séparé pour les utilisateurs non administratifs, tout en utilisant toujours les mécanismes d'authentification Django standard, utilisateur Code> Modèle, etc. Ceci est pris en charge de manière nativement par Django via des vues dans django.contrib.auth.views code>.

Vous voulez commencer par django.contrib.auth.views .login code>. Ajoutez une ligne à votre URLCONF comme SO: P>

(r'^/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'})


0 commentaires