66from core .utils import append_validity_filter
77from invoice .apps import InvoiceConfig
88from invoice .gql .gql_types .invoice_types import InvoicePaymentGQLType
9- from invoice .models import InvoicePayment
9+ from invoice .models import InvoicePayment , Invoice
1010import graphene_django_optimizer as gql_optimizer
1111
1212
@@ -21,20 +21,24 @@ class InvoicePaymentQueryMixin:
2121 )
2222
2323 def resolve_invoice_payment (self , info , ** kwargs ):
24+ InvoicePaymentQueryMixin ._check_permissions (info .context .user )
2425 filters = []
2526 filters += append_validity_filter (** kwargs )
2627
2728 client_mutation_id = kwargs .get ("client_mutation_id" , None )
2829 if client_mutation_id :
2930 filters .append (Q (mutations__mutation__client_mutation_id = client_mutation_id ))
3031
31- InvoicePaymentQueryMixin ._check_permissions (info .context .user )
32- return gql_optimizer .query (InvoicePayment .objects .filter (* filters ).all (), info )
32+ invoice_payment_qs = InvoicePayment .objects .filter (* filters )
33+
34+ if InvoiceConfig .invoice_user_filter :
35+ invoice_qs = InvoiceConfig .invoice_user_filter (Invoice .objects .all (), info .context .user )
36+ invoice_payment_qs = invoice_payment_qs .filter (invoice__in = invoice_qs )
37+
38+ return gql_optimizer .query (invoice_payment_qs , info )
3339
3440 @staticmethod
3541 def _check_permissions (user ):
3642 if type (user ) is AnonymousUser or not user .id or not user .has_perms (
3743 InvoiceConfig .gql_invoice_payment_search_perms ):
3844 raise PermissionError ("Unauthorized" )
39-
40-
0 commit comments