Skip to content

Commit 230d90a

Browse files
SirFlipm1guelpf
authored andcommitted
List all members of a group or project including inherited members with optional user id filter and pagination for model
1 parent dc07d58 commit 230d90a

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

lib/Gitlab/Model/Group.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,29 @@ public function transfer($project_id)
116116
return Group::fromArray($this->getClient(), $data);
117117
}
118118

119+
/**
120+
* @param integer|null $user_id
121+
* @param bool $all
122+
* @return array|User
123+
*/
124+
public function allMembers($user_id = null, $all = false)
125+
{
126+
if ($all)
127+
$data = (new \Gitlab\ResultPager($this->client))->fetchAll($this->client->groups(),"allMembers", [$this->id,$user_id]);
128+
else
129+
$data = $this->client->groups()->allMembers($this->id, $user_id);
130+
131+
if ($user_id != null)
132+
return User::fromArray($this->getClient(), $data);
133+
else {
134+
$members = array();
135+
foreach ($data as $member) {
136+
$members[] = User::fromArray($this->getClient(), $member);
137+
}
138+
return $members;
139+
}
140+
}
141+
119142
/**
120143
* @return User[]
121144
*/

lib/Gitlab/Model/Project.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,29 @@ public function remove()
217217
return true;
218218
}
219219

220+
/**
221+
* @param integer|null $user_id
222+
* @param bool $all
223+
* @return array|User
224+
*/
225+
public function allMembers($user_id = null, $all = false)
226+
{
227+
if ($all)
228+
$data = (new \Gitlab\ResultPager($this->client))->fetchAll($this->client->projects(),"allMembers", [$this->id,$user_id]);
229+
else
230+
$data = $this->client->projects()->allMembers($this->id, $user_id);
231+
232+
if ($user_id != null)
233+
return User::fromArray($this->getClient(), $data);
234+
else {
235+
$members = array();
236+
foreach ($data as $member) {
237+
$members[] = User::fromArray($this->getClient(), $member);
238+
}
239+
return $members;
240+
}
241+
}
242+
220243
/**
221244
* @param string $username_query
222245
* @return User[]

0 commit comments

Comments
 (0)