ShortcutsΒΆ
It is trivial to take shortcuts because the rule registry is a simple dict.
You can reuse your rules several times in standard python:
def my_model_or_is_staff(user, rule, model, obj=None):
return user.is_staff or (obj and obj.author == user)
rules_light.registry.setdefault('your_app.your_model.create',
my_model_or_is_staff)
rules_light.registry.setdefault('your_app.your_model.update',
my_model_or_is_staff)
rules_light.registry.setdefault('your_app.your_model.delete',
my_model_or_is_staff)
This module provides some shortcut(s). Shortcuts are also usable as decorators
too (see make_decorator
):
@rules_light.is_authenticated
def my_book(user, rule, book):
return book.author == user
rules_light.registry.setdefault('your_app.your_model.update', my_book)