fix: make app private when created

This commit is contained in:
GareArc 2025-04-10 00:36:35 -04:00
parent cbea30e65f
commit b922c8c215
2 changed files with 28 additions and 3 deletions

View File

@ -12,8 +12,10 @@ from core.agent.entities import AgentToolEntity
from core.app.features.rate_limiting import RateLimit from core.app.features.rate_limiting import RateLimit
from core.errors.error import LLMBadRequestError, ProviderTokenNotInitError from core.errors.error import LLMBadRequestError, ProviderTokenNotInitError
from core.model_manager import ModelManager from core.model_manager import ModelManager
from core.model_runtime.entities.model_entities import ModelPropertyKey, ModelType from core.model_runtime.entities.model_entities import (ModelPropertyKey,
from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel ModelType)
from core.model_runtime.model_providers.__base.large_language_model import \
LargeLanguageModel
from core.tools.tool_manager import ToolManager from core.tools.tool_manager import ToolManager
from core.tools.utils.configuration import ToolParameterConfigurationManager from core.tools.utils.configuration import ToolParameterConfigurationManager
from events.app_event import app_was_created from events.app_event import app_was_created
@ -21,8 +23,11 @@ from extensions.ext_database import db
from models.account import Account from models.account import Account
from models.model import App, AppMode, AppModelConfig from models.model import App, AppMode, AppModelConfig
from models.tools import ApiToolProvider from models.tools import ApiToolProvider
from services.enterprise.enterprise_service import EnterpriseService
from services.feature_service import FeatureService
from services.tag_service import TagService from services.tag_service import TagService
from tasks.remove_app_and_related_data_task import remove_app_and_related_data_task from tasks.remove_app_and_related_data_task import \
remove_app_and_related_data_task
class AppService: class AppService:
@ -152,6 +157,10 @@ class AppService:
app_was_created.send(app, account=account) app_was_created.send(app, account=account)
if FeatureService.get_system_features().webapp_auth.enabled:
# update web app setting as private
EnterpriseService.update_app_access_mode(app.id, "private")
return app return app
def get_app(self, app: App) -> App: def get_app(self, app: App) -> App:

View File

@ -42,3 +42,19 @@ class EnterpriseService:
if not data: if not data:
raise ValueError("No data found.") raise ValueError("No data found.")
return WebAppSettings(**data) return WebAppSettings(**data)
@classmethod
def update_app_access_mode(cls, app_id: str, access_mode: str) -> bool:
if not app_id:
raise ValueError("app_id must be provided.")
if access_mode not in ["public", "private", "private_all"]:
raise ValueError("access_mode must be either 'public', 'private', or 'private_all'")
data = {
"appId": app_id,
"accessMode": access_mode
}
response = EnterpriseRequest.send_request("POST", "/webapp/access-mode", json=data)
return response.get("result", False)