summaryrefslogtreecommitdiffstats
path: root/lib/private/User
diff options
context:
space:
mode:
authorAbijeet <abijeetpatro@gmail.com>2017-12-16 17:18:05 +0530
committerAbijeet <abijeetpatro@gmail.com>2017-12-16 17:18:05 +0530
commitec28c54dbca77a3aad8d34a327c89458889f70ff (patch)
tree84d8295fcf892441f8a66aa09f6cbff8fa8bd71a /lib/private/User
parentbd1e357eefee5ddfbb3b3567b0eae4f49bc22b75 (diff)
downloadnextcloud-server-ec28c54dbca77a3aad8d34a327c89458889f70ff.tar.gz
nextcloud-server-ec28c54dbca77a3aad8d34a327c89458889f70ff.zip
Adds search by email function on the users screen.
Fixes #7175. - Updated the query to fetch the users in users > everyone tab. - Updated the query to fetch the users in users > admin tab. - Tested to ensure that the disabled users are also being fetched. - Added test cases. Signed-off-by: Abijeet <abijeetpatro@gmail.com>
Diffstat (limited to 'lib/private/User')
-rw-r--r--lib/private/User/Database.php13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/private/User/Database.php b/lib/private/User/Database.php
index 471ff1f45ae..2d96369de63 100644
--- a/lib/private/User/Database.php
+++ b/lib/private/User/Database.php
@@ -194,7 +194,10 @@ class Database extends Backend implements IUserBackend {
if ($search !== '') {
$parameters[] = '%' . \OC::$server->getDatabaseConnection()->escapeLikeParameter($search) . '%';
$parameters[] = '%' . \OC::$server->getDatabaseConnection()->escapeLikeParameter($search) . '%';
- $searchLike = ' WHERE LOWER(`displayname`) LIKE LOWER(?) OR '
+ $parameters[] = '%' . \OC::$server->getDatabaseConnection()->escapeLikeParameter($search) . '%';
+ $searchLike .= ' LEFT JOIN `*PREFIX*preferences` ON `userid` = `uid` AND `appid` = \'settings\' AND `configkey` = \'email\'';
+ $searchLike .= ' WHERE LOWER(`configvalue`) LIKE LOWER(?)';
+ $searchLike .= ' OR LOWER(`displayname`) LIKE LOWER(?) OR '
. 'LOWER(`uid`) LIKE LOWER(?)';
}
@@ -288,8 +291,14 @@ class Database extends Backend implements IUserBackend {
$parameters = [];
$searchLike = '';
if ($search !== '') {
+ // Email
+ $parameters[] = '%' . \OC::$server->getDatabaseConnection()->escapeLikeParameter($search) . '%';
+ $searchLike .= ' LEFT JOIN `*PREFIX*preferences` ON `userid` = `uid` AND `appid` = \'settings\' AND `configkey` = \'email\'';
+ $searchLike .= ' WHERE LOWER(`configvalue`) LIKE LOWER(?)';
+ // UID
$parameters[] = '%' . \OC::$server->getDatabaseConnection()->escapeLikeParameter($search) . '%';
- $searchLike = ' WHERE LOWER(`uid`) LIKE LOWER(?)';
+ $searchLike .= ' OR LOWER(`uid`) LIKE LOWER(?)';
+ // Display name
$parameters[] = '%' . \OC::$server->getDatabaseConnection()->escapeLikeParameter($search) . '%';
$searchLike .= ' OR LOWER(`displayname`) LIKE LOWER(?)';
}