Certainement pas une nouvelle question que je pense, mais ici il va:Limiter l'accès de pages vues à des utilisateurs spécifiques/clients
Dans mon système de commande basé Django chaque utilisateur (qui ne sont pas du personnel) est lié à un objet CustomerProfile qui fait correspondre cet utilisateur à l'objet Client correct. Ces utilisateurs peuvent se connecter et consulter les factures en suspens. Pour voir les factures d'un client que vous accédez à quelque chose comme ceci:
/factures/client/97/
(facture client # 97)
Ce qui est bien, mais je dois intégrer une authentification pour un utilisateur qui fait partie du profil d'un client ne peut pas visualiser les factures d'un autre client en saisissant manuellement/factures/client/92/par exemple (la facture 92 appartient à un autre client).
J'ai cela, mais il est vraiment pas bon code (et ne fonctionne pas):
def customer_invoice_detail(request, object_id):
user = threadlocals.get_current_user()
try:
userprofile = UserProfile.objects.get(user=user)
user_customer = userprofile.customer.id
except UserProfile.DoesNotExist:
user_customer = None
if (request.user.is_authenticated() and user_customer is not null) or request.user.is_staff():
invoice = CustomerInvoice.objects.get(pk=object_id)
product_list = CustomerInvoiceOrder.objects.filter(invoice=object_id)
context = {
'object': invoice,
'product_list': product_list,
}
return render_to_response("invoices/customer_invoice_detail.html", context, context_instance=RequestContext(request))
else:
return HttpResponse("You are not authorised to view this invoice")
doit être meilleur/plus facile de faire face à ce - toutes les idées?
Vive