Пример #1
0
         } else {
             eZUser::logoutCurrent();
         }
         redirect($http, $module);
     } else {
         $validationError = ezpI18n::tr('extension/ngconnect/ngconnect/profile', 'User with an email address supplied by your social network already exists. Try logging in instead.');
     }
 } else {
     if ($http->hasPostVariable('LoginButton') && ($ngConnectINI->variable('ProfileGenerationSettings', 'LoginUser') == 'enabled' || $forcedRedirect)) {
         // user is trying to connect to the existing account
         $login = trim($http->postVariable('Login'));
         $password = trim($http->postVariable('Password'));
         $userToLogin = eZUser::loginUser($login, $password);
         if ($userToLogin instanceof eZUser) {
             if ($userToLogin->canLoginToSiteAccess($GLOBALS['eZCurrentAccess'])) {
                 if (ngConnect::userHasConnection($userToLogin->ContentObjectID, $authResult['login_method'])) {
                     eZUser::logoutCurrent();
                     $validationError = ezpI18n::tr('extension/ngconnect/ngconnect/profile', 'This account already has a connection to selected social network.');
                 } else {
                     ngConnectFunctions::connectUser($userToLogin->ContentObjectID, $authResult['login_method'], $authResult['id']);
                     redirect($http, $module);
                 }
             } else {
                 eZUser::logoutCurrent();
                 $validationError = ezpI18n::tr('extension/ngconnect/ngconnect/profile', 'You are not allowed to access the site.');
             }
         } else {
             $validationError = ezpI18n::tr('extension/ngconnect/ngconnect/profile', 'A valid username and password is required to login.');
         }
     } else {
         if ($http->hasPostVariable('SaveButton') && !$forcedRedirect && $ngConnectINI->variable('ProfileGenerationSettings', 'CreateUser') == 'enabled') {
Пример #2
0
    } else {
        $http->setSessionVariable('NGConnectLastAccessURI', '/');
    }
}
$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) {
 /**
  * Returns if user has a connection to social network
  *
  * @param int $userID
  * @param string $loginMethod
  *
  * @return array
  */
 public static function userHasConnection($userID, $loginMethod)
 {
     return array('result' => ngConnect::userHasConnection($userID, $loginMethod));
 }