Merge pull request #1887 from wallabag/v2-duplicate-bookmarklet

Fix duplicate article when added via the bookmarklet
This commit is contained in:
Jeremy Benoist 2016-04-10 15:37:33 +02:00
commit c71d83b60c

View File

@ -49,8 +49,7 @@ class EntryController extends Controller
$form->handleRequest($request);
if ($form->isValid()) {
// check for existing entry, if it exists, redirect to it with a message
$existingEntry = $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($entry->getUrl(), $this->getUser()->getId());
$existingEntry = $this->checkIfEntryAlreadyExists($entry);
if (false !== $existingEntry) {
$this->get('session')->getFlashBag()->add(
@ -86,7 +85,10 @@ class EntryController extends Controller
{
$entry = new Entry($this->getUser());
$entry->setUrl($request->get('url'));
$this->updateEntry($entry);
if (false === $this->checkIfEntryAlreadyExists($entry)) {
$this->updateEntry($entry);
}
return $this->redirect($this->generateUrl('homepage'));
}
@ -420,4 +422,16 @@ class EntryController extends Controller
throw $this->createAccessDeniedException('You can not access this entry.');
}
}
/**
* Check for existing entry, if it exists, redirect to it with a message.
*
* @param $entry
*
* @return array|bool
*/
private function checkIfEntryAlreadyExists($entry)
{
return $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($entry->getUrl(), $this->getUser()->getId());
}
}