コード例 #1
0
 function modify($tpl, $operatorName, $operatorParameters, $rootNamespace, $currentNamespace, &$operatorValue, $namedParameters)
 {
     $redirectUri = $namedParameters['url'];
     // if $redirectUri is not starting with scheme://
     if (!preg_match('#^\\w+://#', $redirectUri)) {
         // path to eZ Publish index
         $indexDir = eZSys::indexDir();
         /* We need to make sure we have one
            and only one slash at the concatenation point
            between $indexDir and $redirectUri. */
         $redirectUri = rtrim($indexDir, '/') . '/' . ltrim($redirectUri, '/');
     }
     // Redirect to $redirectUri by returning status code 301 and exit.
     eZHTTPTool::redirect($redirectUri, array(), 301);
     eZExecution::cleanExit();
 }
コード例 #2
0
 /**
  * Returns a shared instance of the eZUser class pr $id value.
  * If user can not be fetched, then anonymous user is returned and
  * a warning trown, if anonymous user can not be fetched, then NoUser
  * is returned and another warning is thrown.
  *
  * @param int|false $id On false: Gets current user id from session
  *        or from {@link eZUser::anonymousId()} if not set.
  * @return eZUser
  */
 static function instance($id = false)
 {
     if (!empty($GLOBALS["eZUserGlobalInstance_{$id}"])) {
         return $GLOBALS["eZUserGlobalInstance_{$id}"];
     }
     $userId = $id;
     $currentUser = null;
     $http = eZHTTPTool::instance();
     $anonymousUserID = self::anonymousId();
     $sessionHasStarted = eZSession::hasStarted();
     // If not specified get the current user
     if ($userId === false) {
         if ($sessionHasStarted) {
             $userId = $http->sessionVariable('eZUserLoggedInID');
             if (!is_numeric($userId)) {
                 $userId = $anonymousUserID;
                 eZSession::setUserID($userId);
                 $http->setSessionVariable('eZUserLoggedInID', $userId);
             }
         } else {
             $userId = $anonymousUserID;
             eZSession::setUserID($userId);
         }
     }
     // Check user cache (this effectivly fetches user from cache)
     // user not found if !isset( isset( $userCache['info'][$userId] ) )
     $userCache = self::getUserCacheByUserId($userId);
     if (isset($userCache['info'][$userId])) {
         $userArray = $userCache['info'][$userId];
         if (is_numeric($userArray['contentobject_id'])) {
             $currentUser = new eZUser($userArray);
             $currentUser->setUserCache($userCache);
         }
     }
     $ini = eZINI::instance();
     // Check if:
     // - the user has not logged out,
     // - the user is not logged in,
     // - and if a automatic single sign on plugin is enabled.
     if (!self::$userHasLoggedOut && is_object($currentUser) && !$currentUser->isRegistered()) {
         $ssoHandlerArray = $ini->variable('UserSettings', 'SingleSignOnHandlerArray');
         if (!empty($ssoHandlerArray)) {
             $ssoUser = false;
             foreach ($ssoHandlerArray as $ssoHandler) {
                 $className = 'eZ' . $ssoHandler . 'SSOHandler';
                 if (class_exists($className)) {
                     $impl = new $className();
                     $ssoUser = $impl->handleSSOLogin();
                     // If a user was found via SSO, then use it
                     if ($ssoUser !== false) {
                         $currentUser = $ssoUser;
                         $userId = $currentUser->attribute('contentobject_id');
                         $userInfo = array();
                         $userInfo[$userId] = array('contentobject_id' => $userId, 'login' => $currentUser->attribute('login'), 'email' => $currentUser->attribute('email'), 'password_hash' => $currentUser->attribute('password_hash'), 'password_hash_type' => $currentUser->attribute('password_hash_type'));
                         eZSession::setUserID($userId);
                         $http->setSessionVariable('eZUserLoggedInID', $userId);
                         eZUser::updateLastVisit($userId);
                         eZUser::setCurrentlyLoggedInUser($currentUser, $userId);
                         eZHTTPTool::redirect(eZSys::wwwDir() . eZSys::indexFile(false) . eZSys::requestURI() . eZSys::queryString(), array(), 302);
                         eZExecution::cleanExit();
                     }
                 } else {
                     eZDebug::writeError("Undefined ssoHandler class: {$className}", __METHOD__);
                 }
             }
         }
     }
     if ($userId != $anonymousUserID) {
         $sessionInactivityTimeout = $ini->variable('Session', 'ActivityTimeout');
         if (!isset($GLOBALS['eZSessionIdleTime'])) {
             eZUser::updateLastVisit($userId);
         } else {
             $sessionIdle = $GLOBALS['eZSessionIdleTime'];
             if ($sessionIdle > $sessionInactivityTimeout) {
                 eZUser::updateLastVisit($userId);
             }
         }
     }
     if (!$currentUser) {
         $currentUser = eZUser::fetch(self::anonymousId());
         eZDebug::writeWarning('User not found, returning anonymous');
     }
     if (!$currentUser) {
         $currentUser = new eZUser(array('id' => -1, 'login' => 'NoUser'));
         eZDebug::writeWarning('Anonymous user not found, returning NoUser');
     }
     $GLOBALS["eZUserGlobalInstance_{$id}"] = $currentUser;
     return $currentUser;
 }
