Zion页面权限必须基于角色配置,因系统禁用用户粒度直写接口,所有权限通过“角色→权限点”映射实现,确保可追溯、易审计、防散落。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

用函子Zion设置页面权限时,必须基于角色来选,不能直接给用户逐个勾选权限项。Zion的权限模型严格遵循“角色→权限点”映射结构,所有页面级访问控制都通过绑定角色生效,用户只继承其所属角色所携带的权限集合。
为什么必须按角色配置
Zion在初始化阶段就禁用了用户粒度的权限直写接口。当你尝试调用/api/v1/permissions/user/{uid}提交单条权限时,会立即返回405 Method Not Allowed。这是因为Zion将角色视为唯一可配置的权限载体——它把“访客能看首页但不能进后台”“作者能发文章但不能删评论”这类业务约束,全部固化在角色定义里,而非运行时动态拼接。
这种设计避免了权限散落在用户表字段中导致的不可追溯问题。比如某天发现一个子账号能访问未授权的数据看板,你只需查roles表和role_permissions关联表,就能定位到是哪个角色被错误赋予了view_analytics_dashboard权限点,而不是翻遍几百个用户的JSON字段。
创建新角色并分配页面权限
第一步:登录Zion管理后台 → 进入【系统配置】→ 点击【角色管理】→ 点击右上角【新建角色】。
第二步:填写角色标识(如marketing_editor),注意【标识必须全小写、不含空格和特殊字符,否则后续API鉴权会因正则校验失败而跳过该角色】。
第三步:在“页面权限”区域展开树形菜单,勾选该角色需要访问的具体页面节点。Zion默认只展示已注册的路由路径,未在前端router.ts中声明的页面不会出现在列表中。
第四步:点击【保存并发布】。这一步会触发Zion自动同步权限快照至Redis缓存,并向所有接入Zion Hooks的前端实例推送更新事件。未点击发布前,该角色在任何页面都无实际效力。
给用户绑定角色的方法
方法一:后台手动绑定
进入【用户管理】→ 搜索目标用户 → 点击编辑 → 在“角色”下拉框中选择已创建的角色 → 保存。
方法二:通过API批量绑定
调用POST /api/v1/users/{uid}/roles,请求体为["author", "reader"]。注意Zion支持多角色叠加,但【同一用户最多绑定3个角色,超出后接口返回400且不报具体原因,需检查请求体长度】。
方法三:注册时自动分配
在Zion BaaS Skill配置中开启“注册角色默认分配”,并指定一个角色(如reader)。新用户完成邮箱验证后,系统自动为其绑定该角色,无需人工干预。











