web-dev-qa-db-fra.com

Quelle est la différence entre le personnel, l'administrateur et le superutilisateur dans Django?

Django a un superutilisateur, du personnel, un administrateur…

le superutilisateur et le personnel sont en Django.contib.auth.models.UserManager. Ensuite, il y a la commande createsuperuser de Django-admin.

Eh bien, il y a des applications d'administration… Quelle est la différence?

39
eugene

Je prends ceci de Django Documentation:

L'une des parties les plus puissantes de Django est l'interface d'administration automatique. La meilleure chose est que vous pouvez la personnaliser facilement.

Si vous êtes connecté en tant que superutilisateur, vous avez accès à la création, à la modification et à la suppression de tout objet (modèles).

Vous pouvez créer un utilisateur du personnel à l'aide du drapeau du personnel. L'indicateur "personnel" contrôle si l'utilisateur est autorisé à se connecter à l'interface d'administration (c'est-à-dire si cet utilisateur est considéré comme un "membre du personnel" dans votre organisation). Étant donné que ce même système utilisateur peut être utilisé pour contrôler l'accès aux sites publics (c'est-à-dire non administratifs), ce drapeau différencie les utilisateurs publics et les administrateurs.

Les utilisateurs administrateurs "normaux" - c'est-à-dire les membres du personnel actifs et non superutilisateur - se voient accorder un accès administrateur via des autorisations attribuées. Chaque objet modifiable via l'interface d'administration dispose de trois autorisations: une autorisation de création, une autorisation de modification et une autorisation de suppression pour tous les modèles que vous avez créés.

Le site d'administration de Django utilise un système d'autorisations que vous pouvez utiliser pour n'accorder à des utilisateurs spécifiques que les parties de l'interface dont ils ont besoin. Lorsque vous créez un utilisateur, cet utilisateur ne dispose d'aucune autorisation et c'est à vous de lui accorder une autorisation spécifique

28
Aks

Django n'a qu'un seul type d'utilisateur. C'est simplement User. En fonction des autorisations que vous accordez à l'utilisateur, il peut faire différentes choses par défaut:

  1. Tout utilisateur normal peut être authentifié (c'est tout l'intérêt de l'utilisateur, d'avoir une connexion).
  2. Tout utilisateur doté du drapeau staff peut se connecter à l'application d'administration contribuée. Au-delà de cela, ils n'ont pas d'autres privilèges spéciaux.
  3. Ils peuvent être définis comme actifs ou non. Seuls les utilisateurs actifs sont autorisés à se connecter.

Un superutilisateur n'est qu'une méthode pratique pour créer un utilisateur avec toutes les autorisations. Ce ne sont que des utilisateurs normaux avec du personnel et toutes les autorisations par défaut.

Il existe également des paramètres ADMINS et MANAGERS .

Celles-ci sont utilisées pour les notifications, lorsque le site est en cours de production (c'est-à-dire lorsque DEBUG est False).

Les administrateurs sont informés de toute erreur qui génère un retraçage. Ils reçoivent un e-mail de suivi et des informations sur la demande. Les managers reçoivent un e-mail lorsque quelqu'un demande un lien qui n'existe pas (en gros, lorsqu'un 404 est levé).

21
Burhan Khalid

Un superutilisateur dispose automatiquement de toutes les autorisations (has_perm renverra True).

Un membre du personnel peut se connecter aux pages d'administration.

Les pages d'administration sont une interface simple vers les modèles que vous avez configurés pour y apparaître. Il montre uniquement les modèles pour lesquels l'utilisateur actuel dispose des autorisations appropriées.

Donc, si quelqu'un est à la fois superutilisateur et personnel, il peut se connecter au site d'administration et avoir un accès complet à tous les modèles qui s'affichent sur le site d'administration.

10
RemcoGerlich