Commit d4d4a78f834b409631b012aa555c0cb2c4e3166d
1 parent
694768e5
Exists in
master
and in
4 other branches
Update User api to respect default settings
-API now respects default_projects_limit, default_can_create_group, and default_can_create_team Change-Id: I059d060d576df1050e5371e707381c5e8c608a7a
Showing
3 changed files
with
17 additions
and
1 deletions
Show diff stats
app/models/user.rb
... | ... | @@ -198,6 +198,11 @@ class User < ActiveRecord::Base |
198 | 198 | User.find_by_username(name_or_id) |
199 | 199 | end |
200 | 200 | end |
201 | + | |
202 | + def defaults | |
203 | + { projects_limit: Gitlab.config.gitlab.default_projects_limit, can_create_group: Gitlab.config.gitlab.default_can_create_group, can_create_team: Gitlab.config.gitlab.default_can_create_team } | |
204 | + end | |
205 | + | |
201 | 206 | end |
202 | 207 | |
203 | 208 | # | ... | ... |
lib/api/users.rb
... | ... | @@ -46,7 +46,7 @@ module API |
46 | 46 | authenticated_as_admin! |
47 | 47 | required_attributes! [:email, :password, :name, :username] |
48 | 48 | |
49 | - attrs = attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit, :username, :extern_uid, :provider, :bio] | |
49 | + attrs = User.defaults.merge(attributes_for_keys [:email, :name, :password, :skype, :linkedin, :twitter, :projects_limit, :username, :extern_uid, :provider, :bio]) | |
50 | 50 | user = User.new attrs, as: :admin |
51 | 51 | if user.save |
52 | 52 | present user, with: Entities::User | ... | ... |
spec/requests/api/users_spec.rb
... | ... | @@ -57,6 +57,17 @@ describe API::API do |
57 | 57 | response.status.should == 201 |
58 | 58 | end |
59 | 59 | |
60 | + it "creating a user should respect default project limit" do | |
61 | + limit = 123456 | |
62 | + Gitlab.config.gitlab.stub(:default_projects_limit).and_return(limit) | |
63 | + attr = attributes_for(:user ) | |
64 | + expect { | |
65 | + post api("/users", admin), attr | |
66 | + }.to change { User.count }.by(1) | |
67 | + User.find_by_username(attr[:username]).projects_limit.should == limit | |
68 | + Gitlab.config.gitlab.unstub(:default_projects_limit) | |
69 | + end | |
70 | + | |
60 | 71 | it "should not create user with invalid email" do |
61 | 72 | post api("/users", admin), { email: "invalid email", password: 'password' } |
62 | 73 | response.status.should == 400 | ... | ... |