feat: system settings
This commit is contained in:
parent
551b9ce45d
commit
9fd41ab33e
7
packages/plugin-system-settings/.npmignore
Normal file
7
packages/plugin-system-settings/.npmignore
Normal file
@ -0,0 +1,7 @@
|
||||
node_modules
|
||||
*.log
|
||||
docs
|
||||
__tests__
|
||||
tsconfig.json
|
||||
src
|
||||
.fatherrc.ts
|
15
packages/plugin-system-settings/package.json
Normal file
15
packages/plugin-system-settings/package.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "@nocobase/plugin-system-settings",
|
||||
"version": "0.4.0-alpha.7",
|
||||
"main": "lib/index.js",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@nocobase/database": "^0.4.0-alpha.7",
|
||||
"@nocobase/resourcer": "^0.4.0-alpha.7",
|
||||
"@nocobase/server": "^0.4.0-alpha.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nocobase/actions": "^0.4.0-alpha.7"
|
||||
},
|
||||
"gitHead": "f0b335ac30f29f25c95d7d137655fa64d8d67f1e"
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
import { TableOptions } from '@nocobase/database';
|
||||
|
||||
export default {
|
||||
name: 'system_settings',
|
||||
fields: [
|
||||
{
|
||||
type: 'string',
|
||||
name: 'title',
|
||||
},
|
||||
{
|
||||
type: 'belongsTo',
|
||||
name: 'logo',
|
||||
target: 'attachments',
|
||||
},
|
||||
],
|
||||
} as TableOptions;
|
26
packages/plugin-system-settings/src/server.ts
Normal file
26
packages/plugin-system-settings/src/server.ts
Normal file
@ -0,0 +1,26 @@
|
||||
import path from 'path';
|
||||
import { Application } from '@nocobase/server';
|
||||
|
||||
export default async function (this: Application, options = {}) {
|
||||
const database = this.database;
|
||||
const resourcer = this.resourcer;
|
||||
|
||||
database.import({
|
||||
directory: path.resolve(__dirname, 'collections'),
|
||||
});
|
||||
|
||||
resourcer.use(async (ctx, next) => {
|
||||
const { actionName, resourceName, resourceKey } = ctx.action.params;
|
||||
if (resourceName === 'system_settings' && actionName === 'get') {
|
||||
const SystemSetting = database.getModel('system_settings');
|
||||
let model = await SystemSetting.findOne();
|
||||
if (!model) {
|
||||
model = await SystemSetting.create();
|
||||
}
|
||||
ctx.action.mergeParams({
|
||||
resourceKey: model.id,
|
||||
});
|
||||
}
|
||||
await next();
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user