diff options
author | Valery Sizov <vsv2711@gmail.com> | 2015-06-03 15:39:01 +0300 |
---|---|---|
committer | Valery Sizov <vsv2711@gmail.com> | 2015-06-03 15:41:37 +0300 |
commit | fef6b468dccda6e4b3cf0fd8e3144b097729fd2f (patch) | |
tree | cce7b6aded247f298bb725a785fd1846172cee11 | |
parent | 54bd76399ddf5fb925df01d9f86ed020c475b3ba (diff) | |
download | gitlab-ci-fef6b468dccda6e4b3cf0fd8e3144b097729fd2f.tar.gz |
replace YAML with JOSN on dashboard
-rw-r--r-- | app/controllers/projects_controller.rb | 6 | ||||
-rw-r--r-- | app/models/project.rb | 8 | ||||
-rw-r--r-- | app/views/projects/_gl_projects.html.haml | 2 | ||||
-rw-r--r-- | spec/controllers/projects_controller_spec.rb | 6 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 5 | ||||
-rw-r--r-- | spec/services/create_project_service_spec.rb | 2 |
6 files changed, 12 insertions, 17 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index ad5b120..a21dbc2 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -49,11 +49,13 @@ class ProjectsController < ApplicationController end def create - unless current_user.can_manage_project?(YAML.load(params["project"])[:id]) + project_data = OpenStruct.new(JSON.parse(params["project"])) + + unless current_user.can_manage_project?(project_data.id) return redirect_to root_path, alert: 'You have to have at least master role to enable CI for this project' end - @project = CreateProjectService.new.execute(current_user, params[:project], project_url(":project_id")) + @project = CreateProjectService.new.execute(current_user, project_data, project_url(":project_id")) if @project.persisted? redirect_to project_path(@project, show_guide: true), notice: 'Project was successfully created.' diff --git a/app/models/project.rb b/app/models/project.rb index 9b015d2..a1e1999 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -69,13 +69,7 @@ ls -la eos end - def parse(project_params) - project = if project_params.is_a?(String) - YAML.load(project_params) - else - project_params - end - + def parse(project) params = { name: project.name_with_namespace, gitlab_id: project.id, diff --git a/app/views/projects/_gl_projects.html.haml b/app/views/projects/_gl_projects.html.haml index 15cd3f0..479ffb4 100644 --- a/app/views/projects/_gl_projects.html.haml +++ b/app/views/projects/_gl_projects.html.haml @@ -11,5 +11,5 @@ Added - else = form_tag projects_path do - = hidden_field_tag :project, project.to_yaml + = hidden_field_tag :project, project.to_h.to_json = submit_tag 'Add project to CI', class: 'btn btn-default btn-small'
\ No newline at end of file diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index 17f6417..4a113dd 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -43,7 +43,7 @@ describe ProjectsController do end describe "POST /projects" do - let(:project_dump) { File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) } + let(:project_dump) { YAML.load File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) } let(:gitlab_url) { GitlabCi.config.gitlab_server.url } let (:user_data) do @@ -61,7 +61,7 @@ describe ProjectsController do Network.any_instance.stub(:enable_ci).and_return(true) Network.any_instance.stub(:project_hooks).and_return(true) - post :create, { project: project_dump }.with_indifferent_access + post :create, { project: JSON.dump(project_dump.to_h) }.with_indifferent_access expect(response.code).to eq('302') expect(assigns(:project)).not_to be_a_new(Project) @@ -72,7 +72,7 @@ describe ProjectsController do allow(controller).to receive(:current_user) { user } User.any_instance.stub(:can_manage_project?).and_return(false) - post :create, { project: project_dump }.with_indifferent_access + post :create, { project: JSON.dump(project_dump.to_h) }.with_indifferent_access expect(response.code).to eq('302') expect(flash[:alert]).to include("You have to have at least master role to enable CI for this project") diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 9358db5..ba47d61 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -123,7 +123,7 @@ describe Project do end describe 'Project.parse' do - let(:project_dump) { File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) } + let(:project_dump) { YAML.load File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) } let(:parsed_project) { Project.parse(project_dump) } before { parsed_project.build_default_job } @@ -135,8 +135,7 @@ describe Project do it { parsed_project.gitlab_url.should eq("http://demo.gitlab.com/gitlab/api-gitlab-org") } it "parses plain hash" do - data = YAML.load(project_dump) - Project.parse(data).name.should eq("GitLab / api.gitlab.org") + Project.parse(project_dump).name.should eq("GitLab / api.gitlab.org") end end diff --git a/spec/services/create_project_service_spec.rb b/spec/services/create_project_service_spec.rb index 6ecb93e..90124bf 100644 --- a/spec/services/create_project_service_spec.rb +++ b/spec/services/create_project_service_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe CreateProjectService do let(:service) { CreateProjectService.new } let(:current_user) { double.as_null_object } - let(:project_dump) { File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) } + let(:project_dump) { YAML.load File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) } before { Network.any_instance.stub(enable_ci: true) } |