from backend_app.utils.__get_user_level import get_user_level from django.conf import settings from shared import OBJ_MODERATION_PERMISSIONS ###################################### ###################################### ## # IF YOU TOUCH THIS FILE, MODIFY IT'S # JS EQUIVALENT (isModerationRequired) ## ###################################### ###################################### def is_moderation_required(model_config, obj_in_db, user, user_level=None): model_moderation_level = model_config["moderation_level"] if user_level is None: user_level = get_user_level(user) key = "enforce_moderation_user_level" if key in model_config.keys() and model_config[key] is not None: if user_level < model_config[key]: return True if model_moderation_level == 0: return False else: # At this point we have to check the obj_moderation_level if obj_in_db is not None: obj_moderation_level = obj_in_db.obj_moderation_level if user_level < obj_moderation_level: return True if model_moderation_level == 1: if settings.MODERATION_ACTIVATED: return not user_level >= OBJ_MODERATION_PERMISSIONS["moderator"] else: return False elif model_moderation_level == 2: return not user_level >= OBJ_MODERATION_PERMISSIONS["moderator"] else: raise Exception("No other moderation level should be defined...")