Commit fadcc251899095e37b97091a03b2025b1f39c7a6
1 parent
8248e1f2
Exists in
master
and in
4 other branches
Fixes for @randx
Change-Id: I3b15ae34c0957a0f4026e1886c92a9770e9d170e
Showing
2 changed files
with
10 additions
and
5 deletions
Show diff stats
lib/api/groups.rb
| ... | ... | @@ -14,9 +14,10 @@ module API |
| 14 | 14 | end |
| 15 | 15 | end |
| 16 | 16 | def validate_access_level?(level) |
| 17 | - [UsersGroup::GUEST, UsersGroup::REPORTER, UsersGroup::DEVELOPER, UsersGroup::MASTER].include? level.to_i | |
| 17 | + Gitlab::Access.options_with_owner.values.include? level.to_i | |
| 18 | 18 | end |
| 19 | 19 | end |
| 20 | + | |
| 20 | 21 | # Get a groups list |
| 21 | 22 | # |
| 22 | 23 | # Example Request: |
| ... | ... | @@ -88,7 +89,7 @@ module API |
| 88 | 89 | get ":id/members" do |
| 89 | 90 | group = find_group(params[:id]) |
| 90 | 91 | members = group.users_groups |
| 91 | - users = (paginate members).collect { | member| member.user} | |
| 92 | + users = (paginate members).collect(&:user) | |
| 92 | 93 | present users, with: Entities::GroupMember, group: group |
| 93 | 94 | end |
| 94 | 95 | |
| ... | ... | @@ -102,7 +103,7 @@ module API |
| 102 | 103 | # POST /groups/:id/members |
| 103 | 104 | post ":id/members" do |
| 104 | 105 | required_attributes! [:user_id, :access_level] |
| 105 | - if not validate_access_level?(params[:access_level]) | |
| 106 | + unless validate_access_level?(params[:access_level]) | |
| 106 | 107 | render_api_error!("Wrong access level", 422) |
| 107 | 108 | end |
| 108 | 109 | group = find_group(params[:id]) | ... | ... |
spec/requests/api/groups_spec.rb
| ... | ... | @@ -108,7 +108,6 @@ describe API::API do |
| 108 | 108 | Project.stub(:find).and_return(project) |
| 109 | 109 | end |
| 110 | 110 | |
| 111 | - | |
| 112 | 111 | context "when authenticated as user" do |
| 113 | 112 | it "should not transfer project to group" do |
| 114 | 113 | post api("/groups/#{group1.id}/projects/#{project.id}", user2) |
| ... | ... | @@ -139,6 +138,7 @@ describe API::API do |
| 139 | 138 | group |
| 140 | 139 | end |
| 141 | 140 | let!(:group_no_members) { create(:group, owner: owner) } |
| 141 | + | |
| 142 | 142 | describe "GET /groups/:id/members" do |
| 143 | 143 | context "when authenticated as user that is part or the group" do |
| 144 | 144 | it "each user: should return an array of members groups of group3" do |
| ... | ... | @@ -154,6 +154,7 @@ describe API::API do |
| 154 | 154 | json_response.find { |e| e['id']==guest.id }['access_level'].should == UsersGroup::GUEST |
| 155 | 155 | end |
| 156 | 156 | end |
| 157 | + | |
| 157 | 158 | it "users not part of the group should get access error" do |
| 158 | 159 | get api("/groups/#{group_with_members.id}/members", user1) |
| 159 | 160 | response.status.should == 403 |
| ... | ... | @@ -179,14 +180,17 @@ describe API::API do |
| 179 | 180 | json_response['access_level'].should == UsersGroup::MASTER |
| 180 | 181 | group_no_members.users_groups.count.should == count_before + 1 |
| 181 | 182 | end |
| 183 | + | |
| 182 | 184 | it "should return error if member already exists" do |
| 183 | 185 | post api("/groups/#{group_with_members.id}/members", owner), user_id: master.id, access_level: UsersGroup::MASTER |
| 184 | 186 | response.status.should == 409 |
| 185 | 187 | end |
| 188 | + | |
| 186 | 189 | it "should return a 400 error when user id is not given" do |
| 187 | 190 | post api("/groups/#{group_no_members.id}/members", owner), access_level: UsersGroup::MASTER |
| 188 | 191 | response.status.should == 400 |
| 189 | 192 | end |
| 193 | + | |
| 190 | 194 | it "should return a 400 error when access level is not given" do |
| 191 | 195 | post api("/groups/#{group_no_members.id}/members", owner), user_id: master.id |
| 192 | 196 | response.status.should == 400 |
| ... | ... | @@ -196,7 +200,6 @@ describe API::API do |
| 196 | 200 | post api("/groups/#{group_no_members.id}/members", owner), user_id: master.id, access_level: 1234 |
| 197 | 201 | response.status.should == 422 |
| 198 | 202 | end |
| 199 | - | |
| 200 | 203 | end |
| 201 | 204 | end |
| 202 | 205 | |
| ... | ... | @@ -216,6 +219,7 @@ describe API::API do |
| 216 | 219 | response.status.should == 200 |
| 217 | 220 | group_with_members.users_groups.count.should == count_before - 1 |
| 218 | 221 | end |
| 222 | + | |
| 219 | 223 | it "should return a 404 error when user id is not known" do |
| 220 | 224 | delete api("/groups/#{group_with_members.id}/members/1328", owner) |
| 221 | 225 | response.status.should == 404 | ... | ... |