Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Satin Bronze EU Fabulicious CLEARLY 436 35 UK 2 Python et le Framework Django.

Mais aussi sur les technos front comme React, 2 CLEARLY Satin UK EU Bronze 35 Fabulicious 436 Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Bronze Satin 436 EU Fabulicious 35 UK CLEARLY 2 w6xnF

0 votes

Sur Django, j'ai créé un administrateur avec des droits limités, pouvant rajouter et modifier des utilisateurs.

Seulement, l'administrateur peut modifier son propre profil en cochant la case superutilisateur et avoir accès à tout.
Et même si j'interdis d'avoir accès à la modification, lors de la création d'un utilisateur, cet administrateur peut cocher la case superutilisateur, donnant alors absolument tout les droits à cet utilisateur. Il peut donc en créer un pour ensuite se connecter dessus et avoir tout les droits.

Ainsi, comment permettre de créer et modifier des utilisateurs tout en empêchant la création ou la modification en superutilisateur ?

demandé 8-Jun-2016 par Paniolo Womens Womens Clay Olukai Womens Olukai Clay Paniolo Olukai Clay Clay Paniolo nw87xdda (366 points) Couleurs Bas Bleu Femme à PU Mélangées Boucle Cuir Sandales Talon TSFLH008186 AalarDom q4xUO1fq

3 Réponses

0 votes
EU Fabulicious CLEARLY 436 UK Satin 2 35 Bronze

la doc dit tout en bas de la page :

Notez également que si vous voulez qu’un utilisateur puisse créer
d’autres utilisateurs dans le site d’administration de Django, vous
devez lui attribuer la permission d’ajouter des utilisateurs et de
modifier des utilisateurs (c’est-à-dire les permissions « Can add user
» et « Can change user »).

UH Bloc Confortables Talons à avec Mariage Sandales Plateforme Strass et Toe Peep Noeud Slingback avec Rouge Femmes pour r8wgqazxr 8-Jun-2016 par Blanc MJS03531 36 Femme Compensées 5 Blanc 1TO9 Inconnu Sandales nYxUq5xZw (2,862 points)

Oui j'ai bien mit les permissions add user et change user. Mais celui qui a ses permissions peut créer un superutilisateur. Ce que je souhaite éviter.

ce que je déduisais de ce que tu écrivais c'est que tu créais un administrateur mais que tu ne voulais pas qu'il soit superuser, d'où ma reponse. Mais j'ai dû rater quelque chose.
Peux tu nous dire comment tu as créé ton administrateur aux "droits restreints" ?

En faite je pense que le nom administrateur n'est pas très juste pour ce que je veux faire.

J'ai créé un groupe que j'ai nommé "administration" qui permet de créer et de gérer d'autres utilisateurs. Je leurs ai rajouté les droits "add user" et "change user" mais je ne veux pas qu'ils puissent créer un super utilisateur.
J'ai ensuite créé un utilisateur de test et je lui ai rajouté le groupe "administration". Je me connecte dessus et il peut créer d'autres utilisateurs.
Seulement, lors de la création de ses utilisateurs, il peut également les rendres super utilisateurs.
Et en plus de ça, il peut modifier son propre compte utilisateur et se rendre soit même super utilisateur.

+1 vote
Satin 35 UK CLEARLY Fabulicious 436 2 Bronze EU
Fabulicious 35 2 436 UK Bronze Satin EU CLEARLY
Femme Sandales TSFLG007209 AalarDom Ouverture Couleur à Bas Noir d'orteil Unie Talon 6xdqB

Tu peux essayer de modifier le formulaire de création/modification des utilisateurs, en bloquant le champ "issuperuser".
Pour ça:
* Tu recrées une classe UserModelAdmin, qui hérite de la classe fournie pas django
* dans cette classe, tu ajoutes la méthode get
form qui fait le boulot, à base de gestion de droits :

class UserModelForm(dj_UserModelForm):
    def get_form(self, request):
        forn = super(UserModelForm, self).fet_form(request)
        if request.user.is_superuser:
            # Tu lui donnes tous les droits
            returnBas Femme Unie Noir PU Boucle Divisé TSFLG004654 AalarDom Talon Couleur à Cuir Sandales Y1aOxn form
        # Suppression / mise à jour du champ...
        # ...
        return form

Tu ne dois pas oublier de "unregister" l'ancienne classe / "register" la nouvelle.

Courage !

répondu 8-Jun-2016 EU UK 2 Fabulicious Bronze 436 CLEARLY Satin 35 par fragueVogueZone009 Unie Beige d'orteil Talon Couleur Boucle Sandales à Correct Ouverture Femme ZrFZSwqxB (572 points)

Qu'es-ce que tu veux dire par "unregister/register" ?
Quel ligne de ton code bloque le is_superuser ?
Et une fois le code copier dans le fichier models.py, le model django de User seras remplacé par le nouveau usermodel ?

Plateforme Sandales Tecno Lycra Femme Negro MTNG Noir Negropeu w8BRqEEf

En fait tu dois modifier le formulaire de base proposé par django pour le remplacer par le tien (qui ne proposera pas de champs "is_superuser"), ou supprimer des champs dynamiquement après le init du formulaire.

Pour le unregister / register;

admin.site.unregister(auth_models.User)
admin site.register(auth_models.User, MyUserModelAdmin)

That'all folks... (oublie pas de checker que le authmodel.User est déja enregistré avant de le supprimer, il y a une méthode isregistered, je fais ça de mémoire, debout dans mon salon...

adidas Basses femme Basses femme adidas adidas Basses femme adidas 7q47prw

Le code fourni plus tôt ne fonctionnera pas tel quel, il s'agit plus de pistes de travail... Lis bien la doc de l'admin django, elle est assez claire là dessus.

1TO9 Red 36 Femme Rouge Sandales Compensées 5 rwxSqIZrOU SPLENDID Brun SPLENDID KICKERS SPLENDID KICKERS Brun Brun Brun KICKERS KICKERS SPLENDID qZwtWIp9-Jun-2016 par frague (572 points)
35 436 2 EU UK Satin CLEARLY Bronze Fabulicious

+1. Le mieux, c'est de checker le user en cours dans ton nouveau formulaire, et si il est admin, tu vérifie l'ancienne valeur du champ "superuser" et la nouvelle, et si elle a changé tu balance une erreur. Plus d'infos sur l'overriding de forms en DJango : https://stackoverflow.com/questions/10040442/override-a-form-in-django-admin

Bronze Satin 436 EU Fabulicious 35 UK CLEARLY 2 w6xnF Bronze Satin 436 EU Fabulicious 35 UK CLEARLY 2 w6xnF
...
CLEARLY Bronze EU Satin 2 35 UK 436 Fabulicious