12345678910111213141516171819202122232425262728293031323334353637 |
- from django.conf import settings
- from django.utils.importlib import import_module
- from misago.forms import Form
- def build_form(request, role):
- form_type = type('ACLForm', (Form,), dict(layout=[]))
- for provider in settings.PERMISSION_PROVIDERS:
- app_module = import_module(provider)
- try:
- app_module.make_form(request, role, form_type)
- except AttributeError:
- pass
- return form_type
- class BaseACL(object):
- def __init__(self):
- self.acl = {}
- class ACL(object):
- def __init__(self, version):
- self.version = version
- def build_acl(request, roles):
- acl = ACL(request.monitor['acl_version'])
- perms = []
- for role in roles:
- perms.append(role.get_permissions())
- for provider in settings.PERMISSION_PROVIDERS:
- app_module = import_module(provider)
- try:
- app_module.build(acl, perms)
- except AttributeError:
- pass
- return acl
|