from django.utils.translation import ugettext_lazy as _
import floppyforms as forms
from misago.acl.builder import BaseACL
from misago.forms import YesNoSwitch

def make_form(request, role, form):
    if not role.special and request.user.is_god():
        form.base_fields['can_use_acp'] = forms.BooleanField(label=_("Can use Admin Control Panel"),
                                                             help_text=_("Change this permission to yes to grant admin access for users with this role."),
                                                             widget=YesNoSwitch, initial=False, required=False)

        form.fieldsets.append((
                               _("Admin Control Panel"),
                               ('can_use_acp',)
                              ))


class ACPAccessACL(BaseACL):
    def is_admin(self):
        return self.acl['can_use_acp']


def build(acl, roles):
    acl.acp = ACPAccessACL()
    acl.acp.acl['can_use_acp'] = False

    for role in roles:
        try:
            if role['can_use_acp']:
                acl.acp.acl['can_use_acp'] = True
        except KeyError:
            pass

    if acl.acp.acl['can_use_acp']:
        acl.team = True