announces.user_id -> announces.uid
[platal.git] / modules / openid / openid.inc.php
index 455e9df..09dfe9c 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2009 Polytechnique.org                              *
+ *  Copyright (C) 2003-2010 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -106,10 +106,11 @@ class OpenId
 
     // Answers the current request, and renders the response. Appends the |sreg|
     // data when not null.
-    public function AnswerRequest($is_authorized, $user = null, $sreg_data = null)
+    public function AnswerRequest($is_authorized, $sreg_data = null)
     {
         // Creates the response.
-        if ($is_authorized && $this->request->idSelect() && $user) {
+        if ($is_authorized && $this->request->idSelect()) {
+            $user = S::user();
             $response = $this->request->answer(
                 $is_authorized, null, $user->login(), $this->GetUserUrl($user));
         } else {
@@ -176,7 +177,7 @@ class OpenId
     // Renders the main XRDS page.
     public function RenderMainXrdsPage(&$page)
     {
-        header('Content-type: application/xrds+xml');
+        pl_content_headers("application/xrds+xml");
         $page->changeTpl('openid/idp_xrds.tpl', NO_SKIN);
         $page->assign('type2', Auth_OpenID_TYPE_2_0_IDP);
         $page->assign('sreg', Auth_OpenID_SREG_URI);
@@ -186,7 +187,7 @@ class OpenId
     // Renders the XRDS page of |user|.
     public function RenderUserXrdsPage(&$page, User &$user)
     {
-        header('Content-type: application/xrds+xml');
+        pl_content_headers("application/xrds+xml");
         $page->changeTpl('openid/user_xrds.tpl', NO_SKIN);
         $page->assign('type2', Auth_OpenID_TYPE_2_0);
         $page->assign('type1', Auth_OpenID_TYPE_1_1);
@@ -203,12 +204,16 @@ class OpenId
             header(sprintf('%s %d', $_SERVER['SERVER_PROTOCOL'], $web_response->code),
                    true, $web_response->code);
 
-            foreach ($web_response->headers as $key => $value) {
-                header(sprintf('%s: %s', $key, $value));
-            }
+            if (is_a($response, 'Auth_OpenID_ServerError')) {
+                print "Erreur lors de l'authentification OpenId: " . $response->toString();
+            } else {
+                foreach ($web_response->headers as $key => $value) {
+                    header(sprintf('%s: %s', $key, $value));
+                }
 
-            header('Connection: close');
-            print $web_response->body;
+                header('Connection: close');
+                print $web_response->body;
+            }
         }
         exit;
     }