Skip to content

Commit e397725

Browse files
author
Matt Humphrey
committed
Added methods for new group API
1 parent 32d8c66 commit e397725

File tree

4 files changed

+67
-2
lines changed

4 files changed

+67
-2
lines changed

lib/Gitlab/Api/Groups.php

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,26 @@ public function create($name, $path)
2525
));
2626
}
2727

28-
public function transfer($id, $project_id)
28+
public function transfer($group_id, $project_id)
2929
{
30-
return $this->post('groups/'.urlencode($id).'/projects/'.urlencode($project_id));
30+
return $this->post('groups/'.urlencode($group_id).'/projects/'.urlencode($project_id));
3131
}
32+
33+
public function members($id)
34+
{
35+
return $this->get('groups/'.urlencode($id).'/members');
36+
}
37+
38+
public function addMember($group_id, $user_id, $access_level)
39+
{
40+
return $this->post('groups/'.urlencode($group_id).'/members', array(
41+
'user_id' => $user_id,
42+
'access_level' => $access_level
43+
));
44+
}
45+
46+
public function removeMember($group_id, $user_id)
47+
{
48+
return $this->delete('groups/'.urlencode($group_id).'/members/'.urlencode($user_id));
49+
}
3250
}

lib/Gitlab/Model/Group.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,30 @@ public function transfer($project_id)
5656

5757
return Group::fromArray($this->getClient(), $data);
5858
}
59+
60+
public function members()
61+
{
62+
$data = $this->api('groups')->members($this->id);
63+
64+
$members = array();
65+
foreach ($data as $member) {
66+
$members[] = User::fromArray($this->getClient(), $member);
67+
}
68+
69+
return $members;
70+
}
71+
72+
public function addMember($user_id, $access_level)
73+
{
74+
$data = $this->api('groups')->addMember($this->id, $user_id, $access_level);
75+
76+
return User::fromArray($this->getClient(), $data);
77+
}
78+
79+
public function removeMember($user_id)
80+
{
81+
$this->api('groups')->removeMember($this->id, $user_id);
82+
83+
return true;
84+
}
5985
}

lib/Gitlab/Model/Project.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,4 +449,11 @@ public function removeSnippet($id)
449449

450450
return $snippet->remove();
451451
}
452+
453+
public function transfer($group_id)
454+
{
455+
$group = new Group($group_id, $this->getClient());
456+
457+
return $group->transfer($this->id);
458+
}
452459
}

lib/Gitlab/Model/User.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,18 @@ public function removeKey($id)
8484
return true;
8585
}
8686

87+
public function addToGroup($group_id, $access_level)
88+
{
89+
$group = new Group($group_id, $this->getClient());
90+
91+
return $group->addMember($this->id, $access_level);
92+
}
93+
94+
public function removeFromGroup($group_id)
95+
{
96+
$group = new Group($group_id, $this->getClient());
97+
98+
return $group->removeMember($this->id);
99+
}
100+
87101
}

0 commit comments

Comments
 (0)