diff options
author | Ryan Weaver <ryan@thatsquality.com> | 2016-02-06 17:29:58 -0500 |
---|---|---|
committer | Fabien Potencier <fabien.potencier@gmail.com> | 2016-03-02 13:34:27 +0100 |
commit | 0d6c99afcc9f9392a4eea87caa9b197f176d54b7 (patch) | |
tree | 3a1cb28f5513b7e3b19394aabf624fe138915824 /Http/Util | |
parent | a07df7b1ba2f304191e4b2232072f34475bd5bcc (diff) | |
download | symfony-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.php | 58 |
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'); + } +} |