summaryrefslogtreecommitdiffstats
path: root/Http/Util
diff options
context:
space:
mode:
authorRyan Weaver <ryan@thatsquality.com>2016-02-06 17:29:58 -0500
committerFabien Potencier <fabien.potencier@gmail.com>2016-03-02 13:34:27 +0100
commit0d6c99afcc9f9392a4eea87caa9b197f176d54b7 (patch)
tree3a1cb28f5513b7e3b19394aabf624fe138915824 /Http/Util
parenta07df7b1ba2f304191e4b2232072f34475bd5bcc (diff)
downloadsymfony-security-0d6c99afcc9f9392a4eea87caa9b197f176d54b7.zip
symfony-security-0d6c99afcc9f9392a4eea87caa9b197f176d54b7.tar.gz
symfony-security-0d6c99afcc9f9392a4eea87caa9b197f176d54b7.tar.bz2
Adding new TargetPathTrait to get/set the authentication "target_path"
Diffstat (limited to 'Http/Util')
-rw-r--r--Http/Util/TargetPathTrait.php58
1 files changed, 58 insertions, 0 deletions
diff --git a/Http/Util/TargetPathTrait.php b/Http/Util/TargetPathTrait.php
new file mode 100644
index 0000000..62a196e
--- /dev/null
+++ b/Http/Util/TargetPathTrait.php
@@ -0,0 +1,58 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Security\Http\Util;
+
+use Symfony\Component\HttpFoundation\Session\SessionInterface;
+
+/**
+ * Trait to get (and set) the URL the user last visited before being forced to authenticate.
+ */
+trait TargetPathTrait
+{
+ /**
+ * Set the target path the user should be redirected to after authentication.
+ *
+ * Usually, you do not need to set this directly.
+ *
+ * @param SessionInterface $session
+ * @param string $providerKey The name of your firewall
+ * @param string $uri The URI to set as the target path
+ */
+ private function saveTargetPath(SessionInterface $session, $providerKey, $uri)
+ {
+ $session->set('_security.'.$providerKey.'.target_path', $uri);
+ }
+
+ /**
+ * Returns the URL (if any) the user visited that forced them to login.
+ *
+ * @param SessionInterface $session
+ * @param string $providerKey The name of your firewall
+ *
+ * @return string
+ */
+ private function getTargetPath(SessionInterface $session, $providerKey)
+ {
+ return $session->get('_security.'.$providerKey.'.target_path');
+ }
+
+ /**
+ * Removes the target path from the session.
+ *
+ * @param SessionInterface $session
+ * @param string $providerKey The name of your firewall
+ */
+ private function removeTargetPath(SessionInterface $session, $providerKey)
+ {
+ $session->remove('_security.'.$providerKey.'.target_path');
+ }
+}