控制用户访问
如果您是极狐GitLab 私有化部署实例的管理员,您有多种选项来控制和审核用户访问。
等待批准的用户
处于待批准状态的用户需要管理员采取行动。管理员已启用以下任何选项时,用户注册可能处于待批准状态:
- 新注册需要管理员批准
- 用户上限
- 阻止自动创建的用户 (OmniAuth)
- 阻止自动创建的用户 (LDAP)
当用户在启用此设置的情况下注册账户时:
- 用户处于待批准状态。
- 用户会看到一条消息,告诉他们他们的账户正在等待管理员的批准。
待批准的用户:
- 在功能上与已禁用的用户相同。
- 无法登录。
- 无法访问 Git 仓库或极狐GitLab API。
- 无法收到来自极狐GitLab 的任何通知。
- 不消耗订阅席位。
管理员必须批准他们的注册,系统才能允许他们登录。
查看等待批准的用户注册
- 通过状态过滤用户的能力引入于极狐GitLab 17.0。
要查看待批准的用户注册:
- 在导航栏左侧,底部,选择 管理员。
- 选择 概览 > 用户。
- 在搜索框中,通过 State=Pending approval 过滤并点击 Enter。
批准或拒绝用户注册
- 通过状态过滤用户的能力引入于极狐GitLab 17.0。
可以从管理中心批准或拒绝等待批准的用户注册。
要批准或拒绝用户注册:
- 在导航栏左侧,底部,选择 管理员。
- 选择 概览 > 用户。
- 选择 等待批准 选项卡。
- 在搜索框中,通过 State=Pending approval 过滤并点击 Enter。
- 对于您想批准或拒绝的用户,选择垂直省略号 (),然后 审核 或 拒绝。
批准用户:
- 激活了他们的账户。
- 将用户的状态更改为激活。
- 消耗订阅席位。
拒绝用户:
- 阻止用户登录或访问实例信息。
- 删除用户。
查看等待角色晋升的用户
如果打开了管理员审批角色晋升,将现有用户提升到可计费角色的成员资格申请需要管理员批准。
要查看等待角色晋升的用户:
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 选择 角色晋升。
您就会看到一份所请求的角色等级最高的用户列表。您可以 审批 或 拒绝 请求。
阻塞和取消阻塞用户
极狐GitLab 管理员可以禁用和取消阻塞用户。当您不想让用户访问极狐GitLab 实例却有想要保留他们的数据时,可以禁止此用户。
被阻止的用户:
禁用用户
先决条件:
- 您必须是极狐GitLab 实例的管理员。
您可以阻塞用户访问实例。
要阻塞用户:
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 对于您想要阻塞的用户,选择垂直省略号 (),然后 阻塞。
用户会接收到通知邮件,告知他们的账号已被阻塞。此邮件之后,他们就不会再收到通知。
要举报其他用户的滥用,请参阅举报滥用。在 管理员 区域上查看滥用报告的更多详情,可以查看解决滥用报告。
取消阻塞用户
可以在管理中心取消阻塞被阻塞的用户。操作步骤:
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 在搜索框中,通过 State=Blocked 过滤并点击 Enter。
- 对于您想要取消阻塞的用户,选择垂直省略号 (),然后 取消阻塞。
用户的状态设置为激活,他们消耗席位。
LDAP 用户可能无法使用取消禁用选项。要启用取消禁用选项,首先需要删除 LDAP 身份:
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 在搜索框中,通过 State=Blocked 过滤并点击 Enter。
- 选择用户。
- 选择 身份 选项卡。
- 找到 LDAP provider 并选择删除。
激活和停用用户
极狐GitLab 管理员可以停用和激活用户。如果用户近期不再有活动,而且您也不想让他们占用实例的席位,则您应该将他们停用。
被停用的用户:
- 可以登录极狐GitLab。
- 如果被停用的用户登录后,他们会自动变为激活状态。
- 无法访问仓库或 API。
- 无法使用 slash 命令。更多信息,可以查看slash 命令。
- 不占用席位。更多详情,可以查看付费用户。
当您停用用户时,他们的项目、群组和历史会被保留。
停用用户
先决条件:
- 用户在过去 90 天内没有任何活动。
要想从极狐GitLab 私有化部署实例停用用户:
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 对于您想要停用的用户,选择垂直省略号 (),然后 停用。
- 在对话框中,选择 停用。
用户账号被停用后,用户会收到邮件通知。在此邮件后,他们就不再会接收到通知。更多详情,查看用户停用邮件。
要用极狐GitLab API 停用用户,请参阅停用用户。有关永久限制用户的详情,可以查看阻塞和非阻塞用户
要从 JihuLab.com 订阅中移除用户,查看从您的订阅中移除用户。
自动冻结休眠用户
- 可自定义的时长引入于 15.4 版本。
- 非活动期的下限设置为 90 天,引入于 15.5 版本。
管理员可以启用自动冻结在过去 90 天内未登录或没有活动的如下用户:
- 超过一星期前创建,尚未登录。
- 在指定的时间段内没有活动(默认为 90 天)。
操作步骤:
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 展开 账号和限制 部分。
- 在 休眠用户 下,检查 在一段不活跃期之后停用休眠用户。
- 在 非活跃之前不活动的天数,输入非活动之前的天数。最小值为 90 天。
- 选择 保存更改。
启用此功能后,极狐GitLab 每天运行一次作业,冻结休眠用户。
每天最多可以冻结 100,000 个用户。
自动删除未确认的用户
- 引入于 16.1 版本,功能标志为
delete_unconfirmed_users_setting
。默认禁用。- 默认启用于 16.2 版本。
先决条件:
- 您必须是管理员。
您可以启用自动删除同时满足以下条件的用户:
- 从未确认过他们的电子邮件地址。
- 过去注册极狐GitLab 的时间超过指定天数。
您可以使用设置 API,或在 Rails 控制台中配置以下设置:
Gitlab::CurrentSettings.update(delete_unconfirmed_users: true)
Gitlab::CurrentSettings.update(unconfirmed_users_delete_after_days: 365)
当启用 delete_unconfirmed_users
设置时,极狐GitLab 每小时运行一次作业来删除未确认的用户。
该作业仅删除过去注册超过 unconfirmed_users_delete_after_days
天的用户。
此作业仅在 email_confirmation_setting
设置为 soft
或 hard
时运行。
每天最多可以删除 240,000 个用户。
激活用户
- 通过状态过滤用户的能力引入于极狐GitLab 17.0。
可以在管理中心激活已冻结的用户。
操作步骤:
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 在搜索框中,通过 State=Deactivated 过滤并点击 Enter。
- 对于您想激活的用户,选择 (),然后找到 激活用户。
用户的状态设置为激活,他们使用订阅席位。
封禁和解禁用户
极狐GitLab 管理员可以封禁和解禁用户。被封禁的用户处于禁用状态,他们的项目、议题、合并请求和评论被隐藏。
被禁止的用户:
封禁用户
要禁用用户并隐藏他们的贡献,管理员可以封禁该用户。
可以在管理中心禁止用户。操作步骤:
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 到您想要禁止的用户旁,选择 ()。
- 在下拉菜单中,选择 禁止用户。
解禁用户
- 通过状态过滤用户的能力引入于极狐GitLab 17.0。
可以在管理中心解禁被封禁的用户。操作步骤:
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 在搜索框中,通过 State=Banned 过滤并点击 Enter。
- 到您想要禁止的用户旁,选择 ()。
- 在下拉菜单中,选择 解禁用户。
用户的状态设置为激活,他们消耗订阅席位。
删除用户
使用管理中心删除用户。
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 对于您想要删除的用户,选择 (),然后找到 删除用户。
- 输入用户名。
- 选择 删除用户。
您还可以删除用户及其贡献,例如合并请求、议题,和他们是唯一群组所有者的群组。
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 对于您想要删除的用户,选择 (),然后找到 删除用户和贡献。
- 输入用户名。
- 选择 删除用户和贡献。
信任和不信任用户
- 引入于极狐GitLab 16.5。
- 通过状态过滤用户的能力引入于极狐GitLab 17.0。
您可以从 管理员 区域来信任和不信任用户。
默认情况下,一个不受信任的用户会被阻止创建议题、注释和代码片段。当您信任用户时,他们可以创建议题、注释和代码片段。
先决条件:
- 您必须是管理员。
::Tabs
:::TabTitle 信任用户
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 选择用户。
- 从 用户管理员 下拉菜单中,选择 信任用户。
- 在确认对话框中,选择 信任用户。
用户就成为受信任用户。
:::TabTitle 非信任用户
- 在左侧导航栏,底部,选择 管理员。
- 选择 概览 > 用户。
- 在搜索框中,通过 State=Trusted 过滤并点击 Enter。
- 选择用户。
- 从 用户管理员 下拉菜单中,选择 不信任用户。
- 在确认对话框中,选择 不信任用户。
用户就成为不受信任用户。
::EndTabs
故障排除
修改用户时,您可能需要根据特定条件对他们执行批量操作。以下 Rails 控制台脚本显示了一些示例。您可以启动 Rails 控制台会话,并使用类似于以下内容的脚本:
停用最近没有活动的用户
管理员可以停用最近没有活动的用户。
days_inactive = 90
inactive_users = User.active.where("last_activity_on <= ?", days_inactive.days.ago)
inactive_users.each do |user|
puts "user '#{user.username}': #{user.last_activity_on}"
user.deactivate!
end
禁用最近没有活动的用户
管理员可以禁用最近没有活动的用户。
days_inactive = 90
inactive_users = User.active.where("last_activity_on <= ?", days_inactive.days.ago)
inactive_users.each do |user|
puts "user '#{user.username}': #{user.last_activity_on}"
user.block!
end
禁用或删除没有项目或群组的用户
管理员可以禁用或删除没有项目或群组的用户。
users = User.where('id NOT IN (select distinct(user_id) from project_authorizations)')
# How many users are removed?
users.count
# If that count looks sane:
# You can either block the users:
users.each { |user| user.blocked? ? nil : user.block! }
# Or you can delete them:
# need 'current user' (your user) for auditing purposes
current_user = User.find_by(username: '<your username>')
users.each do |user|
DeleteUserWorker.perform_async(current_user.id, user.id)
end