summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2016-03-21 00:42:30 +0100
committerDouwe Maan <douwe@selenight.nl>2016-03-21 00:42:30 +0100
commitb689e2c0e0d0ad4303d99150c843ef914f1fd516 (patch)
treed3466bc3c54201cce6b683f1b4c2c311eb1c5c2a /app/models
parent45e8650c4f987f0a25d829bf8ac189b023f1eaa3 (diff)
downloadgitlab-ce-b689e2c0e0d0ad4303d99150c843ef914f1fd516.tar.gz
Fix spec
Diffstat (limited to 'app/models')
-rw-r--r--app/models/project.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index acea89c1526..4d23cc8de40 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -198,7 +198,7 @@ class Project < ActiveRecord::Base
if: ->(project) { project.avatar.present? && project.avatar_changed? }
validates :avatar, file_size: { maximum: 200.kilobytes.to_i }
validate :visibility_level_allowed_by_group
- validate :visibility_level_allowed_as_fork, on: :update
+ validate :visibility_level_allowed_as_fork
add_authentication_token_field :runners_token
before_save :ensure_runners_token
@@ -974,7 +974,12 @@ class Project < ActiveRecord::Base
def visibility_level_allowed_as_fork?(level = self.visibility_level)
return true unless forked?
- level <= forked_from_project.visibility_level
+ # self.forked_from_project will be nil before the project is saved, so
+ # we need to go through the relation
+ original_project = forked_project_link.forked_from_project
+ return true unless original_project
+
+ level <= original_project.visibility_level
end
def visibility_level_allowed_by_group?(level = self.visibility_level)