diff options
-rw-r--r-- | app/Api/User.php | 5 | ||||
-rw-r--r-- | doc/api-user-procedures.markdown | 42 | ||||
-rw-r--r-- | tests/integration/ApiTest.php | 14 |
3 files changed, 61 insertions, 0 deletions
diff --git a/app/Api/User.php b/app/Api/User.php index 63c222fe..9f26615d 100644 --- a/app/Api/User.php +++ b/app/Api/User.php @@ -21,6 +21,11 @@ class User extends \Kanboard\Core\Base return $this->user->getById($user_id); } + public function getUserByName($username) + { + return $this->user->getByUsername($username); + } + public function getAllUsers() { return $this->user->getAll(); diff --git a/doc/api-user-procedures.markdown b/doc/api-user-procedures.markdown index 6ecf12c6..9b43e1e1 100644 --- a/doc/api-user-procedures.markdown +++ b/doc/api-user-procedures.markdown @@ -113,6 +113,48 @@ Response example: } ``` +## getUserByName + +- Purpose: **Get user information** +- Parameters: + - **username** (string, required) +- Result on success: **user properties** +- Result on failure: **null** + +Request example: + +```json +{ + "jsonrpc": "2.0", + "method": "getUserByName", + "id": 1769674782, + "params": { + "username": "biloute" + } +} +``` + +Response example: + +```json +{ + "jsonrpc": "2.0", + "id": 1769674782, + "result": { + "id": "1", + "username": "biloute", + "password": "$2y$10$dRs6pPoBu935RpmsrhmbjevJH5MgZ7Kr9QrnVINwwyZ3.MOwqg.0m", + "role": "app-user", + "is_ldap_user": "0", + "name": "", + "email": "", + "google_id": null, + "github_id": null, + "notifications_enabled": "0" + } +} +``` + ## getAllUsers - Purpose: **Get all available users** diff --git a/tests/integration/ApiTest.php b/tests/integration/ApiTest.php index 798bde42..8b970a6c 100644 --- a/tests/integration/ApiTest.php +++ b/tests/integration/ApiTest.php @@ -563,6 +563,20 @@ class Api extends PHPUnit_Framework_TestCase $this->assertNull($this->client->getUser(2222)); } + public function testGetUserByName() + { + $user = $this->client->getUserByName('toto'); + $this->assertNotFalse($user); + $this->assertTrue(is_array($user)); + $this->assertEquals(2, $user['id']); + + $user = $this->client->getUserByName('manager'); + $this->assertNotEmpty($user); + $this->assertEquals('app-manager', $user['role']); + + $this->assertNull($this->client->getUserByName('nonexistantusername')); + } + public function testUpdateUser() { $user = array(); |