Skip to content

Commit 8d72bdf

Browse files
committed
Search also the email and displayname in user mangement for groups
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
1 parent 7b91cb5 commit 8d72bdf

1 file changed

Lines changed: 18 additions & 6 deletions

File tree

lib/private/Group/Database.php

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -348,15 +348,27 @@ public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
348348
$this->fixDI();
349349

350350
$query = $this->dbConn->getQueryBuilder();
351-
$query->select('uid')
352-
->from('group_user')
351+
$query->select('g.uid')
352+
->from('group_user', 'g')
353353
->where($query->expr()->eq('gid', $query->createNamedParameter($gid)))
354-
->orderBy('uid', 'ASC');
354+
->orderBy('g.uid', 'ASC');
355355

356356
if ($search !== '') {
357-
$query->andWhere($query->expr()->like('uid', $query->createNamedParameter(
358-
'%' . $this->dbConn->escapeLikeParameter($search) . '%'
359-
)));
357+
$query->leftJoin('g', 'users', 'u', $query->expr()->eq('g.uid', 'u.uid'))
358+
->leftJoin('u', 'preferences', 'p', $query->expr()->andX(
359+
$query->expr()->eq('userid', 'u.uid'),
360+
$query->expr()->eq('appid', $query->expr()->literal('settings')),
361+
$query->expr()->eq('configkey', $query->expr()->literal('email')))
362+
)
363+
// sqlite doesn't like re-using a single named parameter here
364+
->andWhere(
365+
$query->expr()->orX(
366+
$query->expr()->ilike('g.uid', $query->createNamedParameter('%' . $this->dbConn->escapeLikeParameter($search) . '%')),
367+
$query->expr()->ilike('displayname', $query->createNamedParameter('%' . $this->dbConn->escapeLikeParameter($search) . '%')),
368+
$query->expr()->ilike('configvalue', $query->createNamedParameter('%' . $this->dbConn->escapeLikeParameter($search) . '%'))
369+
)
370+
)
371+
->orderBy('uid_lower', 'ASC');
360372
}
361373

362374
if ($limit !== -1) {

0 commit comments

Comments
 (0)