コード例 #1
0
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()
    }
コード例 #2
0
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")
コード例 #3
0
ファイル: init_data.py プロジェクト: fcalvet/trains-server
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")
コード例 #4
0
ファイル: auth.py プロジェクト: yjshen1982/trains-server
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
コード例 #5
0
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")
コード例 #6
0
ファイル: auth.py プロジェクト: shomratalon/trains-server
def fixed_users_mode(call: APICall, *_, **__):
    call.result.data = dict(enabled=FixedUser.enabled())
コード例 #7
0
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")