修复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',
|
||||
params: { name: siteName },
|
||||
onSuccess(data) {
|
||||
if (data?.sid && data?.site) {
|
||||
window.open(`https://${data.site}/desk?sid=${data.sid}`, '_blank');
|
||||
// Use the URL returned by backend which includes correct route
|
||||
if (data?.url) {
|
||||
window.open(data.url, '_blank');
|
||||
}
|
||||
},
|
||||
validate() {
|
||||
|
||||
@ -212,12 +212,10 @@ export default {
|
||||
getLoginSid: {
|
||||
method: 'get_login_sid',
|
||||
onSuccess(data) {
|
||||
const sid = data;
|
||||
const redirectRoute =
|
||||
this.$resources?.saasProduct?.pg?.redirect_to_after_login ??
|
||||
'/desk';
|
||||
const loginURL = `https://${this.$resources.siteRequest.pg.domain}${redirectRoute}?sid=${sid}`;
|
||||
window.open(loginURL, '_blank');
|
||||
// Backend returns complete URL with correct route
|
||||
if (data) {
|
||||
window.open(data, '_blank');
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@ -136,8 +136,9 @@ const loginToSite = createResource({
|
||||
};
|
||||
},
|
||||
onSuccess(data) {
|
||||
if (data?.sid && data?.site) {
|
||||
window.location.href = `https://${data.site}/desk?sid=${data.sid}`;
|
||||
// Backend returns the complete URL with correct route
|
||||
if (data?.url) {
|
||||
window.location.href = data.url;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -1538,7 +1538,11 @@ def activate(name):
|
||||
@jingrow.whitelist()
|
||||
@protected("Site")
|
||||
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()
|
||||
|
||||
@ -422,12 +422,9 @@ function login_as_admin(site_name, reason = null) {
|
||||
})
|
||||
.then(
|
||||
(res) => {
|
||||
console.log(site_name, res.message.sid);
|
||||
if (res) {
|
||||
window.open(
|
||||
`https://${site_name}/desk?sid=${res.message.sid}`,
|
||||
'_blank',
|
||||
);
|
||||
// Use the URL returned by backend which includes correct route
|
||||
if (res?.message?.url) {
|
||||
window.open(res.message.url, '_blank');
|
||||
}
|
||||
},
|
||||
(error) => {
|
||||
|
||||
@ -1419,7 +1419,9 @@ class Site(Page, TagHelpers):
|
||||
@site_action(["Active", "Broken"])
|
||||
def login_as_admin(self, reason=None):
|
||||
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()
|
||||
@site_action(["Active"])
|
||||
@ -1427,13 +1429,16 @@ class Site(Page, TagHelpers):
|
||||
if self.additional_system_user_created:
|
||||
team_user = jingrow.db.get_value("Team", self.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 = (
|
||||
jingrow.db.get_value("Product Trial", self.standby_for_product, "redirect_to_after_login")
|
||||
or "/desk"
|
||||
or "/app"
|
||||
)
|
||||
else:
|
||||
redirect_route = "/desk"
|
||||
redirect_route = "/app"
|
||||
return f"https://{self.host_name or self.name}{redirect_route}?sid={sid}"
|
||||
|
||||
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):
|
||||
try:
|
||||
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 = (
|
||||
jingrow.db.get_value("Product Trial", self.standby_for_product, "redirect_to_after_login")
|
||||
or "/desk"
|
||||
or "/app"
|
||||
)
|
||||
else:
|
||||
redirect_route = "/desk"
|
||||
redirect_route = "/app"
|
||||
return f"https://{self.host_name or self.name}{redirect_route}?sid={sid}"
|
||||
except Exception as e:
|
||||
jingrow.throw(str(e))
|
||||
|
||||
@ -220,7 +220,7 @@
|
||||
"label": "Create Additional System User"
|
||||
},
|
||||
{
|
||||
"default": "/desk",
|
||||
"default": "/app",
|
||||
"fieldname": "redirect_to_after_login",
|
||||
"fieldtype": "Data",
|
||||
"label": "Redirect To After Login",
|
||||
|
||||
@ -313,11 +313,10 @@ class ProductTrialRequest(Page):
|
||||
@dashboard_whitelist()
|
||||
def get_login_sid(self):
|
||||
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:
|
||||
email = jingrow.db.get_value("Team", self.team, "user")
|
||||
return site.get_login_sid(user=email)
|
||||
|
||||
return site.get_login_sid()
|
||||
return site.login_as_team()
|
||||
return site.login_as_admin()
|
||||
|
||||
|
||||
def get_app_trial_page_url():
|
||||
|
||||
@ -32,6 +32,6 @@ def get_context(context):
|
||||
except Exception:
|
||||
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
|
||||
raise jingrow.Redirect
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user