Example #1
0
 /**
  *    openidAction
  *
  *    Blah
  */
 public function openidAction()
 {
     $auth = Zend_Auth::getInstance();
     // Get url helper
     $urlHelper = $this->_helper->getHelper('url');
     // if user is already logged in redirect away from here
     if ($auth->hasIdentity()) {
         $target = $urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
         $this->_redirect($target);
     }
     // end if
     // if openid provider returns data
     //$status = "";
     if (isset($_POST['openid_action']) && !empty($_POST['openid_identifier'])) {
         $consumer = new Zend_OpenId_Consumer();
         if (!$consumer->login($_POST['openid_identifier'])) {
             //$status = "LOGIN FAILED";
             $this->view->errormsg = $this->view->translate('account-openid-login-not-successful');
         }
     } else {
         if (isset($_GET['openid_mode'])) {
             if ($_GET['openid_mode'] == "id_res") {
                 $consumer = new Zend_OpenId_Consumer();
                 if ($consumer->verify($_GET, $id)) {
                     $formOptions = htmlspecialchars($id);
                     $userProfiles = new Default_Model_UserProfiles();
                     $openIdResults = $userProfiles->searchUserOpenid($formOptions);
                     // if attached openid is found
                     if ($openIdResults) {
                         $userid = $openIdResults['id_usr_usp'];
                         //$status = "VALID " . $formOptions . " / " . $userid;
                         $user = new Default_Model_User($userid);
                         $user->loginSuccess();
                         $identity = $user->createAuthIdentity();
                         $auth->getStorage()->write($identity);
                         $target = $urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
                         $this->_redirect($target);
                     } else {
                         //$status = "INVALID, NO ATTACHED OPENID FOUND FOR " . $formOptions;
                         $this->view->errormsg = $this->view->translate('account-openid-login-not-successful');
                     }
                 } else {
                     //$status = "INVALID " . htmlspecialchars($id);
                     $this->view->errormsg = $this->view->translate('account-openid-login-not-successful');
                 }
             } else {
                 if ($_GET['openid_mode'] == "cancel") {
                     //$status = "CANCELLED";
                     $this->view->errormsg = $this->view->translate('account-openid-login-not-successful');
                 }
             }
         }
     }
     //echo $status;
     $form = new Default_Form_OpenIDLoginForm();
     $this->view->form = $form;
 }