REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 4.41 KB
Close
//proc/thread-self/root/home/byroehnu/.trash/node_modules11/@adminjs/express/lib/authentication/login.handler.js
Text
Base64
import { INVALID_AUTH_CONFIG_ERROR, WrongArgumentError } from "../errors.js"; const getLoginPath = (admin) => { const { loginPath, rootPath } = admin.options; // since we are inside already namespaced router we have to replace login and logout routes that // they don't have rootUrl inside. So changing /admin/login to just /login. // but there is a case where user gives / as a root url and /login becomes `login`. We have to // fix it by adding / in front of the route const normalizedLoginPath = loginPath.replace(rootPath, ""); return normalizedLoginPath.startsWith("/") ? normalizedLoginPath : `/${normalizedLoginPath}`; }; class Retry { constructor(ip) { this.retriesCount = 0; const existing = Retry.retriesContainer.get(ip); if (existing) { return existing; } Retry.retriesContainer.set(ip, this); } canLogin(maxRetries) { if (maxRetries === undefined) { return true; } else if (typeof maxRetries === "number") { maxRetries = { count: maxRetries, duration: 60, }; } else if (maxRetries.count <= 0) { return true; } if (!this.lastRetry || new Date().getTime() - this.lastRetry.getTime() > maxRetries.duration * 1000) { this.lastRetry = new Date(); this.retriesCount = 1; return true; } else { this.lastRetry = new Date(); this.retriesCount++; return this.retriesCount <= maxRetries.count; } } } Retry.retriesContainer = new Map(); export const withLogin = (router, admin, auth) => { var _a, _b; const { rootPath } = admin.options; const loginPath = getLoginPath(admin); const { provider } = auth; const providerProps = (_b = (_a = provider === null || provider === void 0 ? void 0 : provider.getUiProps) === null || _a === void 0 ? void 0 : _a.call(provider)) !== null && _b !== void 0 ? _b : {}; router.get(loginPath, async (req, res) => { const baseProps = { action: admin.options.loginPath, errorMessage: null, }; const login = await admin.renderLogin(Object.assign(Object.assign({}, baseProps), providerProps)); return res.send(login); }); router.post(loginPath, async (req, res, next) => { var _a; if (!new Retry(req.ip).canLogin(auth.maxRetries)) { const login = await admin.renderLogin(Object.assign({ action: admin.options.loginPath, errorMessage: "tooManyRequests" }, providerProps)); return res.send(login); } const context = { req, res }; let adminUser; try { if (provider) { adminUser = await provider.handleLogin({ headers: req.headers, query: req.query, params: req.params, data: (_a = req.fields) !== null && _a !== void 0 ? _a : {}, }, context); } else if (auth.authenticate) { const { email, password } = req.fields; // "auth.authenticate" must always be defined if "auth.provider" isn't adminUser = await auth.authenticate(email, password, context); } else { throw new WrongArgumentError(INVALID_AUTH_CONFIG_ERROR); } } catch (error) { const errorMessage = error.message || error.error || "invalidCredentials"; const loginPage = await admin.renderLogin(Object.assign({ action: admin.options.loginPath, errorMessage }, providerProps)); return res.status(400).send(loginPage); } if (adminUser) { req.session.adminUser = adminUser; req.session.save((err) => { if (err) { return next(err); } if (req.session.redirectTo) { return res.redirect(302, req.session.redirectTo); } else { return res.redirect(302, rootPath); } }); } else { const login = await admin.renderLogin(Object.assign({ action: admin.options.loginPath, errorMessage: "invalidCredentials" }, providerProps)); return res.send(login); } }); };
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 8
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
login.handler.d.ts
226 B
lrw-r--r--
2026-02-28 00:29:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
login.handler.js
4.41 KB
lrw-r--r--
2026-02-28 00:28:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
logout.handler.d.ts
222 B
lrw-r--r--
2026-02-28 00:29:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
logout.handler.js
838 B
lrw-r--r--
2026-02-28 00:28:14
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
protected-routes.handler.d.ts
156 B
lrw-r--r--
2026-02-28 00:29:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
protected-routes.handler.js
372 B
lrw-r--r--
2026-02-28 00:28:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
refresh.handler.d.ts
223 B
lrw-r--r--
2026-02-28 00:29:10
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
refresh.handler.js
1.45 KB
lrw-r--r--
2026-02-28 00:28:22
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).