]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Add 'takeOverLogin' parameter for a real SSO feel
authorCraig Andrews <candrews@integralblue.com>
Mon, 4 Jan 2010 19:43:05 +0000 (14:43 -0500)
committerCraig Andrews <candrews@integralblue.com>
Mon, 4 Jan 2010 19:43:31 +0000 (14:43 -0500)
plugins/CasAuthentication/CasAuthenticationPlugin.php
plugins/CasAuthentication/README

index 8b6ef54621f28e51430d0299ff0eae5f88125544..8f29c7d2adaf29e17d7de9952faed24b2a83a906 100644 (file)
@@ -40,6 +40,7 @@ class CasAuthenticationPlugin extends AuthenticationPlugin
     public $server;
     public $port = 443;
     public $path = '';
+    public $takeOverLogin = false;
 
     function checkPassword($username, $password)
     {
@@ -62,6 +63,14 @@ class CasAuthenticationPlugin extends AuthenticationPlugin
         }
     }
 
+    function onArgsInitialize(&$args)
+    {
+        if($this->takeOverLogin && $args['action'] == 'login')
+        {
+            $args['action'] = 'caslogin';
+        }
+    }
+
     function onStartInitializeRouter($m)
     {
         $m->connect('main/cas', array('action' => 'caslogin'));
index 2ee54dc057150b631a963b342f5c2d8699709faa..c17a28e54a4097a1488e14ba06f181172988b8ab 100644 (file)
@@ -21,6 +21,9 @@ password_changeable*: must be set to false. This plugin does not support changin
 server*: CAS server to authentication against
 port (443): Port the CAS server listens on. Almost always 443
 path (): Path on the server to CAS. Usually blank.
+takeOverLogin (false): Take over the main login action. If takeOverLogin is
+    set, anytime the standard username/password login form would be shown,
+    a CAS login will be done instead.
 
 * required
 default values are in (parenthesis)
@@ -33,6 +36,7 @@ addPlugin('casAuthentication', array(
     'autoregistration'=>true,
     'server'=>'sso-cas.univ-rennes1.fr',
     'port'=>443,
-    'path'=>''
+    'path'=>'',
+    'takeOverLogin'=>true
 ));