ONES Permission API Document

简介

ONES 所有产品使用相同的权限模型。不同产品权限的增加、修改、查询公用一套接口。想要使用 ONES 权限相关接口,需要了解 ONES 权限设计理念。

  • 上下文
  • 用户域
  • 权限

Context

Context: 即上下文, 在 ONES 系统里,同一个东西,在不同上下文的具体指向是有可能不一样的。比如,同样是“产品经理”这个角色,在项目 A 里指向用户 [U1, U2],但在另外一个项目 B 里指向不同的用户 [U3, U4, U5],那么此时“项目A”和“项目B”就是两个不同的 Context。

UserDomain

UserDomain:用户域,若干用户的集合。

一些用户域相对固定,在整个团队范围内都指向固定的一个或多个用户,比如:

  • single_user:单个用户。
  • everyone:团队内的所有用户。
  • department:指定部门内的用户。
  • team_owner:团队创建者。

一些用户域在不同 Context 下表示的用户不同,比如:

  • 「产品经理」这个角色,在项目 A 里指向用户 [U1, U2],但在另外一个项目 B 里可以指向不同的用户 [U3, U4, U5]。
  • project_assign:项目负责人。不同项目的负责人显然是可以不一样的。

还有一类间接用户域,指向的不是多个确定用户的集合,而是其它用户域的集合,比如:

  • project_administrators:项目管理员。项目管理员的含义是“拥有「管理项目」权限的用户”,而「管理项目」权限本身是可以指向其它用户域的。比如,项目 P 的「管理项目」权限赋给了部门 D,项目角色 R 和 用户 U1,那么项目 P 的项目管理员就是这三个用户域的集合。

Permission

权限在 API 中有两个关键要素:

  • 权限点:定义一个全局唯一的权限,这个权限适用的 UserDomain 类型和 Context 类型,以及需要拥有哪些上游权限才能修改这个权限。
  • 权限规则:描述团队内某个 UserDomain 下的用户,在某个 Context 下拥有某个权限。

results matching ""

    No results matching ""