Skip to content
Snippets Groups Projects

Implement payment backends and interaction

Merged Nik | Klampfradler requested to merge payment-backends into master
1 file
+ 1
1
Compare changes
  • Side-by-side
  • Inline
import rules
from payments import PaymentStatus
from aleksis.core.util.predicates import has_person, has_global_perm, has_any_object, has_object_perm, is_site_preference_set
from .models.base import Client
from .models.invoice import Invoice, InvoiceGroup
from aleksis.core.util.predicates import has_person, has_global_perm, has_any_object, has_object_perm
from .predicates import has_no_payment_variant, is_own_invoice, is_in_payment_status
# View clients
view_clients_predicate = has_person & (
@@ -65,8 +67,25 @@ delete_invoice_groups_predicate = has_person & (
)
rules.add_perm("tezor.delete_invoice_groups_rule", delete_invoice_groups_predicate)
# Display invoice billing information
display_billing_predicate = has_person & (is_own_invoice | has_global_perm("tezor.display_billing") | has_object_perm("tezor.display_billing"))
rules.add_perm("tezor.display_billing_rule", display_billing_predicate)
# Display invoice purchased items
display_purchased_items_predicate = has_person & (is_own_invoice | has_global_perm("tezor.display_purchased_items") | has_object_perm("tezor.display_purchased_items"))
rules.add_perm("tezor.display_purchased_items_rule", display_purchased_items_predicate)
# Change payment variant
change_payment_variant_predicate = has_person & is_in_payment_status(PaymentStatus.WAITING) & ((is_own_invoice & has_no_payment_variant) | has_global_perm("tezor.change_payment_variant") | has_object_perm("tezor.change_payment_variant"))
rules.add_perm("tezor.change_payment_variant", change_payment_variant_predicate)
# Start payment
do_payment_predicate = has_person & (is_in_payment_status(PaymentStatus.WAITING) | is_in_payment_status(PaymentStatus.INPUT) | is_in_payment_status(PaymentStatus.ERROR) | is_in_payment_status(PaymentStatus.REJECTED)) & ((is_own_invoice | is_site_preference_set("payments", "public_payments")) | has_global_perm("tezor.do_payment") | has_object_perm("tezor.do_payment"))
rules.add_perm("tezor.do_payment", do_payment_predicate)
# View invoice
view_invoice_predicate = has_person & (
has_global_perm("tezor.view_invoice") | has_object_perm("tezor.view_invoice")
)
view_invoice_predicate = has_person & is_own_invoice | is_site_preference_set("payments", "public_payments") | has_global_perm("tezor.view_invoice") | has_object_perm("tezor.view_invoice")
rules.add_perm("tezor.view_invoice_rule", view_invoice_predicate)
print_invoice_predicate = (view_invoice_predicate & display_billing_predicate & display_purchased_items_predicate)
rules.add_perm("tezor.print_invoice_rule", print_invoice_predicate)
Loading