原子草稿
原子有两种状态:草稿
、正常
新建的原子处于草稿
状态,当提交
之后处于正常
状态
状态 | 说明 |
---|---|
草稿 |
只有创建人可以操作,其他人均看不到 |
正常 |
只有分配了相应权限的用户才可以操作相应的指令。创建人始终可以查看自己创建的条目,但是如果没有分配权限,就无法操作修改 、删除 等指令 |
草稿提交
原子从草稿
提交至正常
状态,由系统基本API路由
统一实现,业务模块只需提供业务API路由
进行定制化处理
基本API路由
核心模块a-base
统一封装了草稿
的逻辑,后端路由配置如下:
a-base/backend/src/routes.js
{ method: 'post', path: 'atom/enable', controller: atom },
业务API路由
业务模块只需提供业务API路由
,以便在提交
至正常
状态时做一些特别处理。如模块test-party
的路由配置如下:
src/suite-vendor/test-party/modules/test-party/backend/src/routes.js
{ method: 'post', path: 'party/enable',
controller: party,
middlewares: 'inner',
meta: { auth: { enable: false } }
},
业务逻辑
enable
业务逻辑一般为空。当使用了扩展指令
和原子标记
时,一般在enable
中切换原子标记
值,从而执行下一个扩展指令
src/suite-vendor/test-party/modules/test-party/backend/src/service/party.js
async enable({ atomClass, key, atom, user }) {
// enable
const atomFlag = atom.atomEnabled ? 1 : 0;
// change flag
await this.ctx.meta.atom.flag({
key,
atom: { atomFlag },
user,
});
}
名称 | 说明 |
---|---|
atomClass | 原子所属原子类型 对象 |
key | 原子关键字: { atomId , itemId } |
atom | 原子对象 |
user | 当前用户对象 |
公开访问
默认情况下,在正常
状态下,只有被授予了read
权限的用户才可以read
原子条目。CabloyJS提供了一个简便的特性,使得在正常
状态下,用户不授予权限就可以直接公开访问原子条目
比如实现
新闻公告
功能,设置公开访问
,就可以绕开数据权限
的判断,从而提升数据访问的性能
开启公开访问
只需要一个步骤:
src/suite-vendor/test-party/modules/test-party/backend/src/meta.js
base: {
atoms: {
partyPublic: {
info: {
tableName: 'testPartyPublic',
public: 1,
},
},
},
},
名称 | 说明 |
---|---|
info.public=1 | 开启公开访问 |
评论: