mirror of
https://github.com/clearml/clearml-server
synced 2025-03-03 18:54:20 +00:00
Fix server unable to create fixed users due to incorrect access to user_data["key"]
This commit is contained in:
parent
ab3dceed92
commit
5e095af3aa
@ -1,5 +1,6 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
import platform
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
from os import getenv
|
from os import getenv
|
||||||
from os.path import expandvars
|
from os.path import expandvars
|
||||||
@ -15,7 +16,7 @@ from pyparsing import (
|
|||||||
|
|
||||||
DEFAULT_EXTRA_CONFIG_PATH = "/opt/trains/config"
|
DEFAULT_EXTRA_CONFIG_PATH = "/opt/trains/config"
|
||||||
EXTRA_CONFIG_PATH_ENV_KEY = "TRAINS_CONFIG_DIR"
|
EXTRA_CONFIG_PATH_ENV_KEY = "TRAINS_CONFIG_DIR"
|
||||||
EXTRA_CONFIG_PATH_SEP = ":"
|
EXTRA_CONFIG_PATH_SEP = ":" if platform.system() != "Windows" else ';'
|
||||||
|
|
||||||
EXTRA_CONFIG_VALUES_ENV_KEY_SEP = "__"
|
EXTRA_CONFIG_VALUES_ENV_KEY_SEP = "__"
|
||||||
EXTRA_CONFIG_VALUES_ENV_KEY_PREFIX = f"TRAINS{EXTRA_CONFIG_VALUES_ENV_KEY_SEP}"
|
EXTRA_CONFIG_VALUES_ENV_KEY_PREFIX = f"TRAINS{EXTRA_CONFIG_VALUES_ENV_KEY_SEP}"
|
||||||
|
@ -10,22 +10,25 @@ from service_repo.auth.fixed_user import FixedUser
|
|||||||
|
|
||||||
|
|
||||||
def _ensure_auth_user(user_data: dict, company_id: str, log: Logger, revoke: bool = False):
|
def _ensure_auth_user(user_data: dict, company_id: str, log: Logger, revoke: bool = False):
|
||||||
ensure_credentials = {"key", "secret"}.issubset(user_data)
|
key, secret = user_data.get("key"), user_data.get("secret")
|
||||||
if ensure_credentials:
|
if not (key and secret):
|
||||||
user = AuthUser.objects(
|
credentials = None
|
||||||
credentials__match=Credentials(
|
else:
|
||||||
key=user_data["key"], secret=user_data["secret"]
|
creds = Credentials(key=key, secret=secret)
|
||||||
)
|
|
||||||
).first()
|
user = AuthUser.objects(credentials__match=creds).first()
|
||||||
if user:
|
if user:
|
||||||
if revoke:
|
if revoke:
|
||||||
user.credentials = []
|
user.credentials = []
|
||||||
user.save()
|
user.save()
|
||||||
return user.id
|
return user.id
|
||||||
|
|
||||||
|
credentials = [] if revoke else [creds]
|
||||||
|
|
||||||
user_id = user_data.get("id", f"__{user_data['name']}__")
|
user_id = user_data.get("id", f"__{user_data['name']}__")
|
||||||
|
|
||||||
log.info(f"Creating user: {user_data['name']}")
|
log.info(f"Creating user: {user_data['name']}")
|
||||||
|
|
||||||
user = AuthUser(
|
user = AuthUser(
|
||||||
id=user_id,
|
id=user_id,
|
||||||
name=user_data["name"],
|
name=user_data["name"],
|
||||||
@ -33,9 +36,7 @@ def _ensure_auth_user(user_data: dict, company_id: str, log: Logger, revoke: boo
|
|||||||
role=user_data["role"],
|
role=user_data["role"],
|
||||||
email=user_data["email"],
|
email=user_data["email"],
|
||||||
created=datetime.utcnow(),
|
created=datetime.utcnow(),
|
||||||
credentials=[Credentials(key=user_data["key"], secret=user_data["secret"])] if not revoke else []
|
credentials=credentials,
|
||||||
if ensure_credentials
|
|
||||||
else None,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
user.save()
|
user.save()
|
||||||
@ -68,12 +69,4 @@ def ensure_fixed_user(user: FixedUser, company_id: str, log: Logger):
|
|||||||
|
|
||||||
_ensure_auth_user(user_data=data, company_id=company_id, log=log)
|
_ensure_auth_user(user_data=data, company_id=company_id, log=log)
|
||||||
|
|
||||||
given_name, _, family_name = user.name.partition(" ")
|
return _ensure_backend_user(user.user_id, company_id, user.name)
|
||||||
|
|
||||||
User(
|
|
||||||
id=user.user_id,
|
|
||||||
company=company_id,
|
|
||||||
name=user.name,
|
|
||||||
given_name=given_name,
|
|
||||||
family_name=family_name,
|
|
||||||
).save()
|
|
||||||
|
Loading…
Reference in New Issue
Block a user