IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI/RAD Python Discussion :

[Débutant] Liste des rôle (roles.py) dans une Dropdowlist ?


Sujet :

EDI/RAD Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut [Débutant] Liste des rôle (roles.py) dans une Dropdowlist ?
    Bonjour,

    Je débute avec PyCharm, python3 et n'arrive pas voir comment afficher la liste des rôles que j'ai trouvés dans le fichier roles.py.

    Ai vu dans ce fichier un import :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from rolepermissions.roles import AbstractUserRole
    avec pour exemple des blocs semble à celui-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Gestionutilisateur(AbstractUserRole):
        available_permissions = {
            'create_utilisateur': True,
            'update_utilisateur': True,
        }

    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from rolepermissions.roles import RolesManager
    Ai remarqué cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RolesManager.get_roles_names()
    Mais... qui ne retourne qu'un dictionnaire de "keys" et dans mon exemple "Gestionutilisateur"

    Savez-vous comment récupérer 'create_utilisateur' et 'update_utilisateur' pour valeur True ?

    Enfin, simple pour l'envoyer via forms.ChoiceField() ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    available_permissions est un attribut de Gestionutilisateur, c'est donc Gestionutilisateur.available_permissions qui te retournera ton dictionnaire de permissions.

    Comment est printé print(RolesManager.get_roles_names()) ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    Merci VinsS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print(RolesManager.get_roles_names())
    retourne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dict_keys(['gestionutilisateur'], ['commercial'])
    Vais peut-être m'en sortir tout seul (?)

    Ai pu aller un peu à l'exploration...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from django.contrib.auth.models import User
    from rolepermissions.roles import assign_role
     
    user = User.objects.get(id=1)
    assign_role(user, "Gestionutilisateur".lower())
     
    if has_permission(user, 'create_utilisateur'):
          return True
    else:
          return False
    ça marche ! (perdu un peu de temps au niveau du lower()

    Avec ton explication, ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from my_project.roles import *
     
    print(Gestionutilisateur.available_permissions)
    donne

    {'update_utilisateur': True, 'create_utilisateur': True}

    A priori, n'ai plus qu'à apprendre à parcourir le dictionnaire de Keys (RolesManager.get_roles_names()) et pour chacune d'elle appeler le available_permissions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for x in RolesManager.get_roles_names():
          print('{} - {}'.format(x, RolesManager.retrieve_role(x).available_permissions))
    ça marche !

    A peine quelque jour que je me suis mis au python et j'aime plutôt bien

    Enfin, il y a encore du boulot pour atteindre mon objectif...

    Encore merci VinsS

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            for x in RolesManager.get_roles_names():
                for y in RolesManager.retrieve_role(x).available_permissions:
                    print('{} - {}'.format(x, y))
    Me donne :
    commercial - chat
    gestionutilisateur - create_utilisateur
    gestionutilisateur - update_utilisateur

Discussions similaires

  1. Liste des élèves non notés dans une matière donnée
    Par devman2011 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 14/03/2012, 19h11
  2. Liste des rôles utilisateurs attribués dans la base
    Par SheikYerbouti dans le forum Contribuez
    Réponses: 0
    Dernier message: 30/12/2011, 14h20
  3. Réponses: 4
    Dernier message: 05/05/2011, 15h10
  4. Liste des dates se trouvant dans une période
    Par mooh91 dans le forum Access
    Réponses: 1
    Dernier message: 17/09/2006, 00h46
  5. [Débutant]Comment faire des tranches de nombre dans une tabl
    Par Jedecouvreaccess dans le forum Access
    Réponses: 7
    Dernier message: 05/09/2005, 08h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo