acp.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from django.utils.translation import ugettext_lazy as _
  2. import floppyforms as forms
  3. from misago.acl.builder import BaseACL
  4. from misago.forms import YesNoSwitch
  5. def make_form(request, role, form):
  6. if not role.special and request.user.is_god():
  7. form.base_fields['can_use_acp'] = forms.BooleanField(label=_("Can use Admin Control Panel"),
  8. help_text=_("Change this permission to yes to grant admin access for users with this role."),
  9. widget=YesNoSwitch, initial=False, required=False)
  10. form.fieldsets.append((
  11. _("Admin Control Panel"),
  12. ('can_use_acp',)
  13. ))
  14. class SpecialACL(BaseACL):
  15. def is_admin(self):
  16. return self.acl['can_use_acp']
  17. def build(acl, roles):
  18. acl.acp = SpecialACL()
  19. acl.acp.acl['can_use_acp'] = False
  20. for role in roles:
  21. try:
  22. if role['can_use_acp']:
  23. acl.acp.acl['can_use_acp'] = True
  24. except KeyError:
  25. pass
  26. if acl.acp.acl['can_use_acp']:
  27. acl.team = True