コード例 #3
0
 static function checkUser(&$siteBasics, &$url)
 {
     $http = eZHTTPTool::instance();
     if (!$http->hasSessionVariable(self::STEP)) {
         $http->setSessionVariable(self::STEP, self::STEP_PRE_CHECK_USER_INFO);
     }
     $loginStep =& $http->sessionVariable(self::STEP);
     if ($http->hasSessionVariable(self::FORCE_LOGIN) && $loginStep < self::STEP_PRE_COLLECT_USER_INFO) {
         $loginStep = self::STEP_PRE_COLLECT_USER_INFO;
     }
     switch ($loginStep) {
         case self::STEP_PRE_CHECK_USER_INFO:
             $ini = eZINI::instance();
             $handlerList = array('standard');
             if ($ini->hasVariable('UserSettings', 'LoginHandler')) {
                 $handlerList = $ini->variable('UserSettings', 'LoginHandler');
             }
             if ($http->hasSessionVariable(self::LAST_HANDLER_NAME)) {
                 $http->removeSessionVariable(self::LAST_HANDLER_NAME);
             }
             foreach ($handlerList as $handler) {
                 $userObject = eZUserLoginHandler::instance($handler);
                 if ($userObject) {
                     $check = $userObject->checkUser($siteBasics, $url);
                     if ($check === null) {
                         eZUserLoginHandler::sessionCleanup();
                         return null;
                     }
                     $http->setSessionVariable(self::LAST_CHECK_REDIRECT, $check);
                     $http->setSessionVariable(self::LAST_HANDLER_NAME, $handler);
                 }
             }
             $http->setSessionVariable(self::STEP, self::STEP_PRE_COLLECT_USER_INFO);
             return eZUserLoginHandler::checkUser($siteBasics, $url);
             break;
         case self::STEP_PRE_COLLECT_USER_INFO:
             $http->setSessionVariable(self::STEP, self::STEP_POST_COLLECT_USER_INFO);
             $handler = null;
             if ($http->hasSessionVariable(self::LAST_HANDLER_NAME)) {
                 $handlerName = $http->sessionVariable(self::LAST_HANDLER_NAME);
                 $handler = eZUserLoginHandler::instance($handlerName);
             }
             if ($handler) {
                 return $handler->preCollectUserInfo();
             } else {
                 $redirect =& $http->sessionVariable(self::LAST_CHECK_REDIRECT);
                 if (!$redirect) {
                     $redirect = array('module' => 'user', 'function' => 'login');
                 }
                 return $redirect;
             }
             break;
         case self::STEP_POST_COLLECT_USER_INFO:
             $http->setSessionVariable(self::STEP, self::STEP_LOGIN_USER);
             $handler = null;
             if ($http->hasSessionVariable(self::LAST_HANDLER_NAME)) {
                 $handlerName = $http->sessionVariable(self::LAST_HANDLER_NAME);
                 $handler = eZUserLoginHandler::instance($handlerName);
             }
             if ($handler) {
                 // Use specified login handler to handle Login info input
                 if (!$handler->postCollectUserInfo()) {
                     eZUserLoginHandler::sessionCleanup();
                     eZHTTPTool::redirect('/');
                     eZExecution::cleanExit();
                 }
             }
             return eZUserLoginHandler::checkUser($siteBasics, $url);
             break;
         case self::STEP_LOGIN_USER:
             $ini = eZINI::instance();
             $handlerList = array('standard');
             if ($ini->hasVariable('UserSettings', 'LoginHandler')) {
                 $handlerList = $ini->variable('UserSettings', 'LoginHandler');
             }
             $userInfoArray =& $http->sessionVariable(self::USER_INFO);
             $http->removeSessionVariable(self::USER_INFO);
             if ($http->hasSessionVariable(self::FORCE_LOGIN)) {
                 $http->removeSessionVariable(self::FORCE_LOGIN);
             }
             $user = null;
             if (is_array($userInfoArray) and $userInfoArray['login'] and $userInfoArray['password']) {
                 foreach ($handlerList as $handler) {
                     $userObject = eZUserLoginHandler::instance($handler);
                     if ($userObject) {
                         $user = $userObject->loginUser($userInfoArray['login'], $userInfoArray['password']);
                         if (is_subclass_of($user, 'eZUser')) {
                             eZUserLoginHandler::sessionCleanup();
                             return null;
                         } else {
                             if (is_array($user)) {
                                 eZUserLoginHandler::sessionCleanup();
                                 return $user;
                             }
                         }
                     }
                 }
             }
             $http->setSessionVariable(self::STEP, self::STEP_PRE_CHECK_USER_INFO);
             return eZUserLoginHandler::checkUser($siteBasics, $url);
             break;
     }
 }
