diff options
author | Stan Hu <stanhu@gmail.com> | 2019-05-14 11:43:08 +0300 |
---|---|---|
committer | GitLab Release Tools Bot <robert+release-tools@gitlab.com> | 2019-05-14 19:31:22 +0300 |
commit | 959962db5634ad5e8703b21031bd08a4c5ab902a (patch) | |
tree | 2b149cb58320ab686162e80e71d966507e8738b6 /app | |
parent | acf15521f7abb5318281e011f9a186893e1e7655 (diff) |
Merge branch 'fix-project-visibility-level-validation' into 'master'
Fix project visibility level validation
Closes #59379
See merge request gitlab-org/gitlab-ce!28305
(cherry picked from commit 99637084b22abdf7b1f6d46daad80faf8181f3cd)
b5540112 Fix project visibility level validation
Diffstat (limited to 'app')
-rw-r--r-- | app/models/project.rb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 61d245478ca..68b5c299df4 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -337,8 +337,8 @@ class Project < ApplicationRecord validates :star_count, numericality: { greater_than_or_equal_to: 0 } validate :check_personal_projects_limit, on: :create validate :check_repository_path_availability, on: :update, if: ->(project) { project.renamed? } - validate :visibility_level_allowed_by_group, if: -> { changes.has_key?(:visibility_level) } - validate :visibility_level_allowed_as_fork, if: -> { changes.has_key?(:visibility_level) } + validate :visibility_level_allowed_by_group, if: :should_validate_visibility_level? + validate :visibility_level_allowed_as_fork, if: :should_validate_visibility_level? validate :check_wiki_path_conflict validate :validate_pages_https_only, if: -> { changes.has_key?(:pages_https_only) } validates :repository_storage, @@ -892,6 +892,10 @@ class Project < ApplicationRecord self.errors.add(:limit_reached, error % { limit: limit }) end + def should_validate_visibility_level? + new_record? || changes.has_key?(:visibility_level) + end + def visibility_level_allowed_by_group return if visibility_level_allowed_by_group? |