X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fopenid%2Fopenid.inc.php;h=0e0caa1c5a3ffb47c7c9c4e16756b0f9fc5643d5;hb=9d2891168071e97f95b049ac1defae29eadbede7;hp=455e9df2525c48d8c60a1b6f3aecc67868afadee;hpb=c1390811bf369427ff56838c96fca813c81b714c;p=platal.git diff --git a/modules/openid/openid.inc.php b/modules/openid/openid.inc.php index 455e9df..0e0caa1 100644 --- a/modules/openid/openid.inc.php +++ b/modules/openid/openid.inc.php @@ -1,6 +1,6 @@ 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 { @@ -137,8 +138,8 @@ class OpenId { $res = XDB::query( "SELECT COUNT(*) - FROM openid_trusted - WHERE (user_id = {?} OR user_id IS NULL) AND url = {?}", + FROM account_auth_openid + WHERE (uid = {?} OR uid IS NULL) AND url = {?}", $user->id(), $this->request->trust_root); return ($res->fetchOneCell() > 0); } @@ -150,8 +151,8 @@ class OpenId $initial_trust = $this->IsEndpointTrusted($user); if (!$initial_trust && $trusted && $permanent_trust) { XDB::execute( - "INSERT IGNORE INTO openid_trusted - SET user_id = {?}, url = {?}", + "INSERT IGNORE INTO account_auth_openid + SET uid = {?}, url = {?}", $user->id(), $this->request->trust_root); } @@ -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; }