コード例 #4
0
 /**
  * Performs a redirection
  */
 protected function redirect()
 {
     $GLOBALS['eZRedirection'] = true;
     $ini = eZINI::instance();
     $automaticRedirect = true;
     if ($GLOBALS['eZDebugAllowed'] && ($redirUri = $ini->variable('DebugSettings', 'DebugRedirection')) !== 'disabled') {
         if ($redirUri == "enabled") {
             $automaticRedirect = false;
         } else {
             $uri = eZURI::instance(eZSys::requestURI());
             $uri->toBeginning();
             foreach ($ini->variableArray("DebugSettings", "DebugRedirection") as $redirUri) {
                 $redirUri = new eZURI($redirUri);
                 if ($redirUri->matchBase($uri)) {
                     $automaticRedirect = false;
                     break;
                 }
             }
         }
     }
     $redirectURI = eZSys::indexDir();
     $moduleRedirectUri = $this->module->redirectURI();
     if ($ini->variable('URLTranslator', 'Translation') === 'enabled' && eZURLAliasML::urlTranslationEnabledByUri(new eZURI($moduleRedirectUri))) {
         $translatedModuleRedirectUri = $moduleRedirectUri;
         if (eZURLAliasML::translate($translatedModuleRedirectUri, true)) {
             $moduleRedirectUri = $translatedModuleRedirectUri;
             if (strlen($moduleRedirectUri) > 0 && $moduleRedirectUri[0] !== '/') {
                 $moduleRedirectUri = '/' . $moduleRedirectUri;
             }
         }
     }
     if (preg_match('#^(\\w+:)|^//#', $moduleRedirectUri)) {
         $redirectURI = $moduleRedirectUri;
     } else {
         $leftSlash = strlen($redirectURI) > 0 && $redirectURI[strlen($redirectURI) - 1] === '/';
         $rightSlash = strlen($moduleRedirectUri) > 0 && $moduleRedirectUri[0] === '/';
         if (!$leftSlash && !$rightSlash) {
             // Both are without a slash, so add one
             $moduleRedirectUri = '/' . $moduleRedirectUri;
         } else {
             if ($leftSlash && $rightSlash) {
                 // Both are with a slash, so we remove one
                 $moduleRedirectUri = substr($moduleRedirectUri, 1);
             }
         }
         $redirectURI .= $moduleRedirectUri;
     }
     eZStaticCache::executeActions();
     eZDB::checkTransactionCounter();
     if ($automaticRedirect) {
         eZHTTPTool::redirect($redirectURI, array(), $this->module->redirectStatus());
     } else {
         // Make sure any errors or warnings are reported
         if ($ini->variable('DebugSettings', 'DisplayDebugWarnings') === 'enabled') {
             if (isset($GLOBALS['eZDebugError']) && $GLOBALS['eZDebugError']) {
                 eZAppendWarningItem(array('error' => array('type' => 'error', 'number' => 1, 'count' => $GLOBALS['eZDebugErrorCount']), 'identifier' => 'ezdebug-first-error', 'text' => ezpI18n::tr('index.php', 'Some errors occurred, see debug for more information.')));
             }
             if (isset($GLOBALS['eZDebugWarning']) && $GLOBALS['eZDebugWarning']) {
                 eZAppendWarningItem(array('error' => array('type' => 'warning', 'number' => 1, 'count' => $GLOBALS['eZDebugWarningCount']), 'identifier' => 'ezdebug-first-warning', 'text' => ezpI18n::tr('index.php', 'Some general warnings occured, see debug for more information.')));
             }
         }
         $tpl = eZTemplate::factory();
         $tpl->setVariable('site', $this->site);
         $tpl->setVariable('warning_list', !empty($this->warningList) ? $this->warningList : false);
         $tpl->setVariable('redirect_uri', eZURI::encodeURL($redirectURI));
         $templateResult = $tpl->fetch('design:redirect.tpl');
         eZDebug::addTimingPoint("Script end");
         eZDisplayResult($templateResult);
     }
     eZExecution::cleanExit();
 }
