mirror of
https://github.com/kuaifan/dootask.git
synced 2026-07-31 18:35:56 +00:00
52 lines
2.1 KiB
Markdown
52 lines
2.1 KiB
Markdown
---
|
||
id: micro-app.permission.concept
|
||
title: 微应用权限
|
||
type: concept
|
||
feature: micro-app
|
||
scope: end-user
|
||
locale: zh
|
||
aliases:
|
||
- 微应用权限
|
||
- 谁能用微应用
|
||
- 微应用对谁可见
|
||
- 微应用登录态
|
||
- 微应用 SSO
|
||
- 微应用 token
|
||
related_tools: []
|
||
related_pages: [application]
|
||
prerequisites: []
|
||
negative:
|
||
- 没有「整体禁用所有微应用」的开关,按单个插件 / 单条菜单控制
|
||
- 微应用内部的细粒度权限(如「谁能改 OKR」)由插件自身实现,不归 DooTask 主程序管
|
||
- 临时帐号 / 受限身份的功能限制对微应用同样生效(如禁止创建群、禁止文件分享)
|
||
last_verified: v1.7.90
|
||
---
|
||
|
||
# 微应用权限
|
||
|
||
## 定义
|
||
微应用权限分两层:**主程序层**控制谁能看到 / 进入这个微应用;**插件内部**控制进入后能做什么。前者由 DooTask 主程序按用户身份 + 菜单配置过滤,后者由每个插件自行实现。
|
||
|
||
## 主程序层判断
|
||
- **可见范围 visible_to**:菜单注册时声明
|
||
- `all` — 所有成员可见
|
||
- `admin` — 仅系统管理员可见(应用中心走「管理员」分区)
|
||
- **管理员判断**:基于 `userIsAdmin`,对应 `User::isAdmin()`
|
||
- **菜单位置 location**:决定渲染在哪里(应用中心 / 主导航 / 管理员区)
|
||
- **临时帐号限制**:受限身份在主程序的所有限制(禁止创建群、禁止文件分享等)同样作用于微应用调用主程序接口
|
||
|
||
## 登录态传递
|
||
- 微应用通过 URL `?token={user_token}` 拿到当前用户身份
|
||
- 微应用自己再调用 DooTask 后端时携带该 token
|
||
- 后端会校验 token 关联的用户身份,决定是否放行接口
|
||
|
||
## 插件内部权限
|
||
- 由插件自行实现,DooTask 不强制规范
|
||
- 比如 OKR 内部有「目标负责人」「KR 协作者」概念
|
||
- 比如 approve 内部有「审批人」「抄送人」「发起人」概念
|
||
- 主程序对此不做拦截,只负责把用户身份传过去
|
||
|
||
## 与系统应用对比
|
||
- 系统应用走主程序权限体系,由 [[role-permission.permission-denied.faq]] 覆盖
|
||
- 微应用主程序层只控可见性,业务权限由插件自管
|