Bugfix on ML subscription validation.
[platal.git] / modules / openid.php
index 5b4eaff..826c78c 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2009 Polytechnique.org                              *
+ *  Copyright (C) 2003-2011 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -61,16 +61,16 @@ class OpenidModule extends PLModule
     function handlers()
     {
         return array(
-            'openid'                => $this->make_hook('openid', AUTH_PUBLIC),
-            'openid/melix'          => $this->make_hook('melix', AUTH_PUBLIC),
-            'openid/xrds'           => $this->make_hook('xrds', AUTH_PUBLIC),
-            'openid/trust'          => $this->make_hook('trust', AUTH_MDP),
-            'openid/trusted'        => $this->make_hook('trusted', AUTH_MDP),
-            'admin/openid/trusted'  => $this->make_hook('admin_trusted', AUTH_MDP, 'admin'),
+            'openid'               => $this->make_hook('openid',        AUTH_PUBLIC),
+            'openid/melix'         => $this->make_hook('melix',         AUTH_PUBLIC),
+            'openid/xrds'          => $this->make_hook('xrds',          AUTH_PUBLIC),
+            'openid/trust'         => $this->make_hook('trust',         AUTH_PASSWD, 'user'),
+            'openid/trusted'       => $this->make_hook('trusted',       AUTH_PASSWD, 'user'),
+            'admin/openid/trusted' => $this->make_hook('admin_trusted', AUTH_PASSWD, 'admin'),
         );
     }
 
-    function handler_openid(&$page, $login = null)
+    function handler_openid($page, $login = null)
     {
         $this->load('openid.inc.php');
         $requested_user = User::getSilent($login);
@@ -118,7 +118,7 @@ class OpenidModule extends PLModule
                 $openid_args = $server->GetQueryStringForRequest();
                 if (S::logged()) {
                     pl_redirect('openid/trust', $openid_args);
-                } else if (count($_POST)) {
+                } else if (Post::has('openid_mode')) {
                     pl_redirect('openid', $openid_args);
                 } else {
                     return PL_DO_AUTH;
@@ -133,7 +133,7 @@ class OpenidModule extends PLModule
         pl_redirect('');
     }
 
-    function handler_melix(&$page, $login = null)
+    function handler_melix($page, $login = null)
     {
         $this->load('openid.inc.php');
 
@@ -148,7 +148,7 @@ class OpenidModule extends PLModule
         }
     }
 
-    function handler_xrds(&$page, $login = null)
+    function handler_xrds($page, $login = null)
     {
         $this->load('openid.inc.php');
         $requested_user = User::getSilent($login);
@@ -163,7 +163,7 @@ class OpenidModule extends PLModule
         }
     }
 
-    function handler_trust(&$page)
+    function handler_trust($page)
     {
         $this->load('openid.inc.php');
         $server = new OpenId();
@@ -197,32 +197,33 @@ class OpenidModule extends PLModule
 
         // Finally answers the request.
         if ($server->IsUserAuthorized($user) && $trusted) {
-            $server->AnswerRequest(
-                true, $user, Post::b('trust_sreg') ? $sreg_response : null);
+            $server->AnswerRequest(true, Post::b('trust_sreg') ? $sreg_response : null);
         } else {
             $server->AnswerRequest(false);
         }
     }
 
-    function handler_trusted(&$page, $action = 'list', $id = null)
+    function handler_trusted($page, $action = 'list', $id = null)
     {
         $page->setTitle('Sites tiers de confiance');
         $page->assign('title', 'Mes sites tiers de confiance pour OpenId');
-        $table_editor = new PLTableEditor('openid/trusted', 'openid_trusted', 'id');
-        $table_editor->set_where_clause('user_id = ' . XDB::escape(S::user()->id()));
-        $table_editor->vars['user_id']['display'] = false;
+        $table_editor = new PLTableEditor('openid/trusted', 'account_auth_openid', 'id');
+        $table_editor->set_where_clause(XDB::format('uid = {?}',  S::user()->id()));
+        $table_editor->vars['uid']['display_list'] = false;
+        $table_editor->vars['uid']['display_item'] = false;
         $table_editor->describe('url', 'site tiers', true);
         $page->assign('deleteonly', true);
         $table_editor->apply($page, $action, $id);
     }
 
-    function handler_admin_trusted(&$page, $action = 'list', $id = null)
+    function handler_admin_trusted($page, $action = 'list', $id = null)
     {
         $page->setTitle('Sites tiers de confiance');
         $page->assign('title', 'Sites tiers de confiance globaux pour OpenId');
-        $table_editor = new PLTableEditor('admin/openid/trusted', 'openid_trusted', 'id');
-        $table_editor->set_where_clause('user_id IS NULL');
-        $table_editor->vars['user_id']['display'] = false;
+        $table_editor = new PLTableEditor('admin/openid/trusted', 'account_auth_openid', 'id');
+        $table_editor->set_where_clause('uid IS NULL');
+        $table_editor->vars['uid']['display_list'] = false;
+        $table_editor->vars['uid']['display_item'] = false;
         $table_editor->describe('url', 'site tiers', true);
         $page->assign('readonly', true);
         $table_editor->apply($page, $action, $id);