Fix login on X.net with only 'groups' perm.
authorRaphaël Barrois <raphael.barrois@polytechnique.org>
Sun, 28 Sep 2014 11:19:55 +0000 (13:19 +0200)
committerNicolas Iooss <nicolas.iooss_git@polytechnique.org>
Sun, 16 Nov 2014 14:14:50 +0000 (15:14 +0100)
modules/xnet.php

index d7726b3..a1bba73 100644 (file)
@@ -27,6 +27,7 @@ class XnetModule extends PLModule
             'index'        => $this->make_hook('index',        AUTH_PUBLIC),
             'exit'         => $this->make_hook('exit',         AUTH_PUBLIC),
 
+            'login'        => $this->make_hook('login',        AUTH_COOKIE, 'groups'),
             'admin'        => $this->make_hook('admin',        AUTH_PASSWD, 'admin'),
             'groups'       => $this->make_hook('groups',       AUTH_PUBLIC),
             'groupes.php'  => $this->make_hook('groups2',      AUTH_PUBLIC),
@@ -40,6 +41,14 @@ class XnetModule extends PLModule
         );
     }
 
+    function handler_login()
+    {
+        // We require different credentials for '/login/' ("groups" instead of "user").
+        // We have to redirect the call to the actual CoreModule->handler_login.
+        $args = func_get_args();
+        return call_user_func_array(array("CoreModule", "handler_login"), $args);
+    }
+
     function handler_photo($page, $x = null)
     {
         if (!$x || !($profile = Profile::get($x))) {