refactor: enhance user context handling and update template mappings
This commit is contained in:
@@ -93,10 +93,12 @@ _SESSION_KEY_PARTS_MIN = SESSION_KEY_PARTS_MIN
|
||||
|
||||
MAIN_TEMPLATE_MAP = {
|
||||
"AGENTS.md": "BOARD_AGENTS.md.j2",
|
||||
"IDENTITY.md": "BOARD_IDENTITY.md.j2",
|
||||
"SOUL.md": "BOARD_SOUL.md.j2",
|
||||
"MEMORY.md": "BOARD_MEMORY.md.j2",
|
||||
"HEARTBEAT.md": "BOARD_HEARTBEAT.md.j2",
|
||||
"USER.md": "MAIN_USER.md",
|
||||
"TOOLS.md": "MAIN_TOOLS.md",
|
||||
"USER.md": "BOARD_USER.md.j2",
|
||||
"TOOLS.md": "BOARD_TOOLS.md.j2",
|
||||
}
|
||||
|
||||
BOARD_SHARED_TEMPLATE_MAP = {
|
||||
|
||||
@@ -161,16 +161,41 @@ def _workspace_path(agent: Agent, workspace_root: str) -> str:
|
||||
return f"{root}/workspace-{slugify(key)}"
|
||||
|
||||
|
||||
def _email_local_part(email: str) -> str:
|
||||
normalized = email.strip()
|
||||
if not normalized:
|
||||
return ""
|
||||
local, _sep, _domain = normalized.partition("@")
|
||||
return local.strip() or normalized
|
||||
|
||||
|
||||
def _display_name(user: User | None) -> str:
|
||||
if user is None:
|
||||
return ""
|
||||
name = (user.name or "").strip()
|
||||
if name:
|
||||
return name
|
||||
return (user.email or "").strip()
|
||||
|
||||
|
||||
def _preferred_name(user: User | None) -> str:
|
||||
preferred_name = (user.preferred_name or "") if user else ""
|
||||
if preferred_name:
|
||||
preferred_name = preferred_name.strip().split()[0]
|
||||
return preferred_name
|
||||
if preferred_name:
|
||||
return preferred_name
|
||||
display_name = _display_name(user)
|
||||
if display_name:
|
||||
if "@" in display_name:
|
||||
return _email_local_part(display_name)
|
||||
return display_name.split()[0]
|
||||
email = (user.email or "") if user else ""
|
||||
return _email_local_part(email)
|
||||
|
||||
|
||||
def _user_context(user: User | None) -> dict[str, str]:
|
||||
return {
|
||||
"user_name": (user.name or "") if user else "",
|
||||
"user_name": _display_name(user),
|
||||
"user_preferred_name": _preferred_name(user),
|
||||
"user_pronouns": (user.pronouns or "") if user else "",
|
||||
"user_timezone": (user.timezone or "") if user else "",
|
||||
|
||||
@@ -252,9 +252,25 @@ class OpenClawProvisioningService(OpenClawDBService):
|
||||
reset_sessions=options.reset_sessions,
|
||||
rotate_tokens=options.rotate_tokens,
|
||||
force_bootstrap=options.force_bootstrap,
|
||||
overwrite=options.overwrite,
|
||||
board_id=options.board_id,
|
||||
)
|
||||
|
||||
if template_user is None:
|
||||
result = _base_result(
|
||||
gateway,
|
||||
include_main=options.include_main,
|
||||
reset_sessions=options.reset_sessions,
|
||||
)
|
||||
_append_sync_error(
|
||||
result,
|
||||
message=(
|
||||
"Organization owner not found (required for gateway template USER.md "
|
||||
"rendering)."
|
||||
),
|
||||
)
|
||||
return result
|
||||
|
||||
result = _base_result(
|
||||
gateway,
|
||||
include_main=options.include_main,
|
||||
|
||||
Reference in New Issue
Block a user