1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/wallabag2_ynh.git synced 2024-10-01 13:35:06 +02:00
wallabag2_ynh/sources/patches/app-01-logout-success-handler.patch
JimboJoe 29ccad06f6 Refactoring, backup/restore, multi-instance (#28)
* Refactoring, backup/restore, multi-instance

* Use dedicated system user, backup before upgrade

* Set directory rights (fixes #31), point to localhost (fixes #29), use up-to-date php-fpm.conf

* Install dependencies when restoring

* Set Wallabag URL in internal settings

* Fix upgrade, use more forthcoming helpers

* fix #32, use latest mysql helpers

* Small fixes (redundant file, up-to-date check_process, syntax correction on app.src)
2017-05-18 15:24:33 +02:00

60 lines
2.1 KiB
Diff

diff --git a/app/config/security.yml b/app/config/security.yml
index b07b509..62f2550 100644
--- a/app/config/security.yml
+++ b/app/config/security.yml
@@ -60,7 +60,7 @@ security:
logout:
path: /logout
- target: /
+ success_handler: yunohost.logout_success_handler
access_control:
- { path: ^/api/doc, roles: IS_AUTHENTICATED_ANONYMOUSLY }
diff --git a/app/config/services.yml b/app/config/services.yml
index 8a09fde..ee63e06 100644
--- a/app/config/services.yml
+++ b/app/config/services.yml
@@ -37,6 +37,9 @@ services:
tags:
- { name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin }
+ yunohost.logout_success_handler:
+ class: Wallabag\YunoHostBundle\Security\LogoutSuccessHandler
+
yunohost.ldap:
class: Symfony\Component\Ldap\LdapClient
arguments: ["localhost"]
diff --git a/src/Wallabag/YunoHostBundle/Security/LogoutSuccessHandler.php b/src/Wallabag/YunoHostBundle/Security/LogoutSuccessHandler.php
new file mode 100644
index 0000000..b326824
--- /dev/null
+++ b/src/Wallabag/YunoHostBundle/Security/LogoutSuccessHandler.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Wallabag\YunoHostBundle\Security;
+
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\RedirectResponse;
+use Symfony\Component\Security\Http\Logout\LogoutSuccessHandlerInterface;
+
+/**
+ * Redirects to the SSO logout URL in case of a successful logout.
+ *
+ * @see http://api.symfony.com/3.1/Symfony/Component/Security/Http/Logout/LogoutSuccessHandlerInterface.html
+ */
+class LogoutSuccessHandler implements LogoutSuccessHandlerInterface
+{
+ /**
+ * {@inheritdoc}
+ */
+ public function onLogoutSuccess(Request $request)
+ {
+ // Retrieve the current SSO logout URL
+ $main_domain = exec('cat /etc/yunohost/current_host');
+ $url = 'https://' . $main_domain . '/yunohost/sso/?action=logout';
+
+ return new RedirectResponse($url);
+ }
+}