shynet/shynet/core/rules.py

26 lines
649 B
Python
Raw Normal View History

2020-04-13 03:30:20 +00:00
import rules
from django.conf import settings
@rules.predicate
def is_service_creator(user):
if settings.ONLY_SUPERUSERS_CREATE:
return user.is_superuser
return True
@rules.predicate
2020-04-14 13:51:34 +00:00
def is_service_owner(user, service):
2020-04-13 03:30:20 +00:00
return service.owner == user
@rules.predicate
2020-04-14 13:51:34 +00:00
def is_service_collaborator(user, service):
return service.collaborators.filter(pk=user.pk).exists()
2020-04-13 03:30:20 +00:00
rules.add_perm("core.view_service", is_service_owner | is_service_collaborator)
rules.add_perm("core.delete_service", is_service_owner)
rules.add_perm("core.change_service", is_service_owner)
rules.add_perm("core.create_service", is_service_creator)