Added API procedure "getMemberGroups"
This commit is contained in:
@@ -10,6 +10,7 @@ New features:
|
|||||||
|
|
||||||
Improvements:
|
Improvements:
|
||||||
|
|
||||||
|
* Added API procedure "getMemberGroups"
|
||||||
* Added parameters for overdue tasks notifications: group by projects and send only to managers
|
* Added parameters for overdue tasks notifications: group by projects and send only to managers
|
||||||
* Allow people to install Kanboard outside of the DocumentRoot
|
* Allow people to install Kanboard outside of the DocumentRoot
|
||||||
* Allow plugins to be loaded from another folder
|
* Allow plugins to be loaded from another folder
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ namespace Kanboard\Api;
|
|||||||
*/
|
*/
|
||||||
class GroupMember extends \Kanboard\Core\Base
|
class GroupMember extends \Kanboard\Core\Base
|
||||||
{
|
{
|
||||||
|
public function getMemberGroups($user_id)
|
||||||
|
{
|
||||||
|
return $this->groupMember->getGroups($user_id);
|
||||||
|
}
|
||||||
|
|
||||||
public function getGroupMembers($group_id)
|
public function getGroupMembers($group_id)
|
||||||
{
|
{
|
||||||
return $this->groupMember->getMembers($group_id);
|
return $this->groupMember->getMembers($group_id);
|
||||||
|
|||||||
@@ -108,4 +108,21 @@ class GroupMember extends Base
|
|||||||
->eq('user_id', $user_id)
|
->eq('user_id', $user_id)
|
||||||
->exists();
|
->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
|
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
|
## getGroupMembers
|
||||||
|
|
||||||
- Purpose: **Get all members of a group**
|
- Purpose: **Get all members of a group**
|
||||||
|
|||||||
@@ -30,6 +30,14 @@ class GroupMemberTest extends Base
|
|||||||
$this->assertFalse($this->app->isGroupMember($groupId, 2));
|
$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()
|
public function testRemove()
|
||||||
{
|
{
|
||||||
$groupId = $this->getGroupId();
|
$groupId = $this->getGroupId();
|
||||||
|
|||||||
@@ -72,5 +72,35 @@ class GroupMemberTest extends Base
|
|||||||
$this->assertCount(2, $users);
|
$this->assertCount(2, $users);
|
||||||
$this->assertEquals('admin', $users[0]['username']);
|
$this->assertEquals('admin', $users[0]['username']);
|
||||||
$this->assertEquals('user1', $users[1]['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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user