Skip to content

Commit f71ffdf

Browse files
committed
Merge branch 'main' of github.com:devforth/adminforth into main
2 parents 982354e + af34a6e commit f71ffdf

File tree

6 files changed

+77
-47
lines changed

6 files changed

+77
-47
lines changed

live-demo/app/index.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,17 @@ if (import.meta.url === `file://${process.argv[1]}`) {
210210
if (!await admin.resource('users').get([Filters.EQ('email', DEMO_EMAIL)])) {
211211
await admin.resource('users').create({
212212
email: DEMO_EMAIL,
213-
password_hash: await AdminForth.Utils.generatePasswordHash(DEMO_PASSWORD ),
213+
password_hash: await AdminForth.Utils.generatePasswordHash(DEMO_PASSWORD),
214214
role: 'user', // THE DEMO user role is 'user' not 'superadmin', he can't do any destructive actions
215215
});
216216
}
217+
if (!await admin.resource('users').get([Filters.EQ('email', "admin1@adminfoth.dev")])) {
218+
await admin.resource('users').create({
219+
email: "admin1@adminfoth.dev",
220+
password_hash: await AdminForth.Utils.generatePasswordHash(process.env.ADMIN_PASSWORD),
221+
role: 'superadmin', // THE DEMO user role is 'user' not 'superadmin', he can't do any destructive actions
222+
});
223+
}
217224

218225
await seedDatabase();
219226
});

live-demo/app/resources/apartments.ts

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,46 @@ export default {
4747
showIn: ['list', 'create', 'edit', 'filter', 'show'], // all available options
4848
maxLength: 255, // you can set max length for string fields
4949
minLength: 3, // you can set min length for string fields
50+
},
51+
{
52+
name: 'country',
53+
components: {
54+
list: '@/renderers/CountryFlag.vue'
55+
},
56+
enum: [{
57+
value: 'US',
58+
label: 'United States'
59+
}, {
60+
value: 'DE',
61+
label: 'Germany'
62+
}, {
63+
value: 'FR',
64+
label: 'France'
65+
}, {
66+
value: 'GB',
67+
label: 'United Kingdom'
68+
}, {
69+
value:'NL',
70+
label: 'Netherlands'
71+
}, {
72+
value: 'IT',
73+
label: 'Italy'
74+
}, {
75+
value: 'ES',
76+
label: 'Spain'
77+
}, {
78+
value: 'DK',
79+
label: 'Denmark'
80+
}, {
81+
value: 'PL',
82+
label: 'Poland'
83+
}, {
84+
value: 'UA',
85+
label: 'Ukraine'
86+
}, {
87+
value: null,
88+
label: 'Not defined'
89+
}],
5090
},
5191
{
5292
name: 'apartment_image',
@@ -89,43 +129,6 @@ export default {
89129
sortable: false,
90130
showIn: ['show', 'edit', 'create', 'filter'],
91131
},
92-
{
93-
name: 'country',
94-
enum: [{
95-
value: 'US',
96-
label: 'United States'
97-
}, {
98-
value: 'DE',
99-
label: 'Germany'
100-
}, {
101-
value: 'FR',
102-
label: 'France'
103-
}, {
104-
value: 'GB',
105-
label: 'United Kingdom'
106-
}, {
107-
value:'NL',
108-
label: 'Netherlands'
109-
}, {
110-
value: 'IT',
111-
label: 'Italy'
112-
}, {
113-
value: 'ES',
114-
label: 'Spain'
115-
}, {
116-
value: 'DK',
117-
label: 'Denmark'
118-
}, {
119-
value: 'PL',
120-
label: 'Poland'
121-
}, {
122-
value: 'UA',
123-
label: 'Ukraine'
124-
}, {
125-
value: null,
126-
label: 'Not defined'
127-
}],
128-
},
129132
{
130133
name: 'listed',
131134
required: true, // will be required on create/edit

live-demo/app/resources/translations.ts

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ import CompletionAdapterOpenAIChatGPT from "@adminforth/completion-adapter-open-
44
import I18nPlugin from "@adminforth/i18n";
55
import { v1 as uuid } from "uuid";
66

7+
const blockDemoUsers = async ({ record, adminUser, resource }) => {
8+
if (adminUser.dbUser && adminUser.dbUser.role !== 'superadmin') {
9+
return { ok: false, error: "You can't do this on demo.adminforth.dev" }
10+
}
11+
return { ok: true };
12+
}
713

814
export default {
915
dataSource: "maindb",
@@ -12,6 +18,17 @@ export default {
1218
label: "Translations",
1319

1420
recordLabel: (r: any) => `✍️ ${r.en_string}`,
21+
hooks: {
22+
delete: {
23+
beforeSave: blockDemoUsers,
24+
},
25+
edit: {
26+
beforeSave: blockDemoUsers,
27+
},
28+
create: {
29+
beforeSave: blockDemoUsers,
30+
},
31+
},
1532
plugins: [
1633
new I18nPlugin({
1734
supportedLanguages: ['en', 'uk', 'ja', 'fr'],
@@ -35,19 +52,20 @@ export default {
3552
// will hel to filter out incomplete translations
3653
completedFieldName: 'completedLangs',
3754

38-
completeAdapter: new CompletionAdapterOpenAIChatGPT({
39-
openAiApiKey: process.env.OPENAI_API_KEY as string,
40-
model: 'gpt-4o-mini',
41-
expert: {
42-
// for UI translation it is better to lower down the temperature from default 0.7. Less creative and more accurate
43-
temperature: 0.5,
44-
},
45-
}),
55+
// completeAdapter: new CompletionAdapterOpenAIChatGPT({
56+
// openAiApiKey: process.env.OPENAI_API_KEY as string,
57+
// model: 'gpt-4o-mini',
58+
// expert: {
59+
// // for UI translation it is better to lower down the temperature from default 0.7. Less creative and more accurate
60+
// temperature: 0.5,
61+
// },
62+
// }),
4663
}),
4764

4865
],
4966
options: {
5067
listPageSize: 30,
68+
5169
},
5270
columns: [
5371
{

live-demo/app/undefined

Whitespace-only changes.

live-demo/deploy/.woodpecker.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ steps:
2020
- VAULT_HARBOR_KEY
2121
- VAULT_OPENAI_API_KEY
2222
- VAULT_AWS_ACCESS_KEY_ID
23-
- VAULT_AWS_SECRET_ACCESS_KEY
23+
- VAULT_AWS_SECRET_ACCESS_KEY
24+
- VAULT_ADMIN_PASSWORD

live-demo/deploy/compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ services:
1111
- AWS_ACCESS_KEY_ID=${VAULT_AWS_ACCESS_KEY_ID}
1212
- AWS_SECRET_ACCESS_KEY=${VAULT_AWS_SECRET_ACCESS_KEY}
1313
- DATABASE_FILE_URL=file:./db/live.sqlite
14+
- ADMIN_PASSWORD=${VAULT_ADMIN_PASSWORD}
1415
volumes:
1516
- af-db:/code/db/
1617

0 commit comments

Comments
 (0)