/** * Akce po úspěšném přihlášení */ public function loginOK() { try { $session = JFactory::getSession(); $skautIsToken = @$_REQUEST['skautIS_Token']; $soap = new SoapClient($this->skautisUrl . '/JunakWebservice/UserManagement.asmx?WSDL'); $params = array('userDetailInput' => array('ID_Login' => $_REQUEST['skautIS_Token'])); $userDetail = @$soap->UserDetail($params)->UserDetailResult; if ($userDetail->IsActive && $userDetail->IsEnabled) { $username = $userDetail->UserName; $idPerson = $userDetail->ID_Person; $idUser = $userDetail->ID; $hasMembership = $userDetail->HasMembership; if ($idPerson) { $soapOrg = new SoapClient($this->skautisUrl . '/JunakWebservice/OrganizationUnit.asmx?WSDL'); $params = array('personDetailInput' => array('ID_Login' => $skautIsToken, 'ID' => $idPerson)); $personDetail = @$soapOrg->PersonDetail($params)->PersonDetailResult; } else { $personDetail = null; } //zjištění, jestli zvolený uživatel existuje => pokud ne, tak ho nově vytvoříme /** @var $usersModel SkautisModelUsers */ $usersModel =& $this->getModel('Users', 'SkautisModel'); if ($usersModel->userExists($idUser, $username)) { //uživatel existuje - jen ho aktualizujeme if ($personDetail) { $usersModel->updateSkautisUser($userDetail, $personDetail); //aktualizace uživatelského jména a e-mailu } } else { //potřebujeme zaregistrovat nového uživatele $usersModel->registerSkautisUser($userDetail, $personDetail); } $session->set('skautIsToken', $skautIsToken, 'skautIs'); $app = JFactory::getApplication(); $app->login(array('username' => $userDetail->UserName, 'password' => 'skautis', 'skautisUserId' => $idUser, 'user' => $usersModel->getUserId($idUser), 'timestamp' => time()), array('silent' => false)); //aktualizace fotky $params = array('personPhotoInput' => array('ID_Login' => $skautIsToken, 'ID' => $idPerson, 'Size' => 'normal')); $personPhoto = @$soapOrg->PersonPhoto($params)->PersonPhotoResult; if ($personPhoto) { $photoUrl = $usersModel->updateSkautisUserPhoto($idPerson, $personPhoto, 'normal'); if ($photoUrl) { $session->set('userPhoto', $photoUrl, 'skautIs'); } else { $session->clear('userPhoto', 'skautIs'); } } //--aktualizace fotky $this->setRedirect('/'); } else { //zobrazení informace o tom, že uživatel není aktivní JFactory::getApplication()->enqueueMessage(JText::_('SKAUTIS_USER_NOT_ACTIVE'), 'error'); } } catch (Exception $e) { JFactory::getApplication()->enqueueMessage(JText::_('SKAUTIS_LOGIN_ERROR'), 'error'); } }