utils.py 728 B

1234567891011121314151617181920212223242526
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.shortcuts import render, get_object_or_404
  4. from django.core.exceptions import PermissionDenied
  5. from coin.billing.models import Invoice
  6. def get_invoice_from_id_or_number(id):
  7. """
  8. Return an invoice using id as invoice id or failing as invoice number
  9. """
  10. try:
  11. return Invoice.objects.get(pk=id)
  12. except:
  13. return get_object_or_404(Invoice, number=id)
  14. def assert_user_can_view_the_invoice(request, invoice):
  15. """
  16. Raise PermissionDenied if logged user can't access given invoice
  17. """
  18. if not invoice.has_owner(request.user.username)\
  19. and not request.user.is_superuser:
  20. raise PermissionDenied