acl.py 1.0 KB

1234567891011121314151617181920212223242526
  1. from django.utils.translation import ugettext_lazy as _
  2. from django import forms
  3. from misago.acl.builder import BaseACL
  4. from misago.forms import YesNoSwitch
  5. def make_form(request, role, form):
  6. if role.token != 'admin' and request.user.is_god():
  7. form.base_fields['can_use_acp'] = forms.BooleanField(widget=YesNoSwitch,initial=False,required=False)
  8. form.layout.append((
  9. _("Admin Control Panel"),
  10. (('can_use_acp', {'label': _("Can use Admin Control Panel"), 'help_text': _("Change this permission to yes to grant admin access for users with this role.")}),),
  11. ))
  12. class AdminACL(BaseACL):
  13. def is_admin(self):
  14. return self.acl['can_use_acp']
  15. def build(acl, roles):
  16. acl.admin = AdminACL()
  17. acl.admin.acl['can_use_acp'] = False
  18. for role in roles:
  19. if 'can_use_acp' in role and role['can_use_acp'] > acl.admin.acl['can_use_acp']:
  20. acl.admin.acl['can_use_acp'] = role['can_use_acp']