Добрый день,
Разбираюсь с FW Django подскажите можно ли в VIew.py добавить над каждым path() декоратор и в нем указать имя группы пользователей которым разрешен доступ?
Создал супер пользователя, зашел в админку но не понял как там я могу задать необходимые права моему юзеру для доступа только к
определенным методам. В декораторе @login_required который используется в Models насколько я понял мы не можем передавать имя роли пользователям которым разреш доступ к соответствующему методу.
PS: Извиняюсь если вопрос технически не совсем грамотный.
Пример моего Urls.py:
path('accueil', views.connexion , name='connexion'),
path('accueilEmploye', views.connexionEmploye , name='connexion'),
path('deconnexion', views.deconnexion, name='deconnexion'),
path('liste_projets/<int:id>', views.list_projet), #client
path('liste_tickets/<int:id_projet>', views.list_tickets), #client
path('ajout_tickets/<int:id_ticket>', views.add_ticket), #client
path('liste_demande', views.list_projets_clients),
path('affectation_ticket/<int:id_projet>', views.liste_tickets_clients),
path('liste_tickets_assigne/<int:id_ticket>', views.liste_tickets_assigne),
path('detail_tickets_assigne/<int:id_ticket>', views.detail_ticket_assigne),
Вот Models.py моя цель ограничить доступ некоторых пользователей к не некоторым метода
from django.shortcuts import render
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from django.contrib.auth import logout
from django.shortcuts import render
from django.core.urlresolvers import reverse
# Create your views here.
def connexion(request):
error = False
if request.method == "POST":
form = ConnexionForm(request.POST)
if form.is_valid():
username = form.cleaned_data["username"]
password = form.cleaned_data["password"]
user = authenticate(username=username, password=password) # Nous vérifions si les données sont correctes
if user: # Si l'objet renvoyé n'est pas None
login(request, user) # nous connectons l'utilisateur
else: # sinon une erreur sera affichée
error = True
else:
form = ConnexionForm()
return render(request, 'appticket/connexion.html', locals())
def deconnexion(request):
logout(request)
return redirect(reverse(connexion))
@login_required
def list_projet(request,id):
try:
projets = Projet.objects.get(client=id)
except Projet.DoesNotExist:
raise Http404
return render(request, 'blog/list_projet.html', {'projets': projets})
@login_required
def list_tickets(request,id_projet):
try:
tickets = Ticket.objects.get(projet=id_projet)
except Ticket.DoesNotExist:
raise Http404
return render(request, 'blog/list_tickets.html', {'tickets': tickets})
@login_required
def add_ticket(request,id_ticket):
ticket = 0;
try:
ticket = Ticket.objects.get(id=id_ticket)
except Ticket.DoesNotExist:
raise Http404
return render(request, 'blog/add_ticket.html', {'ticket': ticket})
@login_required
def list_projets_clients(request):
try:
projets = Projet.objects.all()
except Projet.DoesNotExist:
raise Http404
return render(request, 'blog/list_projets_clients.html', {'projets': projets})
@login_required
def liste_tickets_clients(request,id_projet):
try:
tickets = Ticket.objects.get(projet=id_projet)
except Ticket.DoesNotExist:
raise Http404
return render(request, 'blog/liste_tickets_clients.html', {'tickets': tickets})
@login_required
def liste_tickets_assigne(request,id_ticket):
try:
ticket = Ticket.objects.get(id=id_projet)
except Ticket.DoesNotExist:
raise Http404
return render(request, 'blog/liste_tickets_assigne.html', {'ticket': ticket})
@login_required
def add_ticket(request,id_ticket):
ticket = 0;
try:
ticket = Ticket.objects.get(id=id_ticket)
except Ticket.DoesNotExist:
raise Http404
return render(request, 'blog/det_ticket.html', {'ticket': ticket})