def register_content(klass, fieldlookup=None): if fieldlookup is None: content_model_fields = [f for f in klass._meta.fields if f.rel is not None and f.name == 'trust'] if len(content_model_fields) != 1: raise AttributeError('Expect "trust" field in model %s.' % short_name) short_name = utils.get_short_model_name(klass) Content._contents[short_name] = fieldlookup if hasattr(klass._meta, 'permission_conditions'): for permcond, func in klass._meta.permission_conditions: Content.register_permission_condition(klass, permcond, func)
def get_permission_condition_func(klass, cond_code): short_name = utils.get_short_model_name(klass) if short_name in Content._conditions: if cond_code in Content._conditions[short_name]: return Content._conditions[short_name][cond_code] return None
def get_content_fieldlookup(klass): short_name = utils.get_short_model_name(klass) if short_name in Content._contents.keys(): return Content._contents[short_name] return None
def is_content_model(klass): short_name = utils.get_short_model_name(klass) if short_name in Content._contents.keys(): return True return False
def register_permission_condition(klass, cond_code, func): short_name = utils.get_short_model_name(klass) if short_name not in Content._conditions: Content._conditions[short_name] = {} Content._conditions[short_name][cond_code] = func