Вход Регистрация
Файл: sngine-v2.8/Script/connect.php
Строк: 112
<?php
/**
 * connect
 * 
 * @package Sngine
 * @author Zamblek
 */

// fetch bootstrap
require('bootstrap.php');

try {
    
    switch (
$_REQUEST['do']) {
        case 
'connect':
            
// check if social login enabled
            
if(!$system['social_login_enabled']) {
                
_error(404);
            }

            
// check provider
            
switch ($_REQUEST['provider']) {
                case 
'facebook':
                    if(!
$system['facebook_login_enabled']) {
                        
_error(404);
                    }
                    break;
                
                case 
'google':
                    if(!
$system['google_login_enabled']) {
                        
_error(404);
                    }
                    break;

                case 
'twitter':
                    if(!
$system['twitter_login_enabled']) {
                        
_error(404);
                    }
                    break;

                case 
'instagram':
                    if(!
$system['instagram_login_enabled']) {
                        
_error(404);
                    }
                    break;

                case 
'linkedin':
                    if(!
$system['linkedin_login_enabled']) {
                        
_error(404);
                    }
                    break;

                case 
'vkontakte':
                    if(!
$system['vkontakte_login_enabled']) {
                        
_error(404);
                    }
                    break;

                default:
                    
_error(404);
                    break;
            }

            
// set provider
            
$provider $_REQUEST["provider"];

            
// config hybridauth
            
$config = array(
                
'callback' => $system['system_url']."/connect/".$provider
                
"providers" => array ( 
                    
"Facebook" => array ( 
                        
"enabled" => true,
                        
"keys"    => array ( "id" => $system['facebook_appid'], "secret" => $system['facebook_secret'] ),
                        
"scope"   => "email, public_profile",
                        
"trustForwarded" => false
                        
),
                    
"Google" => array ( 
                        
"enabled" => true,
                        
"keys"    => array ( "key" => $system['google_appid'], "secret" => $system['google_secret'] )
                        ),
                    
"Twitter" => array ( 
                        
"enabled" => true,
                        
"keys"    => array ( "key" => $system['twitter_appid'], "secret" => $system['twitter_secret'] ),
                        
"includeEmail" => true
                        
),
                    
"Instagram" => array ( 
                        
"enabled" => true,
                        
"keys"    => array ( "id" => $system['instagram_appid'], "secret" => $system['instagram_secret'] )
                        ),
                    
"LinkedIn" => array ( 
                        
"enabled" => true,
                        
"keys"    => array ( "id" => $system['linkedin_appid'], "secret" => $system['linkedin_secret'] )
                        ),
                    
"Vkontakte" => array ( 
                        
"enabled" => true,
                        
"keys"    => array ( "id" => $system['vkontakte_appid'], "secret" => $system['vkontakte_secret'] )
                        )
                    )
            );

            
// fetch hybridauth
            
require_once("includes/libs/HybridAuth/autoload.php");

            
// initialize Hybrid_Auth with a given file
            
$hybridauth = new HybridauthHybridauth($config);
            
            
// try to authenticate with the selected provider
            
$adapter $hybridauth->authenticate$provider );
            
            
// then grab the user profile
            
$user_profile $adapter->getUserProfile();

            
// socail login
            
$user->socail_login($provider$user_profile);

            
// disconnect
            
$adapter->disconnect();
            break;

        case 
'revoke':
            
// user access
            
user_access();

            
// check provider
            
switch ($_REQUEST['provider']) {
                case 
'facebook':
                    
$social_id "facebook_id";
                    
$social_connected "facebook_connected";
                    break;

                case 
'google':
                    
$social_id "google_id";
                    
$social_connected "google_connected";
                    break;

                case 
'twitter':
                    
$social_id "twitter_id";
                    
$social_connected "twitter_connected";
                    break;

                case 
'instagram':
                    
$social_id "instagram_id";
                    
$social_connected "instagram_connected";
                    break;

                case 
'linkedin':
                    
$social_id "linkedin_id";
                    
$social_connected "linkedin_connected";
                    break;

                case 
'vkontakte':
                    
$social_id "vkontakte_id";
                    
$social_connected "vkontakte_connected";
                    break;

                default:
                    
_error(404);
                    break;
            }

            
// revoke
            
$db->query(sprintf("UPDATE users SET $social_connected = '0', $social_id = NULL WHERE user_id = %s"secure($user->_data['user_id'], 'int') )) or _error("SQL_ERROR_THROWEN");
            
redirect('/settings/linked');
            break;
        
        default:
            
_error(404);
            break;
    }
    
} catch( 
Exception $e ){
    
_error(__("Error"), $e->getMessage());
}

?>
Онлайн: 1
Реклама