Skip to content
Snippets Groups Projects
rules.py 2.94 KiB
Newer Older
Tom Teichler's avatar
Tom Teichler committed
import rules

from .models.base import Client
from .models.invoice import Invoice, InvoiceGroup

Tom Teichler's avatar
Tom Teichler committed
from aleksis.core.util.predicates import has_person, has_global_perm, has_any_object

Tom Teichler's avatar
Tom Teichler committed
# View clients
view_clients_predicate = has_person & (
    has_global_perm("tezor.view_client") | has_any_object("tezor.view_client", Client)
)
rules.add_perm("tezor.view_clients_rule", view_clients_predicate)

# Edit clients
edit_clients_predicate = has_person & (
    has_global_perm("tezor.edit_client") | has_any_object("tezor.edit_client", Client)
)
rules.add_perm("tezor.edit_clients_rule", edit_clients_predicate)

# Create clients
create_clients_predicate = has_person & (
    has_global_perm("tezor.create_client") | has_any_object("tezor.create_client", Client)
)
rules.add_perm("tezor.create_clients_rule", create_clients_predicate)

# Delete clients
delete_clients_predicate = has_person & (
    has_global_perm("tezor.delete_client") | has_any_object("tezor.delete_client", Client)
)
rules.add_perm("tezor.delete_clients_rule", delete_clients_predicate)

# View invoice groups
view_invoice_groups_predicate = has_person & (
    has_global_perm("tezor.view_invoice_group") | has_any_object("tezor.view_invoice_group", InvoiceGroup)
)
rules.add_perm("tezor.view_invoice_groups_rule", view_invoice_groups_predicate)

# Edit invoice groups
edit_invoice_groups_predicate = has_person & (
    has_global_perm("tezor.edit_invoice_group") | has_any_object("tezor.edit_invoice_group", InvoiceGroup)
)
rules.add_perm("tezor.edit_invoice_groups_rule", edit_invoice_groups_predicate)

# Create invoice groups
create_invoice_groups_predicate = has_person & (
    has_global_perm("tezor.create_invoice_group") | has_any_object("tezor.create_invoice_group", InvoiceGroup)
)
rules.add_perm("tezor.create_invoice_groups_rule", create_invoice_groups_predicate)

# Delete invoice groups
delete_invoice_groups_predicate = has_person & (
    has_global_perm("tezor.delete_invoice_group") | has_any_object("tezor.delete_invoice_group", InvoiceGroup)
)
rules.add_perm("tezor.delete_invoice_groups_rule", delete_invoice_groups_predicate)

# View invoices
view_invoices_predicate = has_person & (
    has_global_perm("tezor.view_invoice") | has_any_object("tezor.view_invoice", Invoice)
)
rules.add_perm("tezor.view_invoices_rule", view_invoices_predicate)

# Edit invoices
edit_invoices_predicate = has_person & (
    has_global_perm("tezor.edit_invoice") | has_any_object("tezor.edit_invoice", Invoice)
)
rules.add_perm("tezor.edit_invoices_rule", edit_invoices_predicate)

# Create invoices
create_invoices_predicate = has_person & (
    has_global_perm("tezor.create_invoice") | has_any_object("tezor.create_invoice", Invoice)
)
rules.add_perm("tezor.create_invoices_rule", create_invoices_predicate)

# Delete invoices
delete_invoices_predicate = has_person & (
    has_global_perm("tezor.delete_invoice") | has_any_object("tezor.delete_invoice", Invoice)
)
rules.add_perm("tezor.delete_invoices_rule", delete_invoices_predicate)