<?php
/***************************************************************************
- * Copyright (C) 2003-2009 Polytechnique.org *
+ * Copyright (C) 2003-2014 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
// SimpleRegistration helpers ----------------------------------------------
// Determines which SREG data are requested by the endpoint, and returns them.
- public function GetSRegDataForRequest(User &$user)
+ public function GetSRegDataForRequest(User $user)
{
require_once 'Auth/OpenID/SReg.php';
// 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 {
{
$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);
}
// Updates the trust level for the given endpoint, based on the value pf
// |trusted| and |permanent_trust| (the latter is ignored when the former
// value is false). Returns true iff the current endpoint is trusted.
- public function UpdateEndpointTrust(User &$user, $trusted, $permanent_trust) {
+ public function UpdateEndpointTrust(User $user, $trusted, $permanent_trust) {
$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);
}
// Page renderers ----------------------------------------------------------
// Renders the OpenId discovery page for |user|.
- public function RenderDiscoveryPage(&$page, User &$user)
+ public function RenderDiscoveryPage($page, User $user)
{
$page->changeTpl('openid/openid.tpl');
$page->setTitle($user->fullName());
}
// Renders the main XRDS page.
- public function RenderMainXrdsPage(&$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);
}
// Renders the XRDS page of |user|.
- public function RenderUserXrdsPage(&$page, User &$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);
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;
}
// URL providers -----------------------------------------------------------
// Returns the OpenId identity URL of the requested user.
- private function GetUserUrl(User &$user)
+ private function GetUserUrl(User $user)
{
return $this->base_url . '/' . $user->login();
}
// Returns the private XRDS page of a user.
- private function GetUserXrdsUrl(User &$user)
+ private function GetUserXrdsUrl(User $user)
{
return $this->base_url . '/xrds/' . $user->login();
}
}
}
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
?>