} 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') {
} 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)); }