refactor: rename 'allow_change_password' to 'allow_modify_login_info' and update related logic across the application

This commit is contained in:
Junyan Qin
2025-12-29 21:14:05 +08:00
parent 863b26c3fa
commit f11e01b549
7 changed files with 24 additions and 11 deletions

View File

@@ -23,8 +23,8 @@ class SystemRouterGroup(group.RouterGroup):
if 'cloud_service_url' in self.ap.instance_config.data.get('plugin', {})
else 'https://space.langbot.app'
),
'allow_change_password': self.ap.instance_config.data.get('system', {}).get(
'allow_change_password', True
'allow_modify_login_info': self.ap.instance_config.data.get('system', {}).get(
'allow_modify_login_info', True
),
}
)

View File

@@ -73,9 +73,11 @@ class UserRouterGroup(group.RouterGroup):
@self.route('/change-password', methods=['POST'], auth_type=group.AuthType.USER_TOKEN)
async def _(user_email: str) -> str:
# Check if password change is allowed
allow_change_password = self.ap.instance_config.data.get('system', {}).get('allow_change_password', True)
if not allow_change_password:
return self.http_status(403, -1, 'Password change is disabled')
allow_modify_login_info = self.ap.instance_config.data.get('system', {}).get(
'allow_modify_login_info', True
)
if not allow_modify_login_info:
return self.http_status(403, -1, 'Modifying login info is disabled')
json_data = await quart.request.json
@@ -199,6 +201,13 @@ class UserRouterGroup(group.RouterGroup):
@self.route('/bind-space', methods=['POST'], auth_type=group.AuthType.NONE)
async def _() -> str:
"""Bind Space account to existing local account"""
# Check if modifying login info is allowed
allow_modify_login_info = self.ap.instance_config.data.get('system', {}).get(
'allow_modify_login_info', True
)
if not allow_modify_login_info:
return self.http_status(403, -1, 'Modifying login info is disabled')
json_data = await quart.request.json
code = json_data.get('code')
state = json_data.get('state') # JWT token passed as state

View File

@@ -26,7 +26,7 @@ class UserService:
space_config = self.ap.instance_config.data.get('space', {})
return {
'url': space_config.get('url', 'https://space.langbot.app'),
'api_url': space_config.get('api_url', 'https://api.langbot.app'),
'models_gateway_api_url': space_config.get('models_gateway_api_url', 'https://api.langbot.cloud'),
'oauth_authorize_url': space_config.get('oauth_authorize_url', 'https://space.langbot.app/auth/authorize'),
}

View File

@@ -16,7 +16,7 @@ proxy:
https: ''
system:
recovery_key: ''
allow_change_password: true
allow_modify_login_info: true
jwt:
expire: 604800
secret: ''
@@ -75,6 +75,6 @@ space:
# Space service URL for OAuth and API
url: 'https://space.langbot.app'
# Space API URL for model requests (MaaS)
api_url: 'https://api.langbot.app'
models_gateway_api_url: 'https://api.langbot.cloud'
# OAuth authorization page URL (user will be redirected here)
oauth_authorize_url: 'https://space.langbot.app/auth/authorize'

View File

@@ -21,6 +21,7 @@ import {
ItemActions,
} from '@/components/ui/item';
import { httpClient } from '@/app/infra/http/HttpClient';
import { systemInfo } from '@/app/infra/http';
import { Loader2, ExternalLink, KeyRound } from 'lucide-react';
import PasswordChangeDialog from '../password-change-dialog/PasswordChangeDialog';
@@ -125,6 +126,7 @@ export default function AccountSettingsDialog({
variant="outline"
size="sm"
onClick={() => setPasswordDialogOpen(true)}
disabled={!systemInfo.allow_modify_login_info}
>
{hasPassword
? t('common.changePassword')
@@ -179,7 +181,9 @@ export default function AccountSettingsDialog({
variant="outline"
size="sm"
onClick={handleBindSpace}
disabled={spaceBindLoading}
disabled={
spaceBindLoading || !systemInfo.allow_modify_login_info
}
>
{spaceBindLoading ? (
<Loader2 className="mr-2 h-4 w-4 animate-spin" />

View File

@@ -241,7 +241,7 @@ export interface ApiRespSystemInfo {
version: string;
cloud_service_url: string;
enable_marketplace: boolean;
allow_change_password: boolean;
allow_modify_login_info: boolean;
}
export interface ApiRespPluginSystemStatus {

View File

@@ -8,7 +8,7 @@ export let systemInfo: ApiRespSystemInfo = {
version: '',
enable_marketplace: true,
cloud_service_url: '',
allow_change_password: true,
allow_modify_login_info: true,
};
/**