Add Wallabag\CoreBundle\Helper\UrlHasher

Signed-off-by: Olivier Mehani <shtrom@ssji.net>
This commit is contained in:
Olivier Mehani
2019-05-10 22:07:55 +10:00
committed by Jeremy Benoist
parent d5744bf0df
commit 4a5516376b
5 changed files with 79 additions and 21 deletions

View File

@ -9,6 +9,7 @@ use Pagerfanta\Adapter\DoctrineORMAdapter;
use Pagerfanta\Pagerfanta;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Entity\Tag;
use Wallabag\CoreBundle\Helper\UrlHasher;
class EntryRepository extends EntityRepository
{
@ -349,7 +350,7 @@ class EntryRepository extends EntityRepository
public function findByUrlAndUserId($url, $userId)
{
return $this->findByHashedUrlAndUserId(
hash('sha1', $url), // XXX: the hash logic would better be in a separate util to avoid duplication with GenerateUrlHashesCommand::generateHashedUrls
UrlHasher::hashUrl($url),
$userId);
}
@ -506,6 +507,32 @@ class EntryRepository extends EntityRepository
return $this->find($randomId);
}
/**
* Inject a UrlHasher.
*
* @param UrlHasher $hasher
*/
public function setUrlHasher(UrlHasher $hasher)
{
$this->urlHasher = $hasher;
}
/**
* Get the UrlHasher, or create a default one if not injected.
*
* XXX: the default uses the default hash algorithm
*
* @return UrlHasher
*/
protected function getUrlHasher()
{
if (!isset($this->urlHasher)) {
$this->setUrlHasher(new UrlHasher());
}
return $this->urlHasher;
}
/**
* Return a query builder to be used by other getBuilderFor* method.
*