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