权限使用
基本权限设置
在 系统设置 -> 权限设置 中进行整个系统权限的管理,权限中的管理员权限是禁止编辑和删除的,可否编辑页面仅控制页面编辑按钮是否显示。
在权限的配置上可以如下进行配置:
- 管理员;
- 用户;
- 开发;
- 测试。
管理员拥有所有页面的访问、编辑、删除权限,可以在每个目录、每个页面设置页面访问权限、页面编辑权限、页面删除权限。
目录的访问权限未配置的时候,整个目录下的页面都不可以访问(不论是否设置页面的访问权限)。
页面编辑权限对应页面的编辑、页面代码对比、菜单配置等。
页面删除权限对应页面的删除,注意:不建议直接删除页面,可以将页面的启用状态置为禁用,删除之后页面代码找不回。
按钮级的权限控制
本框架提供增强型的权限控制,在页面中有注入当前的用户信息和当前用户可否访问/编辑/删除当前页面:
// 当前的用户信息:userInfoStore
{
id: "用户id",
email: "邮箱",
phone: "手机号",
name: "用户昵称 || 邮箱 || 手机号",
header: "头像",
accessId: "权限id",
isAdmin: "是否是管理员"
}
可以在页面中 ${userInfoStore.x}
(x 代表上述中的 key 值) 使用,如果针对某个权限 ${1 === userInfoStore.accessId}
,如果针对某个具体用户功能 ${1 === userInfoStore.id}
。
// 当前用户可否访问/编辑/删除当前页面:pageAccess
{
view: "访问权限",
editor: "编辑权限",
delete: "删除权限"
}
这里的 当前用户可否访问/编辑/删除当前页面 对应的就是编辑页面配置中的 页面访问权限/页面编辑权限/页面删除权限,例如某些删除操作的权限可以和当前页面的删除权限绑定,在删除按钮上设置 'visibleOn': '${pageAccess.delete}'
,如果就可以将页面中的删除权限和页面配置中的页面删除权限绑定,实现权限可配置和可视化,在 系统设置 -> 菜单设置 中可以更加全面的看到。
另外如果删除按钮的接口也需要做对应的权控制的话,可以在后端调接口 https://xxx.xxx.xx/codeApi/getPageInfoApi
(域名为后端接口部署的域名) 获取到页面的基本信息和权限信息:
参数为:{ key: 页面标识,必须输入, userId: 用户ID,可选输入,未输入时默认为当前用户 }
,返回的结果为:
{
id: "页面id",
label: "页面名称",
to: "页面链接",
key: "页面标识",
folder: "页面类型, 0:单页面,1:目录",
accessIds: "页面访问权限,字符串形式 '1,2,3'",
editorAccessIds: "页面编辑权限,字符串形式 '1,2,3'",
deleteAccessIds: "页面删除权限,字符串形式 '1,2,3'",
enable: "页面是否启用,0:禁用,1:启用",
version: "页面版本",
pageAccess: { // 针对某个用户的权限(默认为当前用户)
view: "访问权限",
editor: "编辑权限",
delete: "删除权限"
}
}