def _get_ids(): if not FixedUser.enabled(): return return { hashlib.md5(f"{user.username}:{user.password}".encode()).hexdigest(): user.user_id for user in FixedUser.from_config() }
def init_mongo_data(): try: empty_dbs = _apply_migrations(log) _ensure_uuid() company_id = _ensure_company(log) _ensure_default_queue(company_id) if empty_dbs and config.get("apiserver.mongo.pre_populate.enabled", False): zip_file = config.get("apiserver.mongo.pre_populate.zip_file") if not zip_file or not Path(zip_file).is_file(): msg = f"Failed pre-populating database: invalid zip file {zip_file}" if config.get("apiserver.mongo.pre_populate.fail_on_error", False): log.error(msg) raise ValueError(msg) else: log.warning(msg) else: user_id = _ensure_backend_user( "__allegroai__", company_id, "Allegro.ai" ) PrePopulate.import_from_zip(zip_file, user_id=user_id) fixed_mode = FixedUser.enabled() for user, credentials in config.get("secure.credentials", {}).items(): user_data = { "name": user, "role": credentials.role, "email": f"{user}@example.com", "key": credentials.user_key, "secret": credentials.user_secret, } revoke = fixed_mode and credentials.get("revoke_in_fixed_mode", False) user_id = _ensure_auth_user(user_data, company_id, log=log, revoke=revoke) if credentials.role == Role.user: _ensure_backend_user(user_id, company_id, credentials.display_name) if fixed_mode: log.info("Fixed users mode is enabled") FixedUser.validate() for user in FixedUser.from_config(): try: ensure_fixed_user(user, company_id, log=log) except Exception as ex: log.error(f"Failed creating fixed user {user.name}: {ex}") except Exception as ex: log.exception("Failed initializing mongodb")
def init_mongo_data(): try: _apply_migrations() _ensure_uuid() company_id = _ensure_company() _ensure_default_queue(company_id) users = [ { "name": "apiserver", "role": Role.system, "email": "*****@*****.**", }, { "name": "webserver", "role": Role.system, "email": "*****@*****.**", }, { "name": "tests", "role": Role.user, "email": "*****@*****.**" }, ] for user in users: credentials = config.get(f"secure.credentials.{user['name']}") user["key"] = credentials.user_key user["secret"] = credentials.user_secret _ensure_auth_user(user, company_id) if FixedUser.enabled(): log.info("Fixed users mode is enabled") FixedUser.validate() for user in FixedUser.from_config(): try: _ensure_user(user, company_id) except Exception as ex: log.error(f"Failed creating fixed user {user.name}: {ex}") except Exception as ex: log.exception("Failed initializing mongodb")
def fixed_users_mode(call: APICall, *_, **__): server_errors = { name: error for name, error in zip( ("missed_es_upgrade", "es_connection_error"), (info.missed_es_upgrade, info.es_connection_error), ) if error } data = { "enabled": FixedUser.enabled(), "guest": { "enabled": FixedUser.guest_enabled() }, "server_errors": server_errors, } guest_user = FixedUser.get_guest_user() if guest_user: data["guest"]["name"] = guest_user.name data["guest"]["username"] = guest_user.username data["guest"]["password"] = guest_user.password call.result.data = data
def init_mongo_data() -> bool: try: empty_dbs = _apply_migrations(log) _ensure_uuid() company_id = _ensure_company(log) _ensure_default_queue(company_id) fixed_mode = FixedUser.enabled() for user, credentials in config.get("secure.credentials", {}).items(): user_data = { "name": user, "role": credentials.role, "email": f"{user}@example.com", "key": credentials.user_key, "secret": credentials.user_secret, } revoke = fixed_mode and credentials.get("revoke_in_fixed_mode", False) user_id = _ensure_auth_user(user_data, company_id, log=log, revoke=revoke) if credentials.role == Role.user: _ensure_backend_user(user_id, company_id, credentials.display_name) if fixed_mode: log.info("Fixed users mode is enabled") FixedUser.validate() for user in FixedUser.from_config(): try: ensure_fixed_user(user, company_id, log=log) except Exception as ex: log.error(f"Failed creating fixed user {user.name}: {ex}") return empty_dbs except Exception as ex: log.exception("Failed initializing mongodb")
def fixed_users_mode(call: APICall, *_, **__): call.result.data = dict(enabled=FixedUser.enabled())
def init_mongo_data(): try: empty_dbs = _apply_migrations(log) _ensure_uuid() company_id = _ensure_company(log) _ensure_default_queue(company_id) if empty_dbs and config.get("apiserver.mongo.pre_populate.enabled", False): zip_file = config.get("apiserver.mongo.pre_populate.zip_file") if not zip_file or not Path(zip_file).is_file(): msg = f"Failed pre-populating database: invalid zip file {zip_file}" if config.get("apiserver.mongo.pre_populate.fail_on_error", False): log.error(msg) raise ValueError(msg) else: log.warning(msg) else: user_id = _ensure_backend_user("__allegroai__", company_id, "Allegro.ai") PrePopulate.import_from_zip(zip_file, user_id=user_id) users = [ { "name": "apiserver", "role": Role.system, "email": "*****@*****.**", }, { "name": "webserver", "role": Role.system, "email": "*****@*****.**", }, { "name": "tests", "role": Role.user, "email": "*****@*****.**" }, ] for user in users: credentials = config.get(f"secure.credentials.{user['name']}") user["key"] = credentials.user_key user["secret"] = credentials.user_secret _ensure_auth_user(user, company_id, log=log) if FixedUser.enabled(): log.info("Fixed users mode is enabled") FixedUser.validate() for user in FixedUser.from_config(): try: ensure_fixed_user(user, company_id, log=log) except Exception as ex: log.error(f"Failed creating fixed user {user.name}: {ex}") except Exception as ex: log.exception("Failed initializing mongodb")