Added API procedure "getMemberGroups"
This commit is contained in:
parent
b0e41bc81b
commit
60e0753b90
|
|
@ -10,6 +10,7 @@ New features:
|
|||
|
||||
Improvements:
|
||||
|
||||
* Added API procedure "getMemberGroups"
|
||||
* Added parameters for overdue tasks notifications: group by projects and send only to managers
|
||||
* Allow people to install Kanboard outside of the DocumentRoot
|
||||
* Allow plugins to be loaded from another folder
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@ namespace Kanboard\Api;
|
|||
*/
|
||||
class GroupMember extends \Kanboard\Core\Base
|
||||
{
|
||||
public function getMemberGroups($user_id)
|
||||
{
|
||||
return $this->groupMember->getGroups($user_id);
|
||||
}
|
||||
|
||||
public function getGroupMembers($group_id)
|
||||
{
|
||||
return $this->groupMember->getMembers($group_id);
|
||||
|
|
|
|||
|
|
@ -108,4 +108,21 @@ class GroupMember extends Base
|
|||
->eq('user_id', $user_id)
|
||||
->exists();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all groups for a given user
|
||||
*
|
||||
* @access public
|
||||
* @param integer $user_id
|
||||
* @return array
|
||||
*/
|
||||
public function getGroups($user_id)
|
||||
{
|
||||
return $this->db->table(self::TABLE)
|
||||
->columns(Group::TABLE.'.id', Group::TABLE.'.name')
|
||||
->join(Group::TABLE, 'id', 'group_id')
|
||||
->eq(self::TABLE.'.user_id', $user_id)
|
||||
->asc(Group::TABLE.'.name')
|
||||
->findAll();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,42 @@
|
|||
Group Member API Procedures
|
||||
===========================
|
||||
|
||||
## getMemberGroups
|
||||
|
||||
- Purpose: **Get all groups for a given user**
|
||||
- Parameters:
|
||||
- **user_id** (integer, required)
|
||||
- Result on success: **List of groups**
|
||||
- Result on failure: **false**
|
||||
|
||||
Request example:
|
||||
|
||||
```json
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"method": "getMemberGroups",
|
||||
"id": 1987176726,
|
||||
"params": [
|
||||
"1"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Response example:
|
||||
|
||||
```json
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1987176726,
|
||||
"result": [
|
||||
{
|
||||
"id": "1",
|
||||
"name": "My Group A"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## getGroupMembers
|
||||
|
||||
- Purpose: **Get all members of a group**
|
||||
|
|
|
|||
|
|
@ -30,6 +30,14 @@ class GroupMemberTest extends Base
|
|||
$this->assertFalse($this->app->isGroupMember($groupId, 2));
|
||||
}
|
||||
|
||||
public function testGetGroups()
|
||||
{
|
||||
$groups = $this->app->getMemberGroups(1);
|
||||
$this->assertCount(1, $groups);
|
||||
$this->assertEquals(1, $groups[0]['id']);
|
||||
$this->assertEquals('My Group A', $groups[0]['name']);
|
||||
}
|
||||
|
||||
public function testRemove()
|
||||
{
|
||||
$groupId = $this->getGroupId();
|
||||
|
|
|
|||
|
|
@ -72,5 +72,35 @@ class GroupMemberTest extends Base
|
|||
$this->assertCount(2, $users);
|
||||
$this->assertEquals('admin', $users[0]['username']);
|
||||
$this->assertEquals('user1', $users[1]['username']);
|
||||
|
||||
$groups = $groupMemberModel->getGroups(1);
|
||||
$this->assertCount(1, $groups);
|
||||
$this->assertEquals(1, $groups[0]['id']);
|
||||
$this->assertEquals('Group A', $groups[0]['name']);
|
||||
|
||||
$groups = $groupMemberModel->getGroups(2);
|
||||
$this->assertCount(1, $groups);
|
||||
$this->assertEquals(1, $groups[0]['id']);
|
||||
$this->assertEquals('Group A', $groups[0]['name']);
|
||||
|
||||
$groups = $groupMemberModel->getGroups(3);
|
||||
$this->assertCount(1, $groups);
|
||||
$this->assertEquals(2, $groups[0]['id']);
|
||||
$this->assertEquals('Group B', $groups[0]['name']);
|
||||
|
||||
$groups = $groupMemberModel->getGroups(4);
|
||||
$this->assertCount(1, $groups);
|
||||
$this->assertEquals(2, $groups[0]['id']);
|
||||
$this->assertEquals('Group B', $groups[0]['name']);
|
||||
|
||||
$groups = $groupMemberModel->getGroups(5);
|
||||
$this->assertCount(2, $groups);
|
||||
$this->assertEquals(1, $groups[0]['id']);
|
||||
$this->assertEquals('Group A', $groups[0]['name']);
|
||||
$this->assertEquals(2, $groups[1]['id']);
|
||||
$this->assertEquals('Group B', $groups[1]['name']);
|
||||
|
||||
$groups = $groupMemberModel->getGroups(6);
|
||||
$this->assertCount(0, $groups);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue