# HG changeset patch # User clebeaupin # Date 1273182544 -7200 # Node ID 2c81a2ebea3971126c6d58af256f8a31d5c4679a # Parent 53fc6b77c6766d45c4e9a0cb86febf9a6f85ffba FIx open id diff -r 53fc6b77c676 -r 2c81a2ebea39 web/thdProject/apps/frontend/lib/myUser.class.php --- a/web/thdProject/apps/frontend/lib/myUser.class.php Wed May 05 16:33:19 2010 +0200 +++ b/web/thdProject/apps/frontend/lib/myUser.class.php Thu May 06 23:49:04 2010 +0200 @@ -14,8 +14,7 @@ public function getUid() { if (!$this->isAuthenticated()) return false; - // FIXME - return "thd.fake"; + return $this->getIdentity(); } public function logout() { diff -r 53fc6b77c676 -r 2c81a2ebea39 web/thdProject/apps/frontend/modules/account/actions/loginUserAction.class.php --- a/web/thdProject/apps/frontend/modules/account/actions/loginUserAction.class.php Wed May 05 16:33:19 2010 +0200 +++ b/web/thdProject/apps/frontend/modules/account/actions/loginUserAction.class.php Thu May 06 23:49:04 2010 +0200 @@ -1,23 +1,64 @@ isMethod('post')) { - if (sfConfig::get('app_openid_fake') === true) { - $user = $this->getUser(); - $user->login(null); - return $this->redirect('@homepage'); + if (!$request->isMethod('post')) return "Form"; + $login = $request->getParameter('login', null); + + if (sfConfig::get('app_openid_fake') === true) { + + $user = $this->getUser(); + $user->login($login); + return $this->redirect('@homepage'); + } else { + if (!is_null($login)) { + $identity = sfConfig::get('app_openid_service_uri').$login.'/'; } else { - // Get openid object - $openid = $this->getOpenIdObject(); + $identity = $request->getParameter('oid', null); + } + + if (is_null($identity)) return "Form"; + + $openid = ThdUtil::getOpenIdObject($identity); + // Redirect to open id provider + $redirectUrl = $openid->getRedirectURL(false); + $nextStep = $openid->getRedirectURL($immediate, $submitLabel); + + if (($nextStep['type'] == 'url') && (!empty($nextStep['content']))) { + // Using OpenID 1 => redirection using URL + $result['success'] = true; + + $result['htmlCode'] = ""; // auto redirect if js on + $result['htmlCode'] .= "getRedirectURL(false); - return $this->redirect($redirectUrl['content']); + foreach ($linkAttrs as $name => $attr) { + $result['htmlCode'] .= sprintf(" %s=\"%s\"", $name, $attr); + } + $result['htmlCode'] .= ">$linkLabel"; + $result['htmlCode'] .= ""; // Hide the link if js on (=auto redirect) } - } + else if (($nextStep['type'] == 'form') && (!empty($nextStep['content']))) { + // Using OpenID 2 => redirection using a form + $result['success'] = true; - return "Form"; + $result['htmlCode'] = $nextStep['content']; + $result['htmlCode'] .= ""; // Auto submit if js on + $result['htmlCode'] .= ""; // hide form if js on + } + else { + // Show an error message + if (empty($nextStep['content'])) + $result['error'] = "Unexpected error."; + else + $result['error'] = $nextStep['content']; + } + + if (!isset($result['success'])) return "Form"; + + return $this->renderText($result['htmlCode']); + } } } \ No newline at end of file diff -r 53fc6b77c676 -r 2c81a2ebea39 web/thdProject/apps/frontend/modules/account/actions/openidLoginAction.class.php --- a/web/thdProject/apps/frontend/modules/account/actions/openidLoginAction.class.php Wed May 05 16:33:19 2010 +0200 +++ b/web/thdProject/apps/frontend/modules/account/actions/openidLoginAction.class.php Thu May 06 23:49:04 2010 +0200 @@ -1,10 +1,11 @@ getOpenIdObject(); + $identity = $request->getParameter('openid.identity'); + $openid = ThdUtil::getOpenIdObject($identity); // Check authentication validity $authResult = $openid->getAuthResult(); @@ -12,7 +13,10 @@ if ($authResult['result'] == sfPHPOpenID::AUTH_SUCCESS) { // User is authenticated by open id provider - $user->login($authResult['identity']); + $serviceUri = sfConfig::get('app_openid_service_uri'); + $login = substr($authResult['identity'], strlen($serviceUri)); + $login = str_replace('/', '', $login); + $user->login($login); } else { $user->setFlash('login_error', 'Authentification échoué'); } diff -r 53fc6b77c676 -r 2c81a2ebea39 web/thdProject/apps/frontend/modules/account/templates/_loginUserFormHeader.php diff -r 53fc6b77c676 -r 2c81a2ebea39 web/thdProject/apps/frontend/modules/account/templates/loginUserForm.php --- a/web/thdProject/apps/frontend/modules/account/templates/loginUserForm.php Wed May 05 16:33:19 2010 +0200 +++ b/web/thdProject/apps/frontend/modules/account/templates/loginUserForm.php Thu May 06 23:49:04 2010 +0200 @@ -2,7 +2,11 @@

Pas encore inscrit ?

Bienvenue dans le projet UniversCiné THD.

Ce site entre dans le cadre d'un projet de recherche sur le très haut débit réunissant trois acteurs autour de ce site :
UniversCiné, l'iri, Sony CSL et Cap digital
-
+ +
+ + +
diff -r 53fc6b77c676 -r 2c81a2ebea39 web/thdProject/apps/frontend/modules/partials/templates/_userPanel.php --- a/web/thdProject/apps/frontend/modules/partials/templates/_userPanel.php Wed May 05 16:33:19 2010 +0200 +++ b/web/thdProject/apps/frontend/modules/partials/templates/_userPanel.php Thu May 06 23:49:04 2010 +0200 @@ -1,7 +1,7 @@