Commit eebd18c3 authored by Grzegorz Bizon's avatar Grzegorz Bizon

Merge branch '2563-backport-ee1942' into 'master'

Backport some EE changes from adding shared_runners_minutes_limit to the API

Closes gitlab-ee#2563

See merge request !11936
parents 1d749356 bf6961ca
...@@ -66,7 +66,7 @@ class User < ActiveRecord::Base ...@@ -66,7 +66,7 @@ class User < ActiveRecord::Base
# #
# Namespace for personal projects # Namespace for personal projects
has_one :namespace, -> { where type: nil }, dependent: :destroy, foreign_key: :owner_id has_one :namespace, -> { where type: nil }, dependent: :destroy, foreign_key: :owner_id, autosave: true
# Profile # Profile
has_many :keys, -> do has_many :keys, -> do
......
...@@ -83,7 +83,7 @@ module API ...@@ -83,7 +83,7 @@ module API
group = ::Groups::CreateService.new(current_user, declared_params(include_missing: false)).execute group = ::Groups::CreateService.new(current_user, declared_params(include_missing: false)).execute
if group.persisted? if group.persisted?
present group, with: Entities::Group, current_user: current_user present group, with: Entities::GroupDetail, current_user: current_user
else else
render_api_error!("Failed to save group #{group.errors.messages}", 400) render_api_error!("Failed to save group #{group.errors.messages}", 400)
end end
...@@ -101,8 +101,6 @@ module API ...@@ -101,8 +101,6 @@ module API
optional :name, type: String, desc: 'The name of the group' optional :name, type: String, desc: 'The name of the group'
optional :path, type: String, desc: 'The path of the group' optional :path, type: String, desc: 'The path of the group'
use :optional_params use :optional_params
at_least_one_of :name, :path, :description, :visibility,
:lfs_enabled, :request_access_enabled
end end
put ':id' do put ':id' do
group = find_group!(params[:id]) group = find_group!(params[:id])
......
...@@ -124,10 +124,6 @@ module API ...@@ -124,10 +124,6 @@ module API
optional :name, type: String, desc: 'The name of the user' optional :name, type: String, desc: 'The name of the user'
optional :username, type: String, desc: 'The username of the user' optional :username, type: String, desc: 'The username of the user'
use :optional_attributes use :optional_attributes
at_least_one_of :email, :password, :name, :username, :skype, :linkedin,
:twitter, :website_url, :organization, :projects_limit,
:extern_uid, :provider, :bio, :location, :admin,
:can_create_group, :confirm, :external
end end
put ":id" do put ":id" do
authenticated_as_admin! authenticated_as_admin!
......
...@@ -2,8 +2,8 @@ require 'spec_helper' ...@@ -2,8 +2,8 @@ require 'spec_helper'
describe ForkedProjectLink, "add link on fork" do describe ForkedProjectLink, "add link on fork" do
let(:project_from) { create(:project, :repository) } let(:project_from) { create(:project, :repository) }
let(:namespace) { create(:namespace) } let(:user) { create(:user) }
let(:user) { create(:user, namespace: namespace) } let(:namespace) { user.namespace }
before do before do
create(:project_member, :reporter, user: user, project: project_from) create(:project_member, :reporter, user: user, project: project_from)
......
...@@ -13,6 +13,10 @@ describe User, models: true do ...@@ -13,6 +13,10 @@ describe User, models: true do
it { is_expected.to include_module(TokenAuthenticatable) } it { is_expected.to include_module(TokenAuthenticatable) }
end end
describe 'delegations' do
it { is_expected.to delegate_method(:path).to(:namespace).with_prefix }
end
describe 'associations' do describe 'associations' do
it { is_expected.to have_one(:namespace) } it { is_expected.to have_one(:namespace) }
it { is_expected.to have_many(:snippets).dependent(:destroy) } it { is_expected.to have_many(:snippets).dependent(:destroy) }
......
...@@ -426,10 +426,15 @@ describe API::Users do ...@@ -426,10 +426,15 @@ describe API::Users do
expect(user.reload.email).not_to eq('invalid email') expect(user.reload.email).not_to eq('invalid email')
end end
it "is not available for non admin users" do context 'when the current user is not an admin' do
it "is not available" do
expect do
put api("/users/#{user.id}", user), attributes_for(:user) put api("/users/#{user.id}", user), attributes_for(:user)
end.not_to change { user.reload.attributes }
expect(response).to have_http_status(403) expect(response).to have_http_status(403)
end end
end
it "returns 404 for non-existing user" do it "returns 404 for non-existing user" do
put api("/users/999999", admin), { bio: 'update should fail' } put api("/users/999999", admin), { bio: 'update should fail' }
...@@ -649,7 +654,7 @@ describe API::Users do ...@@ -649,7 +654,7 @@ describe API::Users do
end end
it "returns a 404 for invalid ID" do it "returns a 404 for invalid ID" do
put api("/users/ASDF/emails", admin) get api("/users/ASDF/emails", admin)
expect(response).to have_http_status(404) expect(response).to have_http_status(404)
end end
......
...@@ -3,8 +3,8 @@ require 'spec_helper' ...@@ -3,8 +3,8 @@ require 'spec_helper'
describe Projects::ForkService, services: true do describe Projects::ForkService, services: true do
describe 'fork by user' do describe 'fork by user' do
before do before do
@from_namespace = create(:namespace) @from_user = create(:user)
@from_user = create(:user, namespace: @from_namespace ) @from_namespace = @from_user.namespace
avatar = fixture_file_upload(Rails.root + "spec/fixtures/dk.png", "image/png") avatar = fixture_file_upload(Rails.root + "spec/fixtures/dk.png", "image/png")
@from_project = create(:project, @from_project = create(:project,
:repository, :repository,
...@@ -13,8 +13,8 @@ describe Projects::ForkService, services: true do ...@@ -13,8 +13,8 @@ describe Projects::ForkService, services: true do
star_count: 107, star_count: 107,
avatar: avatar, avatar: avatar,
description: 'wow such project') description: 'wow such project')
@to_namespace = create(:namespace) @to_user = create(:user)
@to_user = create(:user, namespace: @to_namespace) @to_namespace = @to_user.namespace
@from_project.add_user(@to_user, :developer) @from_project.add_user(@to_user, :developer)
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment