diff --git a/module/gitlab/control.php b/module/gitlab/control.php index 3c66e4f251..be5aeeaa68 100644 --- a/module/gitlab/control.php +++ b/module/gitlab/control.php @@ -314,15 +314,15 @@ class gitlab extends control } $groups = $this->gitlab->apiGetGroups($gitlabID, $orderBy); - $adminGroups = $this->gitlab->apiGetGroups($gitlabID, $orderBy, $this->config->gitlab->accessLevel['owner']); + $adminGroups = $this->gitlab->apiGetGroups($gitlabID, $orderBy, 'owner'); - $adminGropuIDList = array(); - foreach($adminGroups as $group) $adminGropuIDList[] = $group->id; + $adminGroupIDList = array(); + foreach($adminGroups as $group) $adminGroupIDList[] = $group->id; $this->view->title = $this->lang->gitlab->common . $this->lang->colon . $this->lang->gitlab->browseGroup; $this->view->gitlabID = $gitlabID; $this->view->gitlabGroupList = $groups; - $this->view->adminGropuIDList = $adminGropuIDList; + $this->view->adminGroupIDList = $adminGroupIDList; $this->view->orderBy = $orderBy; $this->display(); } @@ -656,7 +656,7 @@ class gitlab extends control /* Get group id list by gitlab user that the user is maintainer. */ $groupIDList = array(0 => 0); - $groups = $this->gitlab->apiGetGroups($gitlabID, 'name_asc', $this->config->gitlab->accessLevel['maintainer']); + $groups = $this->gitlab->apiGetGroups($gitlabID, 'name_asc', 'maintainer'); foreach($groups as $group) $groupIDList[] = $group->id; foreach($result['projects'] as $key => $project) diff --git a/module/gitlab/model.php b/module/gitlab/model.php index dac6b9b3bd..c52520c498 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -592,11 +592,18 @@ class gitlabModel extends model * @access public * @return object */ - public function apiGetGroups($gitlabID, $orderBy, $minAccessLevel = 0) + public function apiGetGroups($gitlabID, $orderBy, $minRole = '') { $apiRoot = $this->getApiRoot($gitlabID); $url = sprintf($apiRoot, "/groups"); - if($minAccessLevel > 0) $url .= "&min_access_level=$minAccessLevel"; + if($minRole == 'owner') + { + $url .= '&owned=true'; + } + elseif(!empty($minRole)) + { + $url .= "&min_access_level=$this->config->gitlab->accessLevel[$minRole]"; + } list($order, $sort) = explode('_', $orderBy); @@ -2777,7 +2784,7 @@ class gitlabModel extends model { if(empty($groupIDList)) { - $groups = $this->apiGetGroups($gitlabID, 'name_asc', $accessLevel); + $groups = $this->apiGetGroups($gitlabID, 'name_asc', $maxRole); foreach($groups as $group) $groupIDList[] = $group->id; } diff --git a/module/gitlab/view/browsegroup.html.php b/module/gitlab/view/browsegroup.html.php index 9bf643b6ca..c89eb929be 100644 --- a/module/gitlab/view/browsegroup.html.php +++ b/module/gitlab/view/browsegroup.html.php @@ -55,7 +55,7 @@ created_at, 0, 10);?> user->admin or in_array($gitlabGroup->id, $adminGropuIDList)) ? '' : 'disabled'; + $adminClass = ($app->user->admin or in_array($gitlabGroup->id, $adminGroupIDList)) ? '' : 'disabled'; common::printLink('gitlab', 'manageGroupMembers', "gitlabID=$gitlabID&groupID=$gitlabGroup->id", " ", '',"title='{$lang->gitlab->group->manageMembers}' class='btn btn-primary'"); common::printLink('gitlab', 'editGroup', "gitlabID=$gitlabID&groupID=$gitlabGroup->id", " ", '', "title='{$lang->gitlab->group->edit}' class='btn btn-primary {$adminClass}'"); if(common::hasPriv('gitlab', 'delete')) echo html::a($this->createLink('gitlab', 'deleteGroup', "gitlabID=$gitlabID&groupID=$gitlabGroup->id"), '', 'hiddenwin', "title='{$lang->gitlab->deleteGroup}' class='btn {$adminClass}'");