diff --git a/api/controllers/console/wraps.py b/api/controllers/console/wraps.py index 360cbd9246..ca122772de 100644 --- a/api/controllers/console/wraps.py +++ b/api/controllers/console/wraps.py @@ -44,6 +44,17 @@ def only_edition_cloud(view): return decorated +def only_edition_enterprise(view): + @wraps(view) + def decorated(*args, **kwargs): + if not dify_config.ENTERPRISE_ENABLED: + abort(404) + + return view(*args, **kwargs) + + return decorated + + def only_edition_self_hosted(view): @wraps(view) def decorated(*args, **kwargs): diff --git a/api/controllers/web/login.py b/api/controllers/web/login.py index 06c2274440..e853bde5d0 100644 --- a/api/controllers/web/login.py +++ b/api/controllers/web/login.py @@ -6,7 +6,8 @@ from werkzeug.exceptions import BadRequest import services from controllers.console.auth.error import EmailCodeError, EmailOrPasswordMismatchError, InvalidEmailError from controllers.console.error import AccountBannedError, AccountNotFound -from controllers.console.wraps import setup_required +from controllers.console.wraps import only_edition_enterprise, setup_required +from controllers.web import api from libs.helper import email from libs.password import valid_password from services.account_service import AccountService @@ -16,6 +17,8 @@ from services.webapp_auth_service import WebAppAuthService class LoginApi(Resource): """Resource for web app email/password login.""" + @setup_required + @only_edition_enterprise def post(self): """Authenticate user and login.""" parser = reqparse.RequestParser() @@ -56,6 +59,7 @@ class LoginApi(Resource): class EmailCodeLoginSendEmailApi(Resource): @setup_required + @only_edition_enterprise def post(self): parser = reqparse.RequestParser() parser.add_argument("email", type=email, required=True, location="json") @@ -78,6 +82,7 @@ class EmailCodeLoginSendEmailApi(Resource): class EmailCodeLoginApi(Resource): @setup_required + @only_edition_enterprise def post(self): parser = reqparse.RequestParser() parser.add_argument("email", type=str, required=True, location="json") @@ -114,7 +119,7 @@ class EmailCodeLoginApi(Resource): return {"result": "success", "token": token} -# api.add_resource(LoginApi, "/login") +api.add_resource(LoginApi, "/login") # api.add_resource(LogoutApi, "/logout") -# api.add_resource(EmailCodeLoginSendEmailApi, "/email-code-login") -# api.add_resource(EmailCodeLoginApi, "/email-code-login/validity") +api.add_resource(EmailCodeLoginSendEmailApi, "/email-code-login") +api.add_resource(EmailCodeLoginApi, "/email-code-login/validity")