public function createFilterClause() { $op = QueryOperator::op(' AND '); if (null !== $this->status) { $op->expr(QueryClause::clause('i.status = :status', ':status', $this->status)); } if (null !== $this->territory) { $op->expr(QueryClause::clause('i.territoryId = :territoryId', ':territoryId', $this->territory->getId())); } return $op; }
public static function fetchLinkedProfile(Connection $conn, MembershipRoleResolver $roleResolver, IdentifiableInterface $item, Join $join, QueryElement $element) { $qb = QueryBuilder::select()->field('u.*')->field('p.*')->field('m.role AS `membership_role`')->field('m.note AS `membership_note`')->field('l.`id`', 'language_id')->field('l.`name`', 'language_name')->field('l.`locale`', 'language_locale')->from(CoreTables::USER_TBL, 'u')->join(CoreTables::USER_PROFILE_TBL, 'p', QueryClause::clause('p.`userId` = u.`id`'))->join(CoreTables::LANGUAGE_TBL, 'l', QueryClause::clause('l.`id` = p.`settingsLanguageId`'))->join($join)->where(QueryOperator::op('AND')->expr(QueryClause::clause('u.`active` = 1 AND u.`removed` = 0'))->expr($element)); $data = $qb->fetchAssoc($conn); if (false === $data) { return false; } $user = User::fromArray($data); $membership = new Membership($item, $roleResolver->getRole(get_class($item), $data['membership_role']), $data['membership_note']); User::installMembershipInformation($user, $membership); return $user; }
public function findUserByNameMail($username, $email) { return User::fetchByCriteria($this->conn, QueryOperator::op('AND')->expr(QueryClause::clause('u.`login` = :login', ':login', $username))->expr(QueryClause::clause('u.`email` = :email', ':email', $email))); }
/** * @param $membershipEntity Entity whose members we want to view * @param $id User ID * @return User */ public function getItem(MembershipEntityInterface $membershipEntity, $id) { $this->transaction->requestTransaction(); try { $user = User::fetchLinkedProfile($this->conn, $this->roleResolver, $membershipEntity, Join::create($this->membershipTable(), 'm', QueryClause::clause('m.userId = u.id')), QueryOperator::op('AND')->expr(QueryClause::clause('m.' . $this->entityColumn() . ' = :entityId', ':entityId', $membershipEntity->getId()))->expr(QueryClause::clause('u.`id` = :userId', ':userId', $id))); if (false === $user) { throw new ItemNotFoundException('The specified user has not been found.'); } return $user; } catch (Exception $exception) { $this->transaction->requestRollback(); throw $exception; } }
private function buildSearchClause() { $bIdx = 0; $op = QueryOperator::op(' OR '); if (!empty($this->searchString)) { foreach ($this->columns as $column) { if ($column['type'] == self::TYPE_SEARCHABLE) { $op->expr(QueryClause::clause($column['db'] . ' LIKE :bIdx' . $bIdx, ':bIdx' . $bIdx, '%' . $this->searchString . '%')); $bIdx++; } } } if ($bIdx > 0) { return $op; } return null; }