Skip to content
Snippets Groups Projects
rules.py 2.66 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)

Tom Teichler's avatar
Tom Teichler committed
# View client
view_client_predicate = has_person & (
    has_global_perm("tezor.view_client") | has_object_perm("tezor.view_client")
)
rules.add_perm("tezor.view_client_rule", view_client_predicate)

Tom Teichler's avatar
Tom Teichler committed
# Edit clients
Tom Teichler's avatar
Tom Teichler committed
edit_client_predicate = has_person & (
    has_global_perm("tezor.edit_client") | has_object_perm("tezor.edit_client")
Tom Teichler's avatar
Tom Teichler committed
)
Tom Teichler's avatar
Tom Teichler committed
rules.add_perm("tezor.edit_client_rule", edit_clients_predicate)
Tom Teichler's avatar
Tom Teichler committed

# Create clients
create_client_predicate = has_person & (
Tom Teichler's avatar
Tom Teichler committed
    has_global_perm("tezor.create_client") | has_any_object("tezor.create_client", Client)
)
rules.add_perm("tezor.create_client_rule", create_client_predicate)
Tom Teichler's avatar
Tom Teichler committed

# Delete clients
Tom Teichler's avatar
Tom Teichler committed
delete_client_predicate = has_person & (
    has_global_perm("tezor.delete_client") | has_object_perm("tezor.delete_client")
Tom Teichler's avatar
Tom Teichler committed
)
Tom Teichler's avatar
Tom Teichler committed
rules.add_perm("tezor.delete_client_rule", delete_client_predicate)
Tom Teichler's avatar
Tom Teichler committed

# 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)

Tom Teichler's avatar
Tom Teichler committed
# View invoice_group
view_invoice_group_predicate = has_person & (
    has_global_perm("tezor.view_invoice_group") | has_object_perm("tezor.view_invoice_group")
)
rules.add_perm("tezor.view_invoice_group_rule", view_invoice_group_predicate)

Tom Teichler's avatar
Tom Teichler committed
# Edit invoice groups
Tom Teichler's avatar
Tom Teichler committed
edit_invoice_group_predicate = has_person & (
    has_global_perm("tezor.edit_invoice_group") | has_object_perm("tezor.edit_invoice_group")
Tom Teichler's avatar
Tom Teichler committed
)
Tom Teichler's avatar
Tom Teichler committed
rules.add_perm("tezor.edit_invoice_group_rule", edit_invoice_group_predicate)
Tom Teichler's avatar
Tom Teichler committed

# 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)

Tom Teichler's avatar
Tom Teichler committed
# View invoice
view_invoice_predicate = has_person & (
    has_global_perm("tezor.view_invoice") | has_object_perm("tezor.view_invoice")
Tom Teichler's avatar
Tom Teichler committed
)
Tom Teichler's avatar
Tom Teichler committed
rules.add_perm("tezor.view_invoice_rule", view_invoice_predicate)