更名:conf password可以修改账户名称,因此改名为admin

astrbot conf admin -p xxx
This commit is contained in:
LIghtJUNction
2026-03-21 00:47:14 +08:00
parent 1b92c517e7
commit af77f82c51
5 changed files with 25 additions and 40 deletions

View File

@@ -16,28 +16,15 @@ import zoneinfo
from collections.abc import Callable
from typing import Any
import argon2.exceptions as argon2_exceptions
import click
try:
from argon2 import PasswordHasher
from argon2 import exceptions as argon2_exceptions
_HAS_ARGON2 = True
except Exception:
PasswordHasher = None # type: ignore[assignment]
argon2_exceptions = None # type: ignore[assignment]
_HAS_ARGON2 = False
from argon2 import PasswordHasher
from astrbot.core.config.default import DEFAULT_CONFIG
from astrbot.core.utils.astrbot_path import astrbot_paths
_PASSWORD_HASHER: Any = None
if _HAS_ARGON2 and PasswordHasher is not None:
try:
_PASSWORD_HASHER = PasswordHasher()
except Exception:
_PASSWORD_HASHER = None
_HAS_ARGON2 = False
_PASSWORD_HASHER = PasswordHasher()
PBKDF2_SALT = b"astrbot-dashboard"
PBKDF2_ITER = 200_000
@@ -53,7 +40,7 @@ def hash_dashboard_password_secure(value: str) -> str:
Stored format:
$argon2id$... (if Argon2 available) or pbkdf2_sha256 fallback.
"""
if _HAS_ARGON2 and _PASSWORD_HASHER is not None:
if _PASSWORD_HASHER is not None:
try:
return _PASSWORD_HASHER.hash(value)
except Exception as e:
@@ -77,8 +64,6 @@ def verify_dashboard_password(value: str, stored_hash: str) -> bool:
return False
if stored_hash.startswith("$argon2"):
if not _HAS_ARGON2 or _PASSWORD_HASHER is None:
return False
try:
return _PASSWORD_HASHER.verify(stored_hash, value)
except argon2_exceptions.VerifyMismatchError:
@@ -360,13 +345,13 @@ def get_config(key: str | None = None) -> None:
pass
@conf.command(name="password")
@click.option("-u", "--username", type=str, help="Update dashboard username as well")
@conf.command(name="admin")
@click.option("-u", "--username", type=str, help="Update admain username as well")
@click.option(
"-p",
"--password",
type=str,
help="Set dashboard password directly without interactive prompt",
help="Set admain password directly without interactive prompt",
)
def set_dashboard_password(username: str | None, password: str | None) -> None:
"""

View File

@@ -106,7 +106,7 @@ async def initialize_astrbot(
if admin_password is not None:
raise click.ClickException(
"--admin-password is no longer supported during init. "
"Run 'astrbot conf password' after initialization."
"Run 'astrbot conf admin' after initialization."
)
effective_admin_username = (
@@ -128,7 +128,7 @@ async def initialize_astrbot(
click.echo(f"Configured dashboard admin username: {effective_admin_username}")
click.echo(
"Dashboard password is not initialized for interactive use. "
"Run 'astrbot conf password' before the first login."
"Run 'astrbot conf admin' before the first login."
)
if not backend_only and (
@@ -161,7 +161,7 @@ async def initialize_astrbot(
"-p",
"--admin-password",
type=str,
help="Deprecated. Run `astrbot conf password` after initialization.",
help="Deprecated. Run `astrbot conf admin` after initialization.",
)
@click.option(
"--root",

View File

@@ -2,7 +2,7 @@
"login": "Login",
"username": "Username",
"password": "Password",
"defaultHint": "Default username: astrbot. Run `astrbot conf password` before the first login.",
"defaultHint": "Default username: astrbot. Run `astrbot conf admin` before the first login.",
"logo": {
"title": "AstrBot Dashboard",
"subtitle": "Welcome"

View File

@@ -1,14 +1,14 @@
{
"login": "Вход",
"username": "Имя пользователя",
"password": "Пароль",
"defaultHint": "Имя пользователя по умолчанию: astrbot. Перед первым входом выполните `astrbot conf password`.",
"logo": {
"title": "Панель управления AstrBot",
"subtitle": "Добро пожаловать"
},
"theme": {
"switchToDark": "Перейти на темную тему",
"switchToLight": "Перейти на светлую тему"
}
"login": "Вход",
"username": "Имя пользователя",
"password": "Пароль",
"defaultHint": "Имя пользователя по умолчанию: astrbot. Перед первым входом выполните `astrbot conf admin`.",
"logo": {
"title": "Панель управления AstrBot",
"subtitle": "Добро пожаловать"
},
"theme": {
"switchToDark": "Перейти на темную тему",
"switchToLight": "Перейти на светлую тему"
}
}

View File

@@ -2,7 +2,7 @@
"login": "登录",
"username": "用户名",
"password": "密码",
"defaultHint": "默认账户为astrbot请先执行 `astrbot conf password` 设置密码",
"defaultHint": "默认账户为astrbot请先执行 `astrbot conf admin` 设置密码",
"logo": {
"title": "AstrBot WebUI",
"subtitle": "欢迎使用"