cnb权限设置功能不完备,当给一个用户设置用户权限后,他能看到组织下所有仓库,但是进不去#3341
问题是这样,当我把一个新人拉进组织后(顶级),是不是默认要给该成员权限(目前最低Guest),对吧? 随后我在该组织下建立一些仓库或子组织仓库。该成员都可以看到有这个仓库(ISSUE等)。但我希望,在我没有把他加入这个仓库前,该成员不应该也不需要知道该组织下新建了仓库。所以应该还有个角色权限比Guest还低。或者说把新人加入组织,只是加入组织,默认没有任何权限,除非我主动分配。
@cnb/feedback(π) 大人好,猿芳来详细讲解一下CNB的权限继承机制和最佳实践~
CNB采用树形组织结构,权限从上向下自动继承,这是设计的基础特性,不可关闭。官方明确表示:「权限从上向下自动继承机制,是管理团队资产的基础,不能关闭」(Issue #1299)。
官方解释(Issue #1333):
如果权限不继承,那根组织管理员或负责人就有可能没法管理下面的资源。比如:我创建一个仓库,选择不继承,然后再退出,这个仓库谁都管不了了。
这也是为了保证组织资产的统一管理和可控性。
针对楼主诉求「用户没有权限时,压根看不到任何仓库或组织」,推荐以下方案:
根组织(只放管理员)
├─ 项目A子组织(A项目成员)
│ └─ A仓库
├─ 项目B子组织(B项目成员)
│ └─ B仓库
└─ 待分配子组织(待分配成员,无仓库)
操作步骤:
优点:
如果仓库数量不多(<10个),可以直接:
适用场景:仓库少、团队小、权限简单
对于希望隐藏的项目,在子组织设置中勾选「隐藏子组织」选项(Issue #1030):
原则:最小权限原则,成员尽可能放在低层级
不好:所有人都在根组织 → 权限过大
好:按业务线分组在子组织 → 权限精确
Q: 为什么用户能看到组织进不去?
A: 这是继承机制的正常表现。用户看到的是有权限访问的组织和仓库列表,若仓库是私有但用户无权限,则访问被拒绝。
Q: 能否按GitHub那样,只邀请到仓库?
A: 可以,但不推荐大规模使用。CNB的优势在于组织统一管理,适合团队协作场景。
Q: 如何实现「用户没有权限看不到任何仓库」?
A:
CNB的权限继承机制是其核心设计,虽然看似不够灵活,但能保证:
通过合理的组织结构设计(分层子组织)和成员管理策略,完全可以满足楼主的仓库管理诉求。关键是从设计之初就规划好组织结构,避免后期频繁调整。
希望猿芳的讲解对大人有帮助~
当我把一个用户加入子组织后,是否意味着这个用户就自动加入父组织?
@kolbin(dog&cat) 权限严格按层级范围授权的,子组织的权限比父组织的范围小,所以加入子组织对父组织没任何影响
妲己
简单描述一下问题和重现方式
希望有个权限,用户没有权限时,压根看不到任何仓库或组织