Skip to content

GitLab

  • Menu
    • Projects Groups Snippets
      Help
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • G gitlabhq1
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 21
    • Issues 21
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 12
    • Merge requests 12
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • gpt
  • large_projects
  • gitlabhq1
  • Merge requests
  • !4990

Merged
Created 11 years ago by Administrator@rootOwner

Add group membership api

  • Overview 16
  • Commits 2
  • Changes 4

Created by: karlhungus

Change-Id: I5b174bba02856ede788dcb51ec9b0d598ea7d0df

Loading
Loading

  • Administrator
    Administrator @root · 11 years ago
    Owner

    Created by: m4tthumphrey

    :D

    By Administrator on 2013-09-04T17:31:00 (imported from GitLab project)

  • Administrator
    Administrator @root · 11 years ago
    Owner

    Created by: coveralls

    Coverage Status

    Coverage remained the same when pulling 8248e1f2 on karlhungus:feature_group_membership_api into 9109a207 on gitlabhq:master.

    By Administrator on 2013-09-04T17:37:57 (imported from GitLab project)

  • Administrator
    Administrator @root started a thread on commit fadcc251 11 years ago
    lib/api/groups.rb
    4 4 before { authenticate! }
    5 5
    6 6 resource :groups do
    7 helpers do
    8 def find_group(id)
    9 group = Group.find(id)
    10 if current_user.admin or current_user.groups.include? group
    11 group
    12 else
    13 render_api_error!("403 Forbidden - #{current_user.username} lacks sufficient access to #{group.name}", 403)
    14 end
    15 end
    16 def validate_access_level?(level)
    17 Gitlab::Access.options_with_owner.values.include? level.to_i
    • Administrator
      Administrator @root · 11 years ago
      Owner

      Created by: dzaporozhets

      Gitlab::Access.options_with_owner.values (see https://github.com/gitlabhq/gitlabhq/blob/master/lib/gitlab/access.rb)

      By Administrator on 2013-09-05T14:42:27 (imported from GitLab project)

  • Administrator
    Administrator @root started a thread on commit fadcc251 11 years ago
    lib/api/groups.rb
    4 4 before { authenticate! }
    5 5
    6 6 resource :groups do
    7 helpers do
    8 def find_group(id)
    9 group = Group.find(id)
    10 if current_user.admin or current_user.groups.include? group
    11 group
    12 else
    13 render_api_error!("403 Forbidden - #{current_user.username} lacks sufficient access to #{group.name}", 403)
    14 end
    15 end
    16 def validate_access_level?(level)
    17 Gitlab::Access.options_with_owner.values.include? level.to_i
    18 end
    19 end
    • Administrator
      Administrator @root · 11 years ago
      Owner

      Created by: dzaporozhets

      newline after block

      By Administrator on 2013-09-05T14:42:27 (imported from GitLab project)

  • Administrator
    Administrator @root started a thread on commit fadcc251 11 years ago
    lib/api/groups.rb
    71 81 not_found!
    72 82 end
    73 83 end
    84
    85 # Get a list of group members viewable by the authenticated user.
    86 #
    87 # Example Request:
    88 # GET /groups/:id/members
    89 get ":id/members" do
    90 group = find_group(params[:id])
    91 members = group.users_groups
    • Administrator
      Administrator @root · 11 years ago
      Owner

      Created by: dzaporozhets

      .collect(&:user)

      By Administrator on 2013-09-05T14:42:27 (imported from GitLab project)

  • Administrator
    Administrator @root started a thread on commit fadcc251 11 years ago
    lib/api/groups.rb
    90 group = find_group(params[:id])
    91 members = group.users_groups
    92 users = (paginate members).collect(&:user)
    93 present users, with: Entities::GroupMember, group: group
    94 end
    95
    96 # Add a user to the list of group members
    97 #
    98 # Parameters:
    99 # id (required) - group id
    100 # user_id (required) - the users id
    101 # access_level (required) - Project access level
    102 # Example Request:
    103 # POST /groups/:id/members
    104 post ":id/members" do
    105 required_attributes! [:user_id, :access_level]
    • Administrator
      Administrator @root · 11 years ago
      Owner

      Created by: dzaporozhets

      if not -> unless

      By Administrator on 2013-09-05T14:42:27 (imported from GitLab project)

  • Administrator
    Administrator @root started a thread on commit fadcc251 11 years ago
    spec/requests/api/groups_spec.rb
    126 describe "members" do
    127 let(:owner) { create(:user) }
    128 let(:reporter) { create(:user) }
    129 let(:developer) { create(:user) }
    130 let(:master) { create(:user) }
    131 let(:guest) { create(:user) }
    132 let!(:group_with_members) do
    133 group = create(:group, owner: owner)
    134 group.add_users([reporter.id], UsersGroup::REPORTER)
    135 group.add_users([developer.id], UsersGroup::DEVELOPER)
    136 group.add_users([master.id], UsersGroup::MASTER)
    137 group.add_users([guest.id], UsersGroup::GUEST)
    138 group
    139 end
    140 let!(:group_no_members) { create(:group, owner: owner) }
    141
    • Administrator
      Administrator @root · 11 years ago
      Owner

      Created by: dzaporozhets

      Use newlines to separate blocks of code

      By Administrator on 2013-09-05T14:42:27 (imported from GitLab project)

  • Administrator
    Administrator @root started a thread on commit fadcc251 11 years ago
    spec/requests/api/groups_spec.rb
    167 it "should not add guest as member of group_no_members when adding being done by person outside the group" do
    168 post api("/groups/#{group_no_members.id}/members", reporter), user_id: guest.id, access_level: UsersGroup::MASTER
    169 response.status.should == 403
    170 end
    171 end
    172
    173 context "when a member of the group" do
    174 it "should return ok and add new member" do
    175 count_before=group_no_members.users_groups.count
    176 new_user = create(:user)
    177 post api("/groups/#{group_no_members.id}/members", owner), user_id: new_user.id, access_level: UsersGroup::MASTER
    178 response.status.should == 201
    179 json_response['name'].should == new_user.name
    180 json_response['access_level'].should == UsersGroup::MASTER
    181 group_no_members.users_groups.count.should == count_before + 1
    182 end
    • Administrator
      Administrator @root · 11 years ago
      Owner

      Created by: dzaporozhets

      use newline before it

      By Administrator on 2013-09-05T14:42:27 (imported from GitLab project)

  • Administrator
    Administrator @root started a thread on commit fadcc251 11 years ago
    spec/requests/api/groups_spec.rb
    184 it "should return error if member already exists" do
    185 post api("/groups/#{group_with_members.id}/members", owner), user_id: master.id, access_level: UsersGroup::MASTER
    186 response.status.should == 409
    187 end
    188
    189 it "should return a 400 error when user id is not given" do
    190 post api("/groups/#{group_no_members.id}/members", owner), access_level: UsersGroup::MASTER
    191 response.status.should == 400
    192 end
    193
    194 it "should return a 400 error when access level is not given" do
    195 post api("/groups/#{group_no_members.id}/members", owner), user_id: master.id
    196 response.status.should == 400
    197 end
    198
    199 it "should return a 422 error when access level is not known" do
    • Administrator
      Administrator @root · 11 years ago
      Owner

      Created by: dzaporozhets

      remove this newline please

      By Administrator on 2013-09-05T14:42:27 (imported from GitLab project)

  • Administrator
    Administrator @root started a thread on commit fadcc251 11 years ago
    spec/requests/api/groups_spec.rb
    204 end
    205
    206 describe "DELETE /groups/:id/members/:user_id" do
    207 context "when not a member of the group" do
    208 it "should not delete guest's membership of group_with_members" do
    209 random_user = create(:user)
    210 delete api("/groups/#{group_with_members.id}/members/#{owner.id}", random_user)
    211 response.status.should == 403
    212 end
    213 end
    214
    215 context "when a member of the group" do
    216 it "should delete guest's membership of group" do
    217 count_before=group_with_members.users_groups.count
    218 delete api("/groups/#{group_with_members.id}/members/#{guest.id}", owner)
    219 response.status.should == 200
    • Administrator
      Administrator @root · 11 years ago
      Owner

      Created by: dzaporozhets

      add newline

      By Administrator on 2013-09-05T14:42:27 (imported from GitLab project)

  • Administrator
    Administrator @root · 11 years ago
    Owner

    Created by: karlhungus

    @randx think that takes care of them

    By Administrator on 2013-09-05T14:18:50 (imported from GitLab project)

  • Administrator
    Administrator @root · 11 years ago
    Owner

    Created by: coveralls

    Coverage Status

    Coverage remained the same when pulling b6527bffff40fc96cf92fce0c7d9195a5c6c425f on karlhungus:feature_group_membership_api into 9109a207 on gitlabhq:master.

    By Administrator on 2013-09-05T14:39:46 (imported from GitLab project)

  • Administrator
    Administrator @root · 11 years ago
    Owner

    Created by: dzaporozhets

    @karlhungus looks better now. Thank you!

    By Administrator on 2013-09-05T15:03:33 (imported from GitLab project)

  • Administrator
    Administrator @root · 11 years ago
    Owner

    Created by: coveralls

    Coverage Status

    Coverage remained the same when pulling fadcc251 on karlhungus:feature_group_membership_api into 9109a207 on gitlabhq:master.

    By Administrator on 2013-09-05T15:07:11 (imported from GitLab project)

  • Administrator
    Administrator @root · 11 years ago
    Owner

    Created by: karlhungus

    @randx some day i'll get the style correct :)

    By Administrator on 2013-09-05T15:08:18 (imported from GitLab project)

  • Administrator
    Administrator @root · 11 years ago
    Owner

    Created by: dzaporozhets

    @karlhungus for sure :)

    By Administrator on 2013-09-05T15:59:52 (imported from GitLab project)

  • You're only seeing other activity in the feed. To add a comment, switch to one of the following options.
Please register or sign in to reply
0 Assignees
Assign to
0 Reviewers
Request review from
Milestone
No milestone
None
None
Time tracking
0
Labels
None
Assign labels
  • No matching results
  • Manage project labels
Lock merge request
Unlocked
participants
Reference:
Source branch: github/fork/karlhungus/feature_group_membership_api

    0 pending comments

Menu

Projects Groups Snippets
Help