Fix bit(1) import coercion and subpath login redirect
The WJ import loader coerced MySQL bit(1) columns with bool(), which is always true for the bytes pymysql returns; applications.isinstallable and notifications.isshopfloor imported as 1 for every row. Route both through the existing _truthy_bit helper. The loader also no longer requires the employee source database: without it, notifications keep the bare SSO and the verify stage skips the employee count. Under a subpath mount, the session-expiry interceptor stored the browser path (which includes the mount base) as the login redirect, and the router applied its base again after login. Add stripBase() and store base-free router paths; the login page also strips a stale base from old bookmarked redirects. Also point the external-plugin CI helper at the repo's GitHub URL.
This commit is contained in:
@@ -11,3 +11,15 @@ export function withBase(path) {
|
||||
if (/^([a-z]+:)?\/\//i.test(path) || path.startsWith('data:')) return path
|
||||
return BASE_URL + String(path).replace(/^\//, '')
|
||||
}
|
||||
|
||||
// Inverse of withBase: turn a browser pathname (which includes the mount
|
||||
// base, e.g. '/ops/computers') into a router path ('/computers'). Router
|
||||
// navigation already applies the base; feeding it an un-stripped pathname
|
||||
// double-prefixes ('/ops/ops/...').
|
||||
export function stripBase(path) {
|
||||
if (!path) return path
|
||||
if (BASE_URL !== '/' && path.startsWith(BASE_URL)) {
|
||||
return '/' + path.slice(BASE_URL.length)
|
||||
}
|
||||
return path
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user