permissions.py 693 B

123456789101112131415161718192021222324252627282930313233343536
  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(label=_("Can search site"), initial=1)
  12. def change_permissions_form(role):
  13. if isinstance(role, Role):
  14. return PermissionsForm
  15. else:
  16. return None
  17. """
  18. ACL Builder
  19. """
  20. def build_acl(acl, roles, key_name):
  21. new_acl = {'can_search': 0}
  22. new_acl.update(acl)
  23. return algebra.sum_acls(new_acl, roles=roles, key=key_name, can_search=algebra.greater)