diff options
author | Felipe Artur <felipefac@gmail.com> | 2016-03-19 03:04:53 +0300 |
---|---|---|
committer | Felipe Artur <felipefac@gmail.com> | 2016-03-19 03:04:53 +0300 |
commit | 8b830b8c3b32774e8ccf562b8bc9dbce3ecf3073 (patch) | |
tree | 7898541a9362cc62f738ebc1812d022d422fe841 /app | |
parent | b959ae553b1243e081d557b1e545d30830931e5b (diff) |
Fix specs
Diffstat (limited to 'app')
-rw-r--r-- | app/models/project.rb | 10 | ||||
-rw-r--r-- | app/services/projects/create_service.rb | 5 |
2 files changed, 12 insertions, 3 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 7c10ab35431..3352959a53d 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -969,8 +969,9 @@ class Project < ActiveRecord::Base end def visibility_level_allowed?(level = self.visibility_level) - allowed_by_forks = if forked? - Gitlab::VisibilityLevel.allowed_fork_levels(forked_from_project.visibility_level).include?(level) + allowed_by_forks = if forked? && forked_project_link.forked_from_project_id.present? + from_project = eager_load_forked_from_project + Gitlab::VisibilityLevel.allowed_fork_levels(from_project.visibility_level).include?(level) else true end @@ -980,6 +981,11 @@ class Project < ActiveRecord::Base allowed_by_forks && allowed_by_groups end + #Necessary to retrieve many-to-many associations on new forks before validating visibility level + def eager_load_forked_from_project + Project.find(forked_project_link.forked_from_project_id) + end + def runners_token ensure_runners_token! end diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb index cebfc432002..c4b8420f9f2 100644 --- a/app/services/projects/create_service.rb +++ b/app/services/projects/create_service.rb @@ -10,7 +10,10 @@ module Projects @project = Project.new(params) # Make sure that the user is allowed to use the specified visibility level - return @project unless visibility_level_allowed? + unless visibility_level_allowed? + deny_visibility_level(@project) + return @project + end # Set project name from path if @project.name.present? && @project.path.present? |