mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-07-10 23:51:48 +08:00
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
from pydantic import BaseModel, Field
|
|
|
|
from services.enterprise.base import EnterpriseRequest
|
|
|
|
|
|
class WebAppSettings(BaseModel):
|
|
access_mode: str = Field(
|
|
description="Access mode for the web app. Can be 'public' or 'private'",
|
|
default="private",
|
|
alias="accessMode",
|
|
)
|
|
|
|
|
|
class EnterpriseService:
|
|
@classmethod
|
|
def get_info(cls):
|
|
return EnterpriseRequest.send_request("GET", "/info")
|
|
|
|
@classmethod
|
|
def is_user_allowed_to_access_webapp(cls, user_id: str, app_code: str) -> bool:
|
|
params = {"userId": user_id, "appCode": app_code}
|
|
data = EnterpriseRequest.send_request("GET", "/webapp/permission", params=params)
|
|
|
|
return data.get("result", False)
|
|
|
|
@classmethod
|
|
def get_app_access_mode_by_id(cls, app_id: str) -> WebAppSettings:
|
|
if not app_id:
|
|
raise ValueError("app_id must be provided.")
|
|
params = {"appId": app_id}
|
|
data = EnterpriseRequest.send_request("GET", "/webapp/access-mode/id", params=params)
|
|
if not data:
|
|
raise ValueError("No data found.")
|
|
return WebAppSettings(**data)
|
|
|
|
@classmethod
|
|
def get_app_access_mode_by_code(cls, app_code: str) -> WebAppSettings:
|
|
if not app_code:
|
|
raise ValueError("app_code must be provided.")
|
|
params = {"appCode": app_code}
|
|
data = EnterpriseRequest.send_request("GET", "/webapp/access-mode/code", params=params)
|
|
if not data:
|
|
raise ValueError("No data found.")
|
|
return WebAppSettings(**data)
|