Skip to content

Commit dcc5097

Browse files
committed
chore: move getLoginPromptHTML to the utils
1 parent 02e683d commit dcc5097

File tree

3 files changed

+22
-16
lines changed

3 files changed

+22
-16
lines changed

adminforth/modules/restApi.ts

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
IAdminForthAndOrFilter,
1414
} from "../types/Back.js";
1515

16-
import { ADMINFORTH_VERSION, listify, md5hash } from './utils.js';
16+
import { ADMINFORTH_VERSION, listify, md5hash, getLoginPromptHTML } from './utils.js';
1717

1818
import AdminForthAuth from "../auth.js";
1919
import { ActionCheckSource, AdminForthConfigMenuItem, AdminForthDataTypes, AdminForthFilterOperators, AdminForthResourceCommon, AdminForthResourcePages,
@@ -210,7 +210,7 @@ export default class AdminForthRestAPI implements IAdminForthRestAPI {
210210
const resource = this.adminforth.config.resources.find((res) => res.resourceId === this.adminforth.config.auth.usersResourceId);
211211
const usernameColumn = resource.columns.find((col) => col.name === usernameField);
212212

213-
let loginPromptHTML = await getLoginPromptHTML(this.adminforth.config.auth.loginPromptHTML);
213+
const loginPromptHTML = await getLoginPromptHTML(this.adminforth.config.auth.loginPromptHTML);
214214

215215
return {
216216
brandName: this.adminforth.config.customization.brandName,
@@ -229,17 +229,6 @@ export default class AdminForthRestAPI implements IAdminForthRestAPI {
229229
},
230230
});
231231

232-
async function getLoginPromptHTML(prompt) {
233-
if(typeof prompt === 'function') {
234-
const result = await prompt();
235-
if(result !== undefined){
236-
return result;
237-
}
238-
return "";
239-
} else {
240-
return prompt;
241-
}
242-
}
243232
server.endpoint({
244233
method: 'GET',
245234
path: '/get_base_config',
@@ -303,7 +292,7 @@ export default class AdminForthRestAPI implements IAdminForthRestAPI {
303292

304293
const announcementBadge: AnnouncementBadgeResponse = this.adminforth.config.customization.announcementBadge?.(adminUser);
305294

306-
let loginPromptHTML = await getLoginPromptHTML(this.adminforth.config.auth.loginPromptHTML);
295+
const loginPromptHTML = await getLoginPromptHTML(this.adminforth.config.auth.loginPromptHTML);
307296

308297

309298
const publicPart = {

adminforth/modules/utils.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { fileURLToPath } from 'url';
33
import fs from 'fs';
44
import Fuse from 'fuse.js';
55
import crypto from 'crypto';
6+
import AdminForth, { AdminForthConfig } from '../index.js';
67
// @ts-ignore-next-line
78

89

@@ -158,6 +159,17 @@ const csscolors = {
158159
}
159160

160161

162+
export async function getLoginPromptHTML(prompt) {
163+
if(typeof prompt === 'function') {
164+
const result = await prompt();
165+
if(result !== undefined){
166+
return result;
167+
}
168+
return "";
169+
} else {
170+
return prompt;
171+
}
172+
}
161173

162174
export function guessLabelFromName(name) {
163175
if (name.includes('_')) {

dev-demo/index.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,12 @@ export const admin = new AdminForth({
7878
loginBackgroundImage: 'https://images.unsplash.com/photo-1534239697798-120952b76f2b?q=80&w=3389&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',
7979
loginBackgroundPosition: '1/2', // over, 3/4, 2/5, 3/5 (tailwind grid)
8080
demoCredentials: "adminforth:adminforth", // never use it for production
81-
loginPromptHTML: "Use email <b>adminforth</b> and password <b>adminforth</b> to login",
81+
loginPromptHTML: async () => {
82+
const adminforthUserExists = await admin.resource("users").count(Filters.EQ('email', 'adminforth')) > 0;
83+
if (adminforthUserExists) {
84+
return "Please use <b>adminforth</b> as username and <b>adminforth</b> as password"
85+
}
86+
},
8287
// loginBackgroundImage: '@@/pho.jpg',
8388
rememberMeDays: 30,
8489
beforeLoginConfirmation: [async ({adminUser, adminforth, extra}) => {
@@ -202,7 +207,7 @@ export const admin = new AdminForth({
202207
},
203208
{
204209
id: 'ch',
205-
url: 'clickhouse://demo:demo@localhost:8125/demo',
210+
url: 'clickhouse://demo:demo@localhost:8124/demo',
206211
},
207212
{
208213
id: 'mysql',

0 commit comments

Comments
 (0)