diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-02-07 07:10:13 +0300 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-02-07 07:10:13 +0300 |
commit | 50f5960c72b4ff8b553bb0f7e8f649ac413f6ce0 (patch) | |
tree | 3fce35b12e29a10b538ce030ad7d661d332ba3e0 /app/policies/project_policy.rb | |
parent | 437b46b9a18b1eb26c0caecf0ff6863d8ad9faa7 (diff) | |
parent | f5a798c7434bf236f36b399347c49fa3edf1f04e (diff) |
Merge branch 'ee-1439-read-only-user' into 'master'
Backport changes from gitlab-org/gitlab-ee!998
See merge request !8984
Diffstat (limited to 'app/policies/project_policy.rb')
-rw-r--r-- | app/policies/project_policy.rb | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/app/policies/project_policy.rb b/app/policies/project_policy.rb index f5fd50745aa..f8594e29547 100644 --- a/app/policies/project_policy.rb +++ b/app/policies/project_policy.rb @@ -218,25 +218,7 @@ class ProjectPolicy < BasePolicy def anonymous_rules return unless project.public? - can! :read_project - can! :read_board - can! :read_list - can! :read_wiki - can! :read_label - can! :read_milestone - can! :read_project_snippet - can! :read_project_member - can! :read_merge_request - can! :read_note - can! :read_pipeline - 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 - can! :read_issue + base_readonly_access! # Allow to read builds by anonymous user if guests are allowed can! :read_build if project.public_builds? @@ -269,4 +251,31 @@ class ProjectPolicy < BasePolicy :"admin_#{name}" ] end + + private + + # A base set of abilities for read-only users, which + # is then augmented as necessary for anonymous and other + # read-only users. + def base_readonly_access! + can! :read_project + can! :read_board + can! :read_list + can! :read_wiki + can! :read_label + can! :read_milestone + can! :read_project_snippet + can! :read_project_member + can! :read_merge_request + can! :read_note + can! :read_pipeline + 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 + can! :read_issue + end end |