外部用户
如果希望用户只能访问某些内部或私有项目,则可以选择创建外部用户。例如,当承包商正在处理特定项目并且应该只能访问该项目时,此功能可能很有用。
外部用户:
- 无法在其个人命名空间中创建项目、子组和代码片段。
- 只能在明确授予访问权限的顶级群组中创建项目(包括分支)、子组和代码片段。
- 只能访问公开项目和他们被明确授予访问权限的项目,从而对他们隐藏所有其他内部或私有项目(类似于注销情况下)。
- 只能访问公开群组和他们被明确授予访问权限的群组,从而对他们隐藏所有其他内部或私有群组(类似于注销情况下)。
- 只能访问公开的代码片段。
可以通过将用户添加为项目或群组的成员来授予访问权限。 外部用户像普通用户一样,他们在项目或群组中获得一个角色,具有权限表中提到的所有能力。 例如,如果将外部用户添加为访客用户,而您的项目是内部或私有的,则他们无权访问代码;如果您希望外部用户可以访问代码,则需要授予他们报告者级别或更高级别的访问权限。您应该始终考虑项目的可见性和权限设置,以及用户的权限级别。
外部用户计入许可证席位。
管理员可以通过以下任一方法将用户标记为外部用户:
- 通过 API。
- 通过 UI:
- 在顶部栏中,选择 主菜单 > 管理员。
- 在左侧边栏中,选择 概览 > 用户,创建新用户或编辑现有用户。在那里,您可以找到将用户标记为外部用户的选项。
此外,可以使用以下方法将用户设置为外部用户:
将新用户设置为外部用户
默认情况下,新用户不会设置为外部用户。管理员可以更改:
- 在顶部栏中,选择 主菜单 > 管理员。
- 在左侧边栏中,选择 设置 > 通用。
- 展开 帐户和限制 部分。
如果您将新用户默认更改为外部用户,则可以选择通过定义一组内部用户来缩小范围。 内部用户字段允许指定电子邮件地址正则表达式,识别默认内部用户。电子邮件地址与正则表达式模式匹配的新用户默认设置为内部,而不是外部协作者。
正则表达式格式在 Ruby 中,但它可转换为 JavaScript,并且设置了忽略大小写标志 (/regex pattern/i
)。示例如下:
- 使用
\.internal@domain\.com$
,将以.internal@domain.com
结尾的电子邮件地址标记为内部地址。 - 使用
^(?:(?!\.ext@domain\.com).)*$\r?
,将电子邮件地址不包括.ext@domain.com
的用户标记为内部用户。
请注意,此正则表达式可能会导致正则表达式拒绝服务(ReDoS)攻击。