修复jcloud的dashboard界面点击设置站点无法打开jingrow新版前端初始化设置页面的问题
This commit is contained in:
parent
1014575ba1
commit
7948d4dcc2
@ -5,8 +5,9 @@ export function loginAsAdmin(siteName) {
|
|||||||
url: 'jcloud.api.site.login',
|
url: 'jcloud.api.site.login',
|
||||||
params: { name: siteName },
|
params: { name: siteName },
|
||||||
onSuccess(data) {
|
onSuccess(data) {
|
||||||
if (data?.sid && data?.site) {
|
// Use the URL returned by backend which includes correct route
|
||||||
window.open(`https://${data.site}/desk?sid=${data.sid}`, '_blank');
|
if (data?.url) {
|
||||||
|
window.open(data.url, '_blank');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
validate() {
|
validate() {
|
||||||
|
|||||||
@ -212,12 +212,10 @@ export default {
|
|||||||
getLoginSid: {
|
getLoginSid: {
|
||||||
method: 'get_login_sid',
|
method: 'get_login_sid',
|
||||||
onSuccess(data) {
|
onSuccess(data) {
|
||||||
const sid = data;
|
// Backend returns complete URL with correct route
|
||||||
const redirectRoute =
|
if (data) {
|
||||||
this.$resources?.saasProduct?.pg?.redirect_to_after_login ??
|
window.open(data, '_blank');
|
||||||
'/desk';
|
}
|
||||||
const loginURL = `https://${this.$resources.siteRequest.pg.domain}${redirectRoute}?sid=${sid}`;
|
|
||||||
window.open(loginURL, '_blank');
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -136,8 +136,9 @@ const loginToSite = createResource({
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
onSuccess(data) {
|
onSuccess(data) {
|
||||||
if (data?.sid && data?.site) {
|
// Backend returns the complete URL with correct route
|
||||||
window.location.href = `https://${data.site}/desk?sid=${data.sid}`;
|
if (data?.url) {
|
||||||
|
window.location.href = data.url;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1538,7 +1538,11 @@ def activate(name):
|
|||||||
@jingrow.whitelist()
|
@jingrow.whitelist()
|
||||||
@protected("Site")
|
@protected("Site")
|
||||||
def login(name, reason=None):
|
def login(name, reason=None):
|
||||||
return {"sid": jingrow.get_pg("Site", name).login(reason), "site": name}
|
site = jingrow.get_pg("Site", name)
|
||||||
|
sid = site.login(reason)
|
||||||
|
# Return correct route based on setup_wizard_complete status
|
||||||
|
route = "/setup-wizard" if not site.setup_wizard_complete else "/app"
|
||||||
|
return {"sid": sid, "site": name, "url": f"https://{site.host_name or name}{route}?sid={sid}"}
|
||||||
|
|
||||||
|
|
||||||
@jingrow.whitelist()
|
@jingrow.whitelist()
|
||||||
|
|||||||
@ -422,12 +422,9 @@ function login_as_admin(site_name, reason = null) {
|
|||||||
})
|
})
|
||||||
.then(
|
.then(
|
||||||
(res) => {
|
(res) => {
|
||||||
console.log(site_name, res.message.sid);
|
// Use the URL returned by backend which includes correct route
|
||||||
if (res) {
|
if (res?.message?.url) {
|
||||||
window.open(
|
window.open(res.message.url, '_blank');
|
||||||
`https://${site_name}/desk?sid=${res.message.sid}`,
|
|
||||||
'_blank',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
(error) => {
|
(error) => {
|
||||||
|
|||||||
@ -1419,7 +1419,9 @@ class Site(Page, TagHelpers):
|
|||||||
@site_action(["Active", "Broken"])
|
@site_action(["Active", "Broken"])
|
||||||
def login_as_admin(self, reason=None):
|
def login_as_admin(self, reason=None):
|
||||||
sid = self.login(reason=reason)
|
sid = self.login(reason=reason)
|
||||||
return f"https://{self.host_name or self.name}/desk?sid={sid}"
|
# Redirect to setup-wizard if setup is not complete
|
||||||
|
route = "/setup-wizard" if not self.setup_wizard_complete else "/app"
|
||||||
|
return f"https://{self.host_name or self.name}{route}?sid={sid}"
|
||||||
|
|
||||||
@dashboard_whitelist()
|
@dashboard_whitelist()
|
||||||
@site_action(["Active"])
|
@site_action(["Active"])
|
||||||
@ -1427,13 +1429,16 @@ class Site(Page, TagHelpers):
|
|||||||
if self.additional_system_user_created:
|
if self.additional_system_user_created:
|
||||||
team_user = jingrow.db.get_value("Team", self.team, "user")
|
team_user = jingrow.db.get_value("Team", self.team, "user")
|
||||||
sid = self.get_login_sid(user=team_user)
|
sid = self.get_login_sid(user=team_user)
|
||||||
if self.standby_for_product:
|
# Redirect to setup-wizard if setup is not complete
|
||||||
|
if not self.setup_wizard_complete:
|
||||||
|
redirect_route = "/setup-wizard"
|
||||||
|
elif self.standby_for_product:
|
||||||
redirect_route = (
|
redirect_route = (
|
||||||
jingrow.db.get_value("Product Trial", self.standby_for_product, "redirect_to_after_login")
|
jingrow.db.get_value("Product Trial", self.standby_for_product, "redirect_to_after_login")
|
||||||
or "/desk"
|
or "/app"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
redirect_route = "/desk"
|
redirect_route = "/app"
|
||||||
return f"https://{self.host_name or self.name}{redirect_route}?sid={sid}"
|
return f"https://{self.host_name or self.name}{redirect_route}?sid={sid}"
|
||||||
|
|
||||||
jingrow.throw("No additional system user created for this site")
|
jingrow.throw("No additional system user created for this site")
|
||||||
@ -1443,13 +1448,16 @@ class Site(Page, TagHelpers):
|
|||||||
def login_as_user(self, user_email, reason=None):
|
def login_as_user(self, user_email, reason=None):
|
||||||
try:
|
try:
|
||||||
sid = self.get_login_sid(user=user_email)
|
sid = self.get_login_sid(user=user_email)
|
||||||
if self.standby_for_product:
|
# Redirect to setup-wizard if setup is not complete
|
||||||
|
if not self.setup_wizard_complete:
|
||||||
|
redirect_route = "/setup-wizard"
|
||||||
|
elif self.standby_for_product:
|
||||||
redirect_route = (
|
redirect_route = (
|
||||||
jingrow.db.get_value("Product Trial", self.standby_for_product, "redirect_to_after_login")
|
jingrow.db.get_value("Product Trial", self.standby_for_product, "redirect_to_after_login")
|
||||||
or "/desk"
|
or "/app"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
redirect_route = "/desk"
|
redirect_route = "/app"
|
||||||
return f"https://{self.host_name or self.name}{redirect_route}?sid={sid}"
|
return f"https://{self.host_name or self.name}{redirect_route}?sid={sid}"
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
jingrow.throw(str(e))
|
jingrow.throw(str(e))
|
||||||
|
|||||||
@ -220,7 +220,7 @@
|
|||||||
"label": "Create Additional System User"
|
"label": "Create Additional System User"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"default": "/desk",
|
"default": "/app",
|
||||||
"fieldname": "redirect_to_after_login",
|
"fieldname": "redirect_to_after_login",
|
||||||
"fieldtype": "Data",
|
"fieldtype": "Data",
|
||||||
"label": "Redirect To After Login",
|
"label": "Redirect To After Login",
|
||||||
|
|||||||
@ -313,11 +313,10 @@ class ProductTrialRequest(Page):
|
|||||||
@dashboard_whitelist()
|
@dashboard_whitelist()
|
||||||
def get_login_sid(self):
|
def get_login_sid(self):
|
||||||
site: Site = jingrow.get_pg("Site", self.site)
|
site: Site = jingrow.get_pg("Site", self.site)
|
||||||
|
# Return complete URL with correct route based on setup_wizard_complete
|
||||||
if site.additional_system_user_created:
|
if site.additional_system_user_created:
|
||||||
email = jingrow.db.get_value("Team", self.team, "user")
|
return site.login_as_team()
|
||||||
return site.get_login_sid(user=email)
|
return site.login_as_admin()
|
||||||
|
|
||||||
return site.get_login_sid()
|
|
||||||
|
|
||||||
|
|
||||||
def get_app_trial_page_url():
|
def get_app_trial_page_url():
|
||||||
|
|||||||
@ -32,6 +32,6 @@ def get_context(context):
|
|||||||
except Exception:
|
except Exception:
|
||||||
log_error("GitHub App Creation Error", code=code, response=response)
|
log_error("GitHub App Creation Error", code=code, response=response)
|
||||||
|
|
||||||
redirect_url = jingrow.utils.get_url("/desk#Form/Jcloud Settings")
|
redirect_url = jingrow.utils.get_url("/app#Form/Jcloud Settings")
|
||||||
jingrow.flags.redirect_location = redirect_url
|
jingrow.flags.redirect_location = redirect_url
|
||||||
raise jingrow.Redirect
|
raise jingrow.Redirect
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user