示例#1
0
 /**
  * Retrieves an existing password recovery request.
  * 
  * @param int $id
  * @return PasswordRecoveryRequest
  * @throws PasswordRecoveryException
  */
 public function getPasswordRecoveryRequest($id)
 {
     $data = $this->conn->fetchAssoc('SELECT u.*, r.`id` AS `req_id`, r.`userId` AS `req_userId`, r.`status` AS `req_status`, r.`provisionKey` AS `req_provisionKey`, r.`requestIp` AS `req_requestIp`, r.`requestTime` AS `req_requestTime` ' . 'FROM `' . CoreTables::PASSWORD_RECOVERY_TBL . '` r ' . 'INNER JOIN `' . CoreTables::USER_TBL . '` u ON u.`id` = r.`userId` ' . 'WHERE r.`id` = :requestId', [':requestId' => $id]);
     if (empty($data)) {
         throw new PasswordRecoveryException('Unknown registration request.');
     }
     return PasswordRecoveryRequest::fromArray(User::fromArray($data), $data);
 }
示例#2
0
文件: User.php 项目: zyxist/cantiga
 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;
 }
示例#3
0
 /**
  * @return User
  */
 public function getItem($id) : User
 {
     $this->transaction->requestTransaction();
     $data = $this->conn->fetchAssoc('SELECT * FROM `' . CoreTables::USER_TBL . '` WHERE `id` = :id', [':id' => $id]);
     if (null === $data) {
         $this->transaction->requestRollback();
         throw new ItemNotFoundException('The specified item has not been found.', $id);
     }
     return User::fromArray($data);
 }