mirror of
https://github.com/YunoHost-Apps/wallabag2_ynh.git
synced 2024-10-01 13:35:06 +02:00
[enh] Handle the logging out with the SSO
This commit is contained in:
parent
cfef8b83da
commit
ad938108e1
1 changed files with 60 additions and 0 deletions
60
patches/01-logout-success-handler.patch
Normal file
60
patches/01-logout-success-handler.patch
Normal file
|
@ -0,0 +1,60 @@
|
|||
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);
|
||||
+ }
|
||||
+}
|
Loading…
Add table
Reference in a new issue