def check_permission(prototype_key, action, default=True): """ Helper function to check access to actions on given prototype. Args: prototype_key (str): The prototype to affect. action (str): One of "spawn" or "edit". default (str): If action is unknown or prototype has no locks Returns: passes (bool): If permission for action is granted or not. """ if action == 'edit': if prototype_key in _MODULE_PROTOTYPES: mod = _MODULE_PROTOTYPE_MODULES.get(prototype_key, "N/A") logger.log_err("{} is a read-only prototype " "(defined as code in {}).".format(prototype_key, mod)) return False prototype = search_prototype(key=prototype_key) if not prototype: logger.log_err("Prototype {} not found.".format(prototype_key)) return False lockstring = prototype.get("prototype_locks") if lockstring: return check_lockstring(None, lockstring, default=default, access_type=action) return default
def check_perm(self, caller, permission): return check_lockstring(caller, f"dummy:perm({permission})")