Escape like parameters in database user backend

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
This commit is contained in:
Lukas Reschke 2017-03-15 22:46:40 +01:00
parent 93c9a06761
commit 085891a15d
No known key found for this signature in database
GPG Key ID: B9F6980CF6E759B1
1 changed files with 7 additions and 3 deletions

View File

@ -68,6 +68,9 @@ class Database extends Backend implements IUserBackend {
/** @var EventDispatcher */
private $eventDispatcher;
/** @var \OCP\IDBConnection */
private $connection;
/**
* \OC\User\Database constructor.
*
@ -76,6 +79,7 @@ class Database extends Backend implements IUserBackend {
public function __construct($eventDispatcher = null) {
$this->cache = new CappedMemoryCache();
$this->eventDispatcher = $eventDispatcher ? $eventDispatcher : \OC::$server->getEventDispatcher();
$this->connection = \OC::$server->getDatabaseConnection();
}
/**
@ -185,8 +189,8 @@ class Database extends Backend implements IUserBackend {
$parameters = [];
$searchLike = '';
if ($search !== '') {
$parameters[] = '%' . $search . '%';
$parameters[] = '%' . $search . '%';
$parameters[] = '%' . $this->connection->escapeLikeParameter($search) . '%';
$parameters[] = '%' . $this->connection->escapeLikeParameter($search) . '%';
$searchLike = ' WHERE LOWER(`displayname`) LIKE LOWER(?) OR '
. 'LOWER(`uid`) LIKE LOWER(?)';
}
@ -275,7 +279,7 @@ class Database extends Backend implements IUserBackend {
$parameters = [];
$searchLike = '';
if ($search !== '') {
$parameters[] = '%' . $search . '%';
$parameters[] = '%' . $this->connection->escapeLikeParameter($search) . '%';
$searchLike = ' WHERE LOWER(`uid`) LIKE LOWER(?)';
}