/** * This file is part of the NocoBase (R) project. * Copyright (c) 2020-2024 NocoBase Co., Ltd. * Authors: NocoBase Team. * * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ import { DataSourceOptions, SequelizeDataSource } from '@nocobase/data-source-manager'; export class MainDataSource extends SequelizeDataSource { init(options: DataSourceOptions = {}) { const { acl, resourceManager, database } = options; this.acl = acl; this.resourceManager = resourceManager; this.collectionManager = this.createCollectionManager({ collectionManager: { database, collectionsFilter: (collection) => { return collection.options.loadedFromCollectionManager; }, }, }); if (options.useACL !== false) { this.resourceManager.use(this.acl.middleware(), { group: 'acl', after: 'auth' }); } } }