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>tags/v14.0.0beta1
@@ -23,7 +23,7 @@ | |||
<FilesMatch "\.(css|js|svg|gif)$"> | |||
Header set Cache-Control "max-age=15778463" | |||
</FilesMatch> | |||
# Let browsers cache WOFF files for a week | |||
<FilesMatch "\.woff$"> | |||
Header set Cache-Control "max-age=604800" | |||
@@ -77,4 +77,4 @@ AddDefaultCharset utf-8 | |||
Options -Indexes | |||
<IfModule pagespeed_module> | |||
ModPagespeed Off | |||
</IfModule> | |||
</IfModule> |
@@ -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 !== '') { | |||
$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(?)'; | |||
} |
@@ -24,6 +24,7 @@ namespace Test\User; | |||
use OC\HintException; | |||
use Symfony\Component\EventDispatcher\EventDispatcher; | |||
use Symfony\Component\EventDispatcher\GenericEvent; | |||
use OC\User\User; | |||
/** | |||
* Class DatabaseTest | |||
@@ -113,4 +114,28 @@ class DatabaseTest extends Backend { | |||
$this->backend->createUser($user1, 'pw2'); | |||
$this->assertTrue($this->backend->userExists($user1)); | |||
} | |||
public function testSearch() { | |||
parent::testSearch(); | |||
$user1 = $this->getUser(); | |||
$this->backend->createUser($user1, 'pass1'); | |||
$user2 = $this->getUser(); | |||
$this->backend->createUser($user2, 'pass1'); | |||
$user1Obj = new User($user1, $this->backend); | |||
$user2Obj = new User($user2, $this->backend); | |||
$emailAddr1 = "$user1@nextcloud.com"; | |||
$emailAddr2 = "$user2@nextcloud.com"; | |||
$user1Obj->setEMailAddress($emailAddr1); | |||
$user2Obj->setEMailAddress($emailAddr2); | |||
$result = $this->backend->getUsers('@nextcloud.com'); | |||
$this->assertSame(2, count($result)); | |||
$result = $this->backend->getDisplayNames('@nextcloud.com'); | |||
$this->assertSame(2, count($result)); | |||
} | |||
} |