限制GitLab中无登录用户浏览内容

限制GitLab中无登录用户浏览内容,gitlab,gitlab-ce,Gitlab,Gitlab Ce,在我自己托管的GitLab CE安装中,有一个Explore链接,这样就为没有登录的用户提供了读取权限。如何禁用该功能?我认为您必须将项目的可见性设置为私有或内部。除此之外,我认为应该将存储库配置为仅由我的团队成员查看,以获得额外的安全性 这些是我在那里主持的一些项目的设置,它们不会出现在“探索”部分中。您可以在每个项目的设置选项卡中检查它们 如果您仍希望保留“浏览”部分,但希望阻止外部用户克隆项目,则需要将这些项目设置为内部可见性级别 是不同可见性级别的总和。作为管理员,您可以将项目设置为Pu

在我自己托管的GitLab CE安装中,有一个Explore链接,这样就为没有登录的用户提供了读取权限。如何禁用该功能?

我认为您必须将项目的可见性设置为私有或内部。除此之外,我认为应该将存储库配置为仅由我的团队成员查看,以获得额外的安全性

这些是我在那里主持的一些项目的设置,它们不会出现在“探索”部分中。您可以在每个项目的
设置
选项卡中检查它们


如果您仍希望保留“浏览”部分,但希望阻止外部用户克隆项目,则需要将这些项目设置为
内部
可见性级别


是不同可见性级别的总和。作为管理员,您可以将项目设置为
Public
,只允许
Private
Internal
级别。

您不能禁用此链接,但可以将其重定向回匿名用户的登录页面

cd /opt/gitlab/embedded/service/gitlab-rails/app/controllers/
sudo cp application_controller.rb application_controller.rb.orig
sudo vim application_controller.rb
并将以下代码段添加到application_controller.rb

...
 before_action :force_authenticated_user!
...
def force_authenticated_user!(*args)
    if (!current_user) and (["/explore", "/help", "/public", "/users/password/new", "/users/password/edit"].include?(request.path))
        redirect_to new_user_session_path and return
    end
end
...
或更好的方法用于所有路径(带子目录):


您想让外部用户(没有帐户的用户)无法访问您的gitlab,还是想阻止您的用户创建公共项目,即最终在浏览页面上可见和可访问的项目?主要是阻止他们创建公共项目。好的,那么我下面的回答应该包括这一点,请参阅其中的限制链接。如果我使用其中任何一个,我的密码重置将不再有效,它将被重定向?
...
 before_action :force_authenticated_user!
...
def force_authenticated_user!(*args)
     if (!current_user) and (["/users/sign_in", "/users/password","/uploads/-/system/appearance/header_logo/1/your_logo.PNG","/users/auth/ldapmain/callback"].exclude?(request.path))
            redirect_to new_user_session_path and return
    end
end
...