diff options
author | Bjoern Schiessle <bjoern@schiessle.org> | 2017-04-21 18:42:28 +0300 |
---|---|---|
committer | Bjoern Schiessle <bjoern@schiessle.org> | 2017-04-21 18:42:28 +0300 |
commit | 631e594d98f036d3e64048ebe61a0b09735841af (patch) | |
tree | d553532f89ecd5ff95cee7d313b56d42eda4d628 | |
parent | cd051fc1062f5e3feee3230fa1069f9a64af2028 (diff) |
allow to search exact cloud ids, needed to let the client check whether the users email address was verified successfully
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
-rw-r--r-- | server/lib/UserManager.php | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/server/lib/UserManager.php b/server/lib/UserManager.php index 8c995d5..abd20f8 100644 --- a/server/lib/UserManager.php +++ b/server/lib/UserManager.php @@ -28,6 +28,14 @@ class UserManager { return $response; } $search = $params['search']; + $searchCloudId = $params['exactCloudId']; + + if ($searchCloudId === '1') { + $user = $this->getExactCloudId($search); + $response->getBody()->write(json_encode($user)); + return $response; + } + $stmt = $this->db->prepare('SELECT * FROM ( SELECT userId AS userId, SUM(valid) AS karma @@ -60,6 +68,20 @@ LIMIT 50'); return $response; } + private function getExactCloudId($cloudId) { + $stmt = $this->db->prepare('SELECT id FROM users WHERE federationId = :id'); + $stmt->bindParam(':id', $cloudId); + $stmt->execute(); + $data = $stmt->fetch(); + + if (!$data) { + return []; + } + + return $this->getForUserId((int)$data['id']); + + } + private function getForUserId($userId) { $stmt = $this->db->prepare('SELECT * FROM users WHERE id = :id'); $stmt->bindParam(':id', $userId, \PDO::PARAM_INT); |