profiles.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from django.utils.translation import ugettext_lazy as _
  2. from misago.acl import algebra
  3. from misago.acl.models import Role
  4. from misago.core import forms
  5. """
  6. Admin Permissions Form
  7. """
  8. class PermissionsForm(forms.Form):
  9. legend = _("User profiles")
  10. can_search_users = forms.YesNoSwitch(
  11. label=_("Can search user profiles"),
  12. initial=1)
  13. can_see_users_emails = forms.YesNoSwitch(
  14. label=_("Can see members e-mails"))
  15. can_see_users_ips = forms.YesNoSwitch(
  16. label=_("Can see members IPs"))
  17. can_see_hidden_users = forms.YesNoSwitch(
  18. label=_("Can see members that hide their presence"))
  19. def change_permissions_form(role):
  20. if isinstance(role, Role):
  21. return PermissionsForm
  22. else:
  23. return None
  24. """
  25. ACL Builder
  26. """
  27. def build_acl(acl, roles, key_name):
  28. new_acl = {
  29. 'can_search_users': 0,
  30. 'can_see_users_emails': 0,
  31. 'can_see_users_ips': 0,
  32. 'can_see_hidden_users': 0,
  33. }
  34. new_acl.update(acl)
  35. return algebra.sum_acls(
  36. new_acl, roles=roles, key=key_name,
  37. can_search_users=algebra.greater,
  38. can_see_users_emails=algebra.greater,
  39. can_see_users_ips=algebra.greater,
  40. can_see_hidden_users=algebra.greater
  41. )