profiles.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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_name_history = forms.YesNoSwitch(
  14. label=_("Can see other members name history"))
  15. can_see_users_emails = forms.YesNoSwitch(
  16. label=_("Can see members e-mails"))
  17. can_see_users_ips = forms.YesNoSwitch(
  18. label=_("Can see members IPs"))
  19. can_see_hidden_users = forms.YesNoSwitch(
  20. label=_("Can see members that hide their presence"))
  21. def change_permissions_form(role):
  22. if isinstance(role, Role):
  23. return PermissionsForm
  24. else:
  25. return None
  26. """
  27. ACL Builder
  28. """
  29. def build_acl(acl, roles, key_name):
  30. new_acl = {
  31. 'can_search_users': 0,
  32. 'can_see_users_name_history': 0,
  33. 'can_see_users_emails': 0,
  34. 'can_see_users_ips': 0,
  35. 'can_see_hidden_users': 0,
  36. }
  37. new_acl.update(acl)
  38. return algebra.sum_acls(
  39. new_acl, roles=roles, key=key_name,
  40. can_see_users_name_history=algebra.greater,
  41. can_search_users=algebra.greater,
  42. can_see_users_emails=algebra.greater,
  43. can_see_users_ips=algebra.greater,
  44. can_see_hidden_users=algebra.greater
  45. )