0

Je développe un système de gestion de l'apprentissage. Le système a plusieurs acteurs, comme étudiant, tuteurs, administrateur, doyen etc. Maintenant, j'ai besoin d'un système d'autorisation qui peut gérer différents rôles (les étudiants peuvent ajouter des cours à leur panier, les tuteurs peuvent CRUD un cours, Admins a également accès aux parties financières, etc.)Django, utiliser/concevoir un système d'autorisation au niveau des lignes lorsque nous avons différents rôles

D'après mes recherches, j'ai besoin d'un système d'autorisation au niveau des lignes qui peut gérer différents rôles. J'ai vu quelques applications comme django-guardiandjang-permissionsdjango-rulez, etc Mais encore confus sur la façon de concevoir des rôles basés sur eux (ils ne sont pas bien documentés). Est-ce que quelqu'un peut me donner un indice pour faire ce travail douloureux?

Répondre

1

Django a une authentification vraiment sympa/autorisation api construite en

Je vous conseille de lire la suite doc: https://docs.djangoproject.com/en/dev/topics/auth/ cela vous donne les bases. Pour votre application, la meilleure façon est de configurer les autorisations pour certaines choses, comme les autorisations pour modifier les cours. Ensuite, vous pouvez utiliser la permission décorateur requis pour vos vues qui vous permettent de faire ces choses. Par exemple, si vous aviez une vue:

def edit_course(request): 
    ...#handle form rendering/submission for course model 

vous pouvez ajouter ci-dessus ce point de vue:

@permission_required('course_editor') 
def edit_course(request): 
    ...#handle form rendering/submission for course model 

et seulement un utilisateur qui a cette autorisation peut accéder à ce morceau de fonctionnalité.

YVous pouvez aller plus loin en créant des groupes auxquels vous pouvez attribuer des autorisations, par ex. un groupe d'enseignants, et vous pouvez ensuite affecter tout le personnel à ce groupe, et ils hériteront de cette autorisation 'course_editor'. Mais comme je l'ai dit, cette question est un peu large pour une réponse spécifique, donc votre meilleur pari est de grok le doc à l'url ci-dessus.

+0

Merci pour votre réponse. Donc, vous voulez dire qu'il n'y a pas besoin d'autorisation d'objet (ligne) du tout? En fait, j'ai lu la partie Auth dans Django Doc .. – Soask

+1

pas à mon avis, vous pouvez gérer la plupart des choses comme je l'ai souligné ci-dessus. De cette façon, vous avez accès à l'objet Utilisateur à partir de la requête. – Ctrlspc

Questions connexes