def get_permissions_forms(role, data=None): """ Utility function for building forms in admin """ role_permissions = role.permissions forms = [] for extension, module in providers.list(): try: module.change_permissions_form except AttributeError: message = "'%s' object has no attribute '%s'" raise AttributeError(message % (extension, 'change_permissions_form')) FormType = module.change_permissions_form(role) if FormType: if data: forms.append(FormType(data, prefix=extension)) else: forms.append( FormType(initial=role_permissions.get(extension), prefix=extension)) return forms
def get_permissions_forms(role, data=None): """ Utility function for building forms in admin """ role_permissions = role.permissions forms = [] for extension, module in providers.list(): try: module.change_permissions_form except AttributeError: message = "'%s' object has no attribute '%s'" raise AttributeError( message % (extension, 'change_permissions_form')) FormType = module.change_permissions_form(role) if FormType: if data: forms.append(FormType(data, prefix=extension)) else: forms.append(FormType(initial=role_permissions.get(extension), prefix=extension)) return forms
def build_acl(roles): """ Build ACL for given roles """ acl = {} for extension, module in providers.list(): acl = module.build_acl(acl, roles, extension)
def build_acl(roles): """ Build ACL for given roles """ acl = {} for extension, module in providers.list(): acl = module.build_acl(acl, roles, extension) return acl
def _add_acl_to_target(user, target): """ Add valid ACL to single target, helper for add_acl function """ if isinstance(target, get_user_model()): target.acl_ = {} else: target.acl = {} for extension, module in providers.list(): if hasattr(module, 'add_acl_to_target'): module.add_acl_to_target(user, target)
def build_acl(roles): """ Build ACL for given roles """ acl = {} for extension, module in providers.list(): try: acl = module.build_acl(acl, roles, extension) except AttributeError: message = '%s has to define build_acl function' % extension raise AttributeError(message) return acl