Пример #1
0
 public function logindevAction()
 {
     //Apply only in development enviroments
     if (ApplicationConfiguration::isEnviroment("production") === FALSE) {
         $this->_helper->layout->disableLayout();
         $this->_helper->viewRenderer->setNoRender();
         $this->session->userid = isset($_GET["id"]) ? $_GET["id"] : NULL;
         $us = new Default_Model_Researchers();
         $us->viewModerated = true;
         $us->filter->id->equals($this->session->userid);
         if (count($us->items) > 0) {
             $this->session->username = $us->items[0]->username;
             $this->session->fullName = $us->items[0]->name;
             $this->session->userRole = $us->items[0]->positionTypeID;
             $this->session->userCountryID = $us->items[0]->countryID;
             $this->session->userCountryName = $us->items[0]->country->name;
             $this->session->cname = $us->items[0]->cname;
         } else {
             $this->logoutAction();
         }
         $this->view->session = $this->session;
         $this->view->entries = null;
         $users = new Default_Model_Researchers();
         $users->viewModerated = true;
         $users->filter->id->equals($this->session->userid);
         if (count($users->items) > 0) {
             $user = $users->items[0];
             setcookie("SimpleSAMLAuthToken", "09a4fcd92a07c008c2de0dcba1665580", 0, "/", null, true, true);
             //Create new user credentials
             $cred = new Default_Model_UserCredential();
             $cred->researcherid = $this->session->userid;
             $cred->sessionid = session_id();
             $cred->token = '09a4fcd92a07c008c2de0dcba1665580';
             $cred->save();
             $this->session->developsession = true;
             if ($user->deleted === true) {
                 //Setup session variables in case of deleted profile
                 $this->session->userDeleted = $user->deleted;
                 if (isset($user->delInfo)) {
                     $this->session->userDeletedById = $user->delInfo->deleter->id;
                     $this->session->userDeletedByName = $user->delInfo->deleter->name;
                     $this->session->userDeletedByCName = $user->delInfo->deleter->cname;
                     $this->session->userDeletedOn = $user->delInfo->deletedOn;
                 } else {
                     $this->session->userDeletedById = null;
                     $this->session->userDeletedByName = null;
                     $this->session->userDeletedByCName = null;
                     $this->session->userDeletedOn = null;
                 }
                 $this->_redirect('/saml/deletedprofile');
                 return;
             } else {
                 //Get first user account and initialize saml session
                 $uaccounts = new Default_Model_UserAccounts();
                 $uaccounts->filter->researcherid->equals($user->id);
                 if (count($uaccounts->items) > 0) {
                     $uaccount = $uaccounts->items[0];
                     SamlAuth::setupSamlSession($this->session, $uaccount, $user);
                 }
             }
         }
         header('Location: https://' . $_SERVER['HTTP_HOST']);
         $this->session->userWarning = array("title" => "Development user", "message" => "You are currently signed in developer mode");
     }
 }