Integrated FOSUserBundle (#216)
This commit is contained in:
@@ -60,13 +60,20 @@ class UserRepository extends AbstractRepository implements UserLoaderInterface
|
||||
->orderBy('u.' . $query->getOrderBy(), $query->getOrder());
|
||||
|
||||
if (UserQuery::SHOW_VISIBLE == $query->getVisibility()) {
|
||||
$qb->andWhere('u.active = 1');
|
||||
$qb->andWhere('u.enabled = 1');
|
||||
} elseif (UserQuery::SHOW_HIDDEN == $query->getVisibility()) {
|
||||
$qb->andWhere('u.active = 0');
|
||||
$qb->andWhere('u.enabled = 0');
|
||||
}
|
||||
|
||||
if ($query->getRole() !== null) {
|
||||
$qb->andWhere('u.roles LIKE :role')->setParameter('role', '%' . $query->getRole() . '%');
|
||||
$rolesWhere = 'u.roles LIKE :role';
|
||||
$qb->setParameter('role', '%' . $query->getRole() . '%');
|
||||
// a hack as FOSUserBundle does not save the ROLE_USER in the database as it is the default role
|
||||
if ($query->getRole() === User::ROLE_USER) {
|
||||
$rolesWhere .= ' OR u.roles LIKE :role1';
|
||||
$qb->setParameter('role1', '%{}');
|
||||
}
|
||||
$qb->andWhere($rolesWhere);
|
||||
}
|
||||
|
||||
return $this->getPager($qb->getQuery(), $query->getPage(), $query->getPageSize());
|
||||
|
||||
Reference in New Issue
Block a user