Allow access to the wiki with git when repository feature disabled
This commit is contained in:
parent
467b44cbbf
commit
d6b9b21e6d
|
|
@ -50,6 +50,7 @@ class ProjectPolicy < BasePolicy
|
|||
|
||||
def reporter_access!
|
||||
can! :download_code
|
||||
can! :download_wiki_code
|
||||
can! :fork_project
|
||||
can! :create_project_snippet
|
||||
can! :update_issue
|
||||
|
|
@ -187,6 +188,7 @@ class ProjectPolicy < BasePolicy
|
|||
|
||||
unless project.feature_available?(:wiki, user) || project.has_external_wiki?
|
||||
cannot!(*named_abilities(:wiki))
|
||||
cannot!(:download_wiki_code)
|
||||
end
|
||||
|
||||
unless project.feature_available?(:builds, user) && repository_enabled
|
||||
|
|
@ -226,6 +228,7 @@ class ProjectPolicy < BasePolicy
|
|||
can! :read_commit_status
|
||||
can! :read_container_image
|
||||
can! :download_code
|
||||
can! :download_wiki_code
|
||||
can! :read_cycle_analytics
|
||||
|
||||
# NOTE: may be overridden by IssuePolicy
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ module Gitlab
|
|||
def download_access_check
|
||||
if user
|
||||
user_download_access_check
|
||||
elsif deploy_key.nil? && !Guest.can?(:download_code, project)
|
||||
elsif deploy_key.nil? && !guest_can_downlod_code?
|
||||
raise UnauthorizedError, ERROR_MESSAGES[:download]
|
||||
end
|
||||
end
|
||||
|
|
@ -59,6 +59,10 @@ module Gitlab
|
|||
end
|
||||
end
|
||||
|
||||
def guest_can_downlod_code?
|
||||
Guest.can?(:download_code, project)
|
||||
end
|
||||
|
||||
def user_download_access_check
|
||||
unless user_can_download_code? || build_can_download_code?
|
||||
raise UnauthorizedError, ERROR_MESSAGES[:download]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,13 @@
|
|||
module Gitlab
|
||||
class GitAccessWiki < GitAccess
|
||||
def guest_can_downlod_code?
|
||||
Guest.can?(:download_wiki_code, project)
|
||||
end
|
||||
|
||||
def user_can_download_code?
|
||||
authentication_abilities.include?(:download_code) && user_access.can_do_action?(:download_wiki_code)
|
||||
end
|
||||
|
||||
def change_access_check(change)
|
||||
if user_access.can_do_action?(:create_wiki)
|
||||
build_status_object(true)
|
||||
|
|
|
|||
Loading…
Reference in New Issue