コード例 #5
0
ファイル: login.php プロジェクト: netgen/ngconnect
}
$ngConnectINI = eZINI::instance('ngconnect.ini');
$availableLoginMethods = $ngConnectINI->variable('ngconnect', 'LoginMethods');
$authHandlerClasses = $ngConnectINI->variable('ngconnect', 'AuthHandlerClasses');
$loginWindowType = trim($ngConnectINI->variable('ngconnect', 'LoginWindowType'));
$debugEnabled = trim($ngConnectINI->variable('ngconnect', 'DebugEnabled')) == 'true';
if (function_exists('curl_init') && function_exists('json_decode')) {
    if (in_array($loginMethod, $availableLoginMethods) && isset($authHandlerClasses[$loginMethod]) && class_exists(trim($authHandlerClasses[$loginMethod]))) {
        $authHandlerClassName = trim($authHandlerClasses[$loginMethod]);
        $authHandler = new $authHandlerClassName();
        if ($authHandler instanceof INGConnectAuthInterface) {
            $currentUser = eZUser::currentUser();
            if ($currentUser->isAnonymous() || !$currentUser->isAnonymous() && !ngConnect::userHasConnection($currentUser->ContentObjectID, $loginMethod)) {
                $result = $authHandler->getRedirectUri();
                if ($result['status'] == 'success' && isset($result['redirect_uri'])) {
                    return eZHTTPTool::redirect($result['redirect_uri']);
                } else {
                    if ($debugEnabled && isset($result['message'])) {
                        eZDebug::writeError($result['message'], 'ngconnect/login');
                    } else {
                        if ($debugEnabled) {
                            eZDebug::writeError('Unknown error', 'ngconnect/login');
                        }
                    }
                }
            }
        } else {
            if ($debugEnabled) {
                eZDebug::writeError('Invalid auth handler class: ' . $authHandlerClassName, 'ngconnect/login');
            }
        }
コード例 #6
0
<?php

/***********************
Redirections Ecole Head
 ***********************/
$site_FR = 'http://www.ecolehead.fr';
//$site_EN = 'http://www.eurosearch-associes.com';
$aRedirections = array('`^/L-ecole$`' => $site_FR . '/Ecole/Projet', '`^/Le-parcours-HEAD$`' => $site_FR . '/Parcours', '`^/Candidature$`' => $site_FR . '/contact/form/candidature', '`^/L-equipe-fondatrice$`' => $site_FR . '/Ecole/Equipe', '`^/Financement$`' => $site_FR . '/Admissions/Financement-des-etudes', '`^/Contact$`' => $site_FR . '/Contact-HEAD', '`^/Les-valeurs$`' => $site_FR . '/Ecole/Nos-Valeurs', '`^/Partenariats$`' => $site_FR . '/Partenaires/Partenaires');
$requestURI = $_SERVER['REQUEST_URI'];
foreach ($aRedirections as $pattern => $redirectUri) {
    if (preg_match($pattern, $requestURI) == 1) {
        eZHTTPTool::redirect($redirectUri, array(), 301);
        eZExecution::cleanExit();
    }
}
コード例 #7
0
ファイル: index.php プロジェクト: legende91/ez
     }
     if (!$leftSlash and !$rightSlash) {
         // Both are without a slash, so add one
         $moduleRedirectUri = '/' . $moduleRedirectUri;
     } else {
         if ($leftSlash and $rightSlash) {
             // Both are with a slash, so we remove one
             $moduleRedirectUri = substr($moduleRedirectUri, 1);
         }
     }
     $redirectURI .= $moduleRedirectUri;
 }
 eZStaticCache::executeActions();
 eZDB::checkTransactionCounter();
 if ($automatic_redir) {
     eZHTTPTool::redirect($redirectURI, array(), $redirectStatus);
 } else {
     // Make sure any errors or warnings are reported
     if ($ini->variable('DebugSettings', 'DisplayDebugWarnings') == 'enabled') {
         if (isset($GLOBALS['eZDebugError']) and $GLOBALS['eZDebugError']) {
             eZAppendWarningItem(array('error' => array('type' => 'error', 'number' => 1, 'count' => $GLOBALS['eZDebugErrorCount']), 'identifier' => 'ezdebug-first-error', 'text' => ezpI18n::tr('index.php', 'Some errors occurred, see debug for more information.')));
         }
         if (isset($GLOBALS['eZDebugWarning']) and $GLOBALS['eZDebugWarning']) {
             eZAppendWarningItem(array('error' => array('type' => 'warning', 'number' => 1, 'count' => $GLOBALS['eZDebugWarningCount']), 'identifier' => 'ezdebug-first-warning', 'text' => ezpI18n::tr('index.php', 'Some general warnings occured, see debug for more information.')));
         }
     }
     $tpl = eZTemplate::factory();
     if (empty($warningList)) {
         $warningList = false;
     }
     $tpl->setVariable('site', $site);
コード例 #8
0
ファイル: ezsslzone.php プロジェクト: jordanmanning/ezpublish
 /**
  * \static
  * \param  $inSSL  The desired access mode.
  *
  * Change access mode (HTTP/HTTPS):
  * - If previous mode was HHTP but $inSSL is true, we switch to SSL.
  * - If previous mode was SSL  but $inSSL is false, we switch to HTTP.
  * - Otherwise no mode change is occured.
  *
  * Mode change is done by redirect to the same URL, but with changed
  * protocol (http/https) and TCP port.
  *
  * In case of mode change this method does not return (exit() is called).
  */
 static function switchIfNeeded($inSSL)
 {
     // if it's undefined whether we should redirect  we do nothing
     if (!isset($inSSL)) {
         return;
     }
     // $nowSSl is true if current access mode is HTTPS.
     $nowSSL = eZSys::isSSLNow();
     $requestURI = eZSys::requestURI();
     $indexDir = eZSys::indexDir(false);
     // If there are any $_GET parameters, those should be passed into the new URI
     $getString = eZSys::queryString();
     $sslZoneRedirectionURL = false;
     if ($nowSSL && !$inSSL) {
         // switch to plain HTTP
         $ini = eZINI::instance();
         $host = $ini->variable('SiteSettings', 'SiteURL');
         $port = parse_url("http://{$host}", PHP_URL_PORT);
         $host = eZSys::serverVariable('HTTP_HOST');
         $host = preg_replace('/:\\d+$/', '', $host);
         if ($port && $port != 80) {
             $host .= ":{$port}";
         }
         $sslZoneRedirectionURL = "http://" . $host . $indexDir . $requestURI . $getString;
     } elseif (!$nowSSL && $inSSL) {
         // switch to HTTPS
         $host = eZSys::serverVariable('HTTP_HOST');
         $host = preg_replace('/:\\d+$/', '', $host);
         $ini = eZINI::instance();
         $sslPort = $ini->variable('SiteSettings', 'SSLPort');
         $sslPortString = $sslPort == eZSSLZone::DEFAULT_SSL_PORT ? '' : ":{$sslPort}";
         $sslZoneRedirectionURL = "https://" . $host . $sslPortString . $indexDir . $requestURI . $getString;
     }
     if ($sslZoneRedirectionURL) {
         eZDebugSetting::writeDebug('kernel-ssl-zone', "redirecting to [{$sslZoneRedirectionURL}]");
         eZHTTPTool::redirect($sslZoneRedirectionURL, array(), false, false);
         eZExecution::cleanExit();
     }
 }
コード例 #9
0
    /**
     * \static
     * \param  $inSSL  The desired access mode.
     *
     * Change access mode (HTTP/HTTPS):
     * - If previous mode was HHTP but $inSSL is true, we switch to SSL.
     * - If previous mode was SSL  but $inSSL is false, we switch to HTTP.
     * - Otherwise no mode change is occured.
     *
     * Mode change is done by redirect to the same URL, but with changed
     * protocol (http/https) and TCP port.
     *
     * In case of mode change this method does not return (exit() is called).
     */
    static function switchIfNeeded( $inSSL )
    {
        // if it's undefined whether we should redirect  we do nothing
        if ( !isset( $inSSL ) )
            return;

        // $nowSSl is true if current access mode is HTTPS.
        $nowSSL = eZSys::isSSLNow();

        $requestURI = eZSys::requestURI();
        $indexDir = eZSys::indexDir( false );

        $sslZoneRedirectionURL = false;
        if ( $nowSSL && !$inSSL )
        {
            // switch to plain HTTP
            $ini = eZINI::instance();
            $host = $ini->variable( 'SiteSettings', 'SiteURL' );
            $sslZoneRedirectionURL = "http://" . $host . $indexDir . $requestURI;
        }
        elseif ( !$nowSSL && $inSSL )
        {
            // switch to HTTPS
            $host = eZSys::serverVariable( 'HTTP_HOST' );
            $host = preg_replace( '/:\d+$/', '', $host );

            $ini = eZINI::instance();
            $sslPort = $ini->variable( 'SiteSettings', 'SSLPort' );
            $sslPortString = ( $sslPort == eZSSLZone::DEFAULT_SSL_PORT ) ? '' : ":$sslPort";
            $sslZoneRedirectionURL = "https://" . $host  . $sslPortString . $indexDir . $requestURI;
        }

        if ( $sslZoneRedirectionURL ) // if a redirection URL is found
        {
            eZDebugSetting::writeDebug( 'kernel-ssl-zone', "redirecting to [$sslZoneRedirectionURL]" );
            eZHTTPTool::redirect( $sslZoneRedirectionURL, array(), false, false );
            eZExecution::cleanExit();
        }
    }
コード例 #10
0
ファイル: gateway.php プロジェクト: obenyoussef/metalfrance
<?php

/**
 * Vue gérant les redirections de liens référencés dans eZ Publish
 * Utile pour les liens sponsorisés, notamment pour éviter les problèmes de validation HTML
 * ou pour cacher les régies publicitaires
 * @copyright Copyright (C) 2011 - Metal France. All rights reserved
 * @author Jerome Vieilledent
 * @version 3.0
 * @package metalfrance
 * @subpackage mf
 */
$Module = $Params['Module'];
$Result = array();
$http = eZHTTPTool::instance();
$mfINI = eZINI::instance('metalfrance.ini');
$url = eZURL::url((int) $Params['LinkID']);
eZHTTPTool::redirect($url, array(), '302');
コード例 #11
0
 static function loginUser($login, $password, $authenticationMatch = false)
 {
     $moduleINI = eZINI::instance('module.ini');
     $siteINI = eZINI::instance('site.ini');
     $rpxApiKey = $moduleINI->variable('ModuleSettings', 'RPXApiKey');
     $attributeID = $moduleINI->variable('ModuleSettings', 'OpenIDAttributeID');
     $openidUser = new eZOpenIDUser();
     $http = eZHTTPTool::instance();
     //RPX login
     if ($http->hasPostVariable('token')) {
         $token = $http->postVariable('token');
         $post_data = array('token' => $http->postVariable('token'), 'apiKey' => $rpxApiKey, 'format' => 'json');
         $ezopenid = new eZOpenID();
         $form = $ezopenid->submitForm();
         if (!$form) {
             return false;
         }
         $post_data = $ezopenid->httpBuildQuery($post_data);
         $response = $form->post("https://rpxnow.com/api/v2/auth_info", $post_data);
         if (!$response) {
             return false;
         }
         $raw_json = $response->body;
         if (!$raw_json) {
             return false;
         }
         $auth_info = json_decode($raw_json, true);
         if ($auth_info['stat'] == 'ok') {
             $profile = $auth_info['profile'];
             $identifier = $profile['identifier'];
             if (isset($profile['photo'])) {
                 $photo_url = $profile['photo'];
             }
             if (isset($profile['displayName'])) {
                 $name = $profile['displayName'];
             }
             if (isset($profile['email'])) {
                 $email = $profile['email'];
             }
             if ($identifier or $email) {
                 $http->setSessionVariable('Token', 1);
                 if ($siteINI->variable('UserSettings', 'RequireUniqueEmail') == 'true') {
                     $user = $openidUser->LogInOpenIDUser(false, $email);
                     if ($user) {
                         return $user;
                     }
                 }
                 $user = $openidUser->LogInOpenIDUser($identifier, false);
                 if ($user) {
                     return $user;
                 } else {
                     //On demand: for functionality to register a new account automatically, contact info@contactivity.com
                 }
             }
         }
         return false;
     } elseif ($http->hasPostVariable('OpenIDURL') or $http->hasSessionVariable('OpenIDURL')) {
         if (!$http->hasSessionVariable('OpenIDURL')) {
             if (!$http->hasPostVariable('OpenIDURL')) {
                 return false;
             }
             $url = $http->postVariable('OpenIDURL');
             $ezopenid = new eZOpenID();
             $identifier = $ezopenid->normalizeUrl($url);
             if (!$identifier) {
                 return false;
             }
             $consumer = $ezopenid->getConsumer();
             if (!$consumer) {
                 return false;
             }
             $auth_request = $consumer->begin($identifier);
             if (!$auth_request) {
                 return false;
             }
             $redirect_url = $auth_request->redirectURL($ezopenid->getTrustRoot(), $ezopenid->getReturnTo('login'));
             if (!$redirect_url) {
                 return false;
             }
             $http->setSessionVariable('OpenIDURL', $identifier);
             return eZHTTPTool::redirect($redirect_url);
             eZExecution::cleanExit();
         } else {
             $identifier = $http->sessionVariable('OpenIDURL');
             $http->removeSessionVariable('OpenIDURL');
             $ezopenid = new eZOpenID();
             $consumer = $ezopenid->getConsumer();
             $return_to = $ezopenid->getReturnTo('login');
             $auth_info = $consumer->complete($return_to);
             if ($auth_info->status == "success" and $identifier) {
                 $user = $openidUser->LogInOpenIDUser($identifier, false);
                 if ($user) {
                     return $user;
                 } else {
                     //On demand: for functionality to register a new account automatically, contact info@contactivity.com
                 }
             }
         }
     }
     return false;
 }
コード例 #12
0
<?php

/***********************
Redirections Completel
 ***********************/
$site_FR = 'http://www.completel.fr';
//$site_FR = 'http://195.167.195.205';
//$site_FR = '';
$aRedirections = array();
/**
 * Transformation de l'URI pour avoir une adresse dénuée de caractères spéciaux et exploitable
 */
$patternURI = array("'é'", "'è'", "'ë'", "'ê'", "'É'", "'È'", "'Ë'", "'Ê'", "'á'", "'à'", "'ä'", "'â'", "'å'", "'Á'", "'À'", "'Ä'", "'Â'", "'Å'", "'ó'", "'ò'", "'ö'", "'ô'", "'Ó'", "'Ò'", "'Ö'", "'Ô'", "'í'", "'ì'", "'ï'", "'î'", "'Í'", "'Ì'", "'Ï'", "'Î'", "'ú'", "'ù'", "'ü'", "'û'", "'Ú'", "'Ù'", "'Ü'", "'Û'", "'ý'", "'ÿ'", "'Ý'", "'ø'", "'Ø'", "'œ'", "'Œ'", "'Æ'", "'ç'", "'Ç'");
$replaceURI = array('e', 'e', 'e', 'e', 'E', 'E', 'E', 'E', 'a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A', 'A', 'o', 'o', 'o', 'o', 'O', 'O', 'O', 'O', 'i', 'i', 'i', 'I', 'I', 'I', 'I', 'I', 'u', 'u', 'u', 'u', 'U', 'U', 'U', 'U', 'y', 'y', 'Y', 'o', 'O', 'a', 'A', 'A', 'c', 'C');
$requestURI = preg_replace($patternURI, $replaceURI, urldecode($_SERVER['REQUEST_URI']));
foreach ($aRedirections as $pattern => $redirectUri) {
    if (preg_match($pattern, $requestURI) == 1) {
        eZHTTPTool::redirect($redirectUri, array(), 301);
        eZExecution::cleanExit();
    }
}
/**
 * Cas particulier : capture de $_GET
 */
$redirectMask = array('`^/recherche\\?searchword=(.*)$`' => $site_FR . '/content/search?SearchText=$1');
foreach ($redirectMask as $pattern => $redirectUri) {
    if (($newUrl = preg_replace($pattern, $redirectUri, $requestURI)) != $requestURI) {
        eZHTTPTool::redirect($newUrl, array(), 301);
        eZExecution::cleanExit();
    }
}
コード例 #13
0
<?php

/**
 * Vue permettant de rediriger les URLs de MF v2 vers celles de la v3
 * @copyright Copyright (C) 2011 - Metal France. All rights reserved
 * @author Jerome Vieilledent
 * @version 3.0
 * @package metalfrance
 * @subpackage mfcompat
 */
$Module = $Params['Module'];
$Result = array();
$http = eZHTTPTool::instance();
$mfINI = eZINI::instance('metalfrance.ini');
try {
    $url = MFCompat::getRedirectImage($Params['Type'], $Params['Name']);
    eZHTTPTool::redirect('/' . $url, array(), '301');
} catch (Exception $e) {
    $errMsg = $e->getMessage();
    eZLog::write($errMsg, 'mfcompat-error.log');
    eZDebug::writeError($errMsg, 'MFCompat::Redirect');
    return $Module->handleError(eZError::KERNEL_NOT_FOUND, 'kernel');
}
コード例 #14
0
 /**
  *	@desc		The view : edit
  *	@author 	David LE RICHE <*****@*****.**>
  *	@param		array $Params => view parameter array 
  *	@return		array
  *	@copyright	2012
  *	@version 	1.1
  */
 public function editTranslation($Params)
 {
     // get the list of translation file
     $fileTranslationList = self::getTranslationListFile();
     if (isset($_POST['todo']) && $_POST['todo'] == 'validEdit') {
         $params = array();
         unset($_POST['todo']);
         foreach ($_POST as $key => $value) {
             $params[$key] = $value;
         }
         $params['fileTranslationList'] = $fileTranslationList;
         try {
             $parseFile = new OWTranslateParseFile($params);
             $parseFile->setTranslation();
             eZHTTPTool::redirect('/translate/list');
         } catch (Exception $e) {
             eZLog::write($e, 'owtranslate.log');
         }
     } else {
         // parse file
         $parseFileParams = array('fileTranslationList' => $fileTranslationList, 'sourceKey' => isset($Params['UserParameters']['sourceKey']) ? $Params['UserParameters']['sourceKey'] : '', 'dataKey' => isset($Params['UserParameters']['dataKey']) ? $Params['UserParameters']['dataKey'] : '');
         try {
             $parseFile = new OWTranslateParseFile($parseFileParams);
             $dataforEdit = $parseFile->getTranslationForEdit();
             // return the view
             $tpl = eZTemplate::factory();
             $tpl->setVariable('dataforEdit', $dataforEdit);
             $tpl->setVariable('sourceKey', $parseFileParams['sourceKey']);
             $tpl->setVariable('dataKey', $parseFileParams['dataKey']);
             $tpl->setVariable('languageList', $parseFile->languageList);
             $Result = self::getView('edit', $tpl);
             return $Result;
         } catch (Exception $e) {
             eZLog::write($e, 'owtranslate.log');
         }
     }
 }