aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Wallabag/CoreBundle/Controller/EntryController.php30
-rw-r--r--src/Wallabag/CoreBundle/Entity/Entry.php2
2 files changed, 15 insertions, 17 deletions
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php
index e500ad75..d71ba6cd 100644
--- a/src/Wallabag/CoreBundle/Controller/EntryController.php
+++ b/src/Wallabag/CoreBundle/Controller/EntryController.php
@@ -465,8 +465,12 @@ class EntryController extends Controller
465 { 465 {
466 $this->checkUserAction($entry); 466 $this->checkUserAction($entry);
467 467
468 if ('' === $entry->getUuid() || null === $entry->getUuid()) { 468 if (null === $entry->getUuid()) {
469 $this->generateEntryUuid($entry); 469 $entry->generateUuid();
470
471 $em = $this->getDoctrine()->getManager();
472 $em->persist($entry);
473 $em->flush();
470 } 474 }
471 475
472 return $this->redirect($this->generateUrl('share_entry', [ 476 return $this->redirect($this->generateUrl('share_entry', [
@@ -488,6 +492,7 @@ class EntryController extends Controller
488 $this->checkUserAction($entry); 492 $this->checkUserAction($entry);
489 493
490 $entry->cleanUuid(); 494 $entry->cleanUuid();
495
491 $em = $this->getDoctrine()->getManager(); 496 $em = $this->getDoctrine()->getManager();
492 $em->persist($entry); 497 $em->persist($entry);
493 $em->flush(); 498 $em->flush();
@@ -498,31 +503,24 @@ class EntryController extends Controller
498 } 503 }
499 504
500 /** 505 /**
501 * Share entry content. 506 * Ability to view a content publicly.
502 * 507 *
503 * @param Entry $entry 508 * @param Entry $entry
504 * 509 *
505 * @Route("/share/{uuid}", requirements={"uuid" = ".+"}, name="share_entry") 510 * @Route("/share/{uuid}", requirements={"uuid" = ".+"}, name="share_entry")
506 * @Cache(maxage="25200", public=true) 511 * @Cache(maxage="25200", smaxage="25200", public=true)
507 * 512 *
508 * @return \Symfony\Component\HttpFoundation\Response 513 * @return \Symfony\Component\HttpFoundation\Response
509 */ 514 */
510 public function shareEntryAction(Entry $entry) 515 public function shareEntryAction(Entry $entry)
511 { 516 {
517 if (!$this->get('craue_config')->get('share_public')) {
518 throw $this->createAccessDeniedException('Sharing an entry is disabled for this user.');
519 }
520
512 return $this->render( 521 return $this->render(
513 '@WallabagCore/themes/share.html.twig', 522 '@WallabagCore/themes/share.html.twig',
514 array('entry' => $entry) 523 ['entry' => $entry]
515 ); 524 );
516 } 525 }
517
518 /**
519 * @param Entry $entry
520 */
521 private function generateEntryUuid(Entry $entry)
522 {
523 $entry->generateUuid();
524 $em = $this->getDoctrine()->getManager();
525 $em->persist($entry);
526 $em->flush();
527 }
528} 526}
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php
index 67c2bb43..4d7e001b 100644
--- a/src/Wallabag/CoreBundle/Entity/Entry.php
+++ b/src/Wallabag/CoreBundle/Entity/Entry.php
@@ -627,7 +627,7 @@ class Entry
627 627
628 public function generateUuid() 628 public function generateUuid()
629 { 629 {
630 if (empty($this->uuid) || is_null($this->uuid)) { 630 if (null === $this->uuid) {
631 // @see http://blog.kevingomez.fr/til/2015/07/26/why-is-uniqid-slow/ for true parameter 631 // @see http://blog.kevingomez.fr/til/2015/07/26/why-is-uniqid-slow/ for true parameter
632 $this->uuid = uniqid('', true); 632 $this->uuid = uniqid('', true);
633 } 633 }