permissions.py 738 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. from django import forms
  2. from django.utils.translation import ugettext_lazy as _
  3. from misago.acl import algebra
  4. from misago.acl.models import Role
  5. from misago.core.forms import YesNoSwitch
  6. """
  7. Admin Permissions Form
  8. """
  9. class PermissionsForm(forms.Form):
  10. legend = _("Search")
  11. can_search = YesNoSwitch(
  12. label=_("Can search site"),
  13. initial=1
  14. )
  15. def change_permissions_form(role):
  16. if isinstance(role, Role):
  17. return PermissionsForm
  18. else:
  19. return None
  20. """
  21. ACL Builder
  22. """
  23. def build_acl(acl, roles, key_name):
  24. new_acl = {
  25. 'can_search': 0
  26. }
  27. new_acl.update(acl)
  28. return algebra.sum_acls(new_acl, roles=roles, key=key_name,
  29. can_search=algebra.greater
  30. )