From c3891467b13b791260808e76d770d61861fd933a Mon Sep 17 00:00:00 2001 From: luolu Date: Fri, 8 Jul 2022 05:56:54 +0000 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20backend=20logi?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- arkid/core/extension/app_protocol.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/arkid/core/extension/app_protocol.py b/arkid/core/extension/app_protocol.py index dc4095c86..f0394ffa7 100644 --- a/arkid/core/extension/app_protocol.py +++ b/arkid/core/extension/app_protocol.py @@ -1,7 +1,7 @@ from django.views import View from abc import abstractmethod from django.urls import re_path -from arkid.core.models import App +from arkid.core.models import App, Tenant from arkid.settings import LOGIN_URL from django.http import HttpResponseRedirect from arkid.core.extension import Extension @@ -108,16 +108,27 @@ def get_login_url(self, request, alert): next_uri = urllib.parse.quote(full_path) host = get_app_config().get_frontend_host() tenant = request.tenant + # TODO fix default tenant if not tenant: return f'{host}{LOGIN_URL}?tenant_id=&next={next_uri}' + if tenant.is_platform_tenant and tenant.id.hex not in request.get_full_path() and \ + str(tenant.id) not in request.get_full_path(): + return f'{host}{LOGIN_URL}?tenant_id=&next={next_uri}' + token = request.GET.get('token', '') if not token: - if tenant.slug: - host =get_app_config().get_slug_frontend_host(tenant.slug) - return f'{host}{LOGIN_URL}?&next={next_uri}' - else: - return f'{host}{LOGIN_URL}?tenant_id={tenant.id}&next={next_uri}' + tenant_expand = Tenant.expand_objects.get(id=tenant.id) + if tenant_expand.get('login_url'): + return f"{tenant_expand['login_url']}?tenant_id={tenant.id}&next={next_uri}" + backend_host = get_app_config().get_host() + backend_login_url = '/api/v1/login' + return f"{backend_host}{backend_login_url}?tenant_id={tenant.id}&next={next_uri}" + # if tenant.slug: + # host =get_app_config().get_slug_frontend_host(tenant.slug) + # return f'{host}{LOGIN_URL}?&next={next_uri}' + # else: + # return f'{host}{LOGIN_URL}?tenant_id={tenant.id}&next={next_uri}' if tenant.slug: host =get_app_config().get_slug_frontend_host(tenant.slug) From 75bb5aaec856c2164f5e938fedf5572ea152e34a Mon Sep 17 00:00:00 2001 From: luolu Date: Fri, 8 Jul 2022 05:59:25 +0000 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=F0=9F=90=9B=20backend=20login?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- arkid/core/extension/app_protocol.py | 1 - 1 file changed, 1 deletion(-) diff --git a/arkid/core/extension/app_protocol.py b/arkid/core/extension/app_protocol.py index f0394ffa7..d899120b2 100644 --- a/arkid/core/extension/app_protocol.py +++ b/arkid/core/extension/app_protocol.py @@ -108,7 +108,6 @@ def get_login_url(self, request, alert): next_uri = urllib.parse.quote(full_path) host = get_app_config().get_frontend_host() tenant = request.tenant - # TODO fix default tenant if not tenant: return f'{host}{LOGIN_URL}?tenant_id=&next={next_uri}'