From 82355e1422c3e1206816084618d7bbdc1bccfc8e Mon Sep 17 00:00:00 2001 From: chenos Date: Sat, 23 Jan 2021 17:09:33 +0800 Subject: [PATCH] fix: scopes --- .../src/hooks/collections-after-create.ts | 14 +----- packages/plugin-pages/src/actions/getView.ts | 5 +-- packages/plugin-permissions/src/server.ts | 43 +++++++------------ 3 files changed, 19 insertions(+), 43 deletions(-) diff --git a/packages/plugin-collections/src/hooks/collections-after-create.ts b/packages/plugin-collections/src/hooks/collections-after-create.ts index 7b39471a0..b6c2ac7d8 100644 --- a/packages/plugin-collections/src/hooks/collections-after-create.ts +++ b/packages/plugin-collections/src/hooks/collections-after-create.ts @@ -73,23 +73,11 @@ const defaultValues = { default: true, }, ], - scopes: [ - { - title: '全部数据', - filter: {}, - }, - { - title: '用户自己的数据', - filter: { - "created_by_id.$currentUser": true, - }, - }, - ], }; export default async function (model: CollectionModel, options: any = {}) { const { migrate = true } = options; - console.log({migrate}) + console.log('plugin-collections hook', {migrate}) if (migrate) { await model.migrate({...options, isNewRecord: true}); } diff --git a/packages/plugin-pages/src/actions/getView.ts b/packages/plugin-pages/src/actions/getView.ts index 19c355099..568e618a2 100644 --- a/packages/plugin-pages/src/actions/getView.ts +++ b/packages/plugin-pages/src/actions/getView.ts @@ -1,6 +1,5 @@ import { Model, ModelCtor, BELONGSTOMANY } from '@nocobase/database'; -import { get, set } from 'lodash'; -import { Op } from 'sequelize'; +import { get, set, isString } from 'lodash'; const transforms = { table: async (fields: Model[], context?: any) => { @@ -50,7 +49,7 @@ const transforms = { field.set('dataSource', dataSource); } const { values } = ctx.action.params; - if (field.get('component.type') === 'filter' && get(values, 'associatedKey')) { + if (field.get('component.type') === 'filter' && get(values, 'associatedKey') && isString(get(values, 'associatedKey'))) { const options = Field.parseApiJson(ctx.state.developerMode ? { filter: { collection_name: get(values, 'associatedKey'), diff --git a/packages/plugin-permissions/src/server.ts b/packages/plugin-permissions/src/server.ts index 2cdfcc2ea..86981a32c 100644 --- a/packages/plugin-permissions/src/server.ts +++ b/packages/plugin-permissions/src/server.ts @@ -34,33 +34,22 @@ export class Permissions { resourcer.registerActionHandler(`roles.collections:${actionName}`, rolesCollectionsActions[actionName]); }); - const defaultScopes = [ - { - title: '全部数据', - filter: {}, - }, - { - title: '用户自己的数据', - filter: { - "created_by_id.$currentUser": true, - }, - }, - ]; - - const Scope = database.getModel('actions_scopes'); - - database.getModel('collections').addHook('afterCreate', async (model, options) => { - // TODO(bug): createScope 存不了 filter 参数 - // for (const scope of defaultScopes) { - // const s = await model.createScope(scope, options); - // console.log(s.toJSON()); - // } - // try { - // await Scope.bulkCreate(defaultScopes.map(scope => ({...scope, collection_name: model.get('name')}))); - // } catch (error) { - // console.error(error); - // throw error; - // } + database.getModel('collections').addHook('afterCreate', async (model: any, options) => { + console.log('plugin-permissions hook'); + await model.updateAssociations({ + scopes: [ + { + title: '全部数据', + filter: {}, + }, + { + title: '用户自己的数据', + filter: { + "created_by_id.$currentUser": true, + }, + }, + ] + }, options); }); database.getModel('users').addHook('afterCreate', async(model, options) => {