]> git.immae.eu Git - github/wallabag/wallabag.git/blame - src/Wallabag/CoreBundle/Repository/SiteCredentialRepository.php
CS
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Repository / SiteCredentialRepository.php
CommitLineData
f92fcb53
JB
1<?php
2
3namespace Wallabag\CoreBundle\Repository;
4
906424c1
JB
5use Wallabag\CoreBundle\Helper\CryptoProxy;
6
f92fcb53
JB
7/**
8 * SiteCredentialRepository.
f92fcb53
JB
9 */
10class SiteCredentialRepository extends \Doctrine\ORM\EntityRepository
11{
906424c1
JB
12 private $cryptoProxy;
13
14 public function setCrypto(CryptoProxy $cryptoProxy)
15 {
16 $this->cryptoProxy = $cryptoProxy;
17 }
18
5a9bc007
JB
19 /**
20 * Retrieve one username/password for the given host and userId.
21 *
22 * @param string $host
23 * @param int $userId
24 *
963b8736 25 * @return array|null
5a9bc007
JB
26 */
27 public function findOneByHostAndUser($host, $userId)
28 {
906424c1 29 $res = $this->createQueryBuilder('s')
5a9bc007
JB
30 ->select('s.username', 's.password')
31 ->where('s.host = :hostname')->setParameter('hostname', $host)
32 ->andWhere('s.user = :userId')->setParameter('userId', $userId)
33 ->setMaxResults(1)
34 ->getQuery()
35 ->getOneOrNullResult();
906424c1
JB
36
37 if (null === $res) {
38 return;
39 }
40
bead8b42
TC
41 // decrypt user & password before returning them
42 $res['username'] = $this->cryptoProxy->decrypt($res['username']);
906424c1
JB
43 $res['password'] = $this->cryptoProxy->decrypt($res['password']);
44
45 return $res;
5a9bc007 46 }
f92fcb53 47}