Plugin Directory

Changeset 1015041


Ignore:
Timestamp:
10/28/2014 01:21:45 AM (11 years ago)
Author:
miled
Message:

2.2.3-rc.3

Location:
wordpress-social-login/trunk
Files:
9 added
6 deleted
46 edited

Legend:

Unmodified
Added
Removed
  • wordpress-social-login/trunk/assets/css/widget.css

    r1010987 r1015041  
    22.wp-social-login-provider-list a {text-decoration: none; }
    33.wp-social-login-provider-list img{ border: 0 none; }
     4
     5.wp-social-login-linked-accounts-list
     6{
     7    font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
     8    font-size: 12px;
     9    background: #fff;
     10    border-collapse: collapse;
     11    text-align: left;
     12}
     13.wp-social-login-linked-accounts-list th
     14{
     15    font-size: 14px;
     16    font-weight: normal;
     17    padding: 6px 8px;
     18    border-bottom: 2px solid #ccc;
     19    width: auto;
     20}
     21.wp-social-login-linked-accounts-list td
     22{
     23    border-bottom: 1px solid #ccc;
     24    padding: 6px 8px;
     25    width: auto;
     26}
     27.wp-social-login-linked-accounts-list tbody tr:hover td
     28{
     29    color: #009;
     30}
  • wordpress-social-login/trunk/hybridauth/Hybrid/Auth.php

    r1012302 r1015041  
    1111 * Hybrid_Auth class provide a simple way to authenticate users via OpenID and OAuth.
    1212 *
    13  * Generally, Hybrid_Auth is the only class you should instanciate and use throughout your application.
     13 * Generally, Hybrid_Auth is the only class you should instantiate and use throughout your application.
    1414 */
    1515class Hybrid_Auth
    1616{
    17     public static $version = "2.3.0-dev";
     17    public static $version = "2.4.0-wsl-fork";
    1818
    1919    public static $config  = array();
     
    5656
    5757        // build some need'd paths
    58         $config["path_base"]        = realpath( dirname( __FILE__ ) )  . "/";
    59         $config["path_libraries"]   = $config["path_base"] . "thirdparty/";
    60         $config["path_resources"]   = $config["path_base"] . "resources/";
    61         $config["path_providers"]   = $config["path_base"] . "Providers/";
    62 
    63         // reset debug mode
    64         if( ! isset( $config["debug_mode"] ) ){
    65             $config["debug_mode"] = false;
    66             $config["debug_file"] = null;
    67         }
    68 
    69         # load hybridauth required files, a autoload is on the way...
    70         require_once $config["path_base"] . "Error.php";
    71         require_once $config["path_base"] . "Exception.php";
    72         require_once $config["path_base"] . "Logger.php";
    73 
    74         require_once $config["path_base"] . "Provider_Adapter.php";
    75 
    76         require_once $config["path_base"] . "Provider_Model.php";
    77         require_once $config["path_base"] . "Provider_Model_OpenID.php";
    78         require_once $config["path_base"] . "Provider_Model_OAuth1.php";
    79         require_once $config["path_base"] . "Provider_Model_OAuth2.php";
    80 
    81         require_once $config["path_base"] . "User.php";
    82         require_once $config["path_base"] . "User_Profile.php";
    83         require_once $config["path_base"] . "User_Contact.php";
    84         require_once $config["path_base"] . "User_Activity.php";
    85 
    86         if ( ! class_exists("Hybrid_Storage", false) ){
    87             require_once $config["path_base"] . "Storage.php";
    88         }
     58        $path_base = realpath( dirname( __FILE__ ) )  . "/";
     59
     60        # load hybridauth required files
     61        require_once $path_base . "Error.php";
     62        require_once $path_base . "Exception.php";
     63
     64        require_once $path_base . "Provider_Adapter.php";
     65
     66        require_once $path_base . "Provider_Model.php";
     67        require_once $path_base . "Provider_Model_OpenID.php";
     68        require_once $path_base . "Provider_Model_OAuth1.php";
     69        require_once $path_base . "Provider_Model_OAuth2.php";
     70
     71        require_once $path_base . "User.php";
     72        require_once $path_base . "User_Profile.php";
     73        require_once $path_base . "User_Contact.php";
     74        require_once $path_base . "User_Activity.php";
     75
     76        require_once $path_base . "Storage.php";
    8977
    9078        // hash given config
    9179        Hybrid_Auth::$config = $config;
    9280
    93         // instance of log mng
    94         Hybrid_Auth::$logger = new Hybrid_Logger();
    95 
    9681        // instance of errors mng
    9782        Hybrid_Auth::$error = new Hybrid_Error();
     
    9984        // start session storage mng
    10085        Hybrid_Auth::$store = new Hybrid_Storage();
    101 
    102         Hybrid_Logger::info( "Enter Hybrid_Auth::initialize()");
    103         Hybrid_Logger::info( "Hybrid_Auth::initialize(). PHP version: " . PHP_VERSION );
    104         Hybrid_Logger::info( "Hybrid_Auth::initialize(). Hybrid_Auth version: " . Hybrid_Auth::$version );
    105         Hybrid_Logger::info( "Hybrid_Auth::initialize(). Hybrid_Auth called from: " . Hybrid_Auth::getCurrentUrl() );
    106 
    107         // PHP Curl extension [http://www.php.net/manual/en/intro.curl.php]
    108         if ( ! function_exists('curl_init') ) {
    109             Hybrid_Logger::error('Hybridauth Library needs the CURL PHP extension.');
    110             throw new Exception('Hybridauth Library needs the CURL PHP extension.');
    111         }
    112 
    113         // PHP JSON extension [http://php.net/manual/en/book.json.php]
    114         if ( ! function_exists('json_decode') ) {
    115             Hybrid_Logger::error('Hybridauth Library needs the JSON PHP extension.');
    116             throw new Exception('Hybridauth Library needs the JSON PHP extension.');
    117         }
    118 
    119         // session.name
    120         if( session_name() != "PHPSESSID" ){
    121             Hybrid_Logger::info('PHP session.name diff from default PHPSESSID. http://php.net/manual/en/session.configuration.php#ini.session.name.');
    122         }
    123 
    124         // safe_mode is on
    125         if( ini_get('safe_mode') ){
    126             Hybrid_Logger::info('PHP safe_mode is on. http://php.net/safe-mode.');
    127         }
    128 
    129         // open basedir is on
    130         if( ini_get('open_basedir') ){
    131             Hybrid_Logger::info('PHP open_basedir is on. http://php.net/open-basedir.');
    132         }
    133 
    134         Hybrid_Logger::debug( "Hybrid_Auth initialize. dump used config: ", serialize( $config ) );
    135         Hybrid_Logger::debug( "Hybrid_Auth initialize. dump current session: ", Hybrid_Auth::storage()->getSessionData() );
    136         Hybrid_Logger::info( "Hybrid_Auth initialize: check if any error is stored on the endpoint..." );
    13786
    13887        if( Hybrid_Error::hasError() ){
     
    14089            $c = Hybrid_Error::getErrorCode();
    14190
    142             Hybrid_Logger::error( "Hybrid_Auth initialize: A stored Error found, Throw an new Exception and delete it from the store: Error#$c, '$m'" );
    143 
    14491            Hybrid_Error::clearError();
    14592
     
    14794        }
    14895
    149         Hybrid_Logger::info( "Hybrid_Auth initialize: no error found. initialization succeed." );
    150 
    15196        // Endof initialize
    15297    }
     
    155100
    156101    /**
    157     * Hybrid storage system accessor
     102    * Hybrid storage system accessors
    158103    *
    159104    * Users sessions are stored using HybridAuth storage system ( HybridAuth 2.0 handle PHP Session only) and can be accessed directly by
     
    202147    public static function authenticate( $providerId, $params = NULL )
    203148    {
    204         Hybrid_Logger::info( "Enter Hybrid_Auth::authenticate( $providerId )" );
    205 
    206149        // if user not connected to $providerId then try setup a new adapter and start the login process for this provider
    207150        if( ! Hybrid_Auth::storage()->get( "hauth_session.$providerId.is_logged_in" ) ){
    208             Hybrid_Logger::info( "Hybrid_Auth::authenticate( $providerId ), User not connected to the provider. Try to authenticate.." );
    209 
    210151            $provider_adapter = Hybrid_Auth::setup( $providerId, $params );
    211152
     
    215156        // else, then return the adapter instance for the given provider
    216157        else{
    217             Hybrid_Logger::info( "Hybrid_Auth::authenticate( $providerId ), User is already connected to this provider. Return the adapter instance." );
    218 
    219158            return Hybrid_Auth::getAdapter( $providerId );
    220159        }
     
    228167    public static function getAdapter( $providerId = NULL )
    229168    {
     169        if( ! Hybrid_Auth::$store ) {
     170            require_once realpath( dirname( __FILE__ ) )  . "/Storage.php";
     171
     172            Hybrid_Auth::$store = new Hybrid_Storage();
     173        }
     174
    230175        if( ! Hybrid_Auth::$config ) {
    231             Hybrid_Auth::initialize( unserialize( $_SESSION["HA::CONFIG"]['config'] ) );
    232         }
    233 
    234         Hybrid_Logger::info( "Enter Hybrid_Auth::getAdapter( $providerId )" );
     176            Hybrid_Auth::initialize( Hybrid_Auth::storage()->config( "CONFIG" ) );
     177        }
    235178
    236179        return Hybrid_Auth::setup( $providerId );
     
    254197    public static function setup( $providerId, $params = NULL )
    255198    {
    256         Hybrid_Logger::debug( "Enter Hybrid_Auth::setup( $providerId )", $params );
    257 
    258199        if( ! $params ){
    259200            $params = Hybrid_Auth::storage()->get( "hauth_session.$providerId.id_provider_params" );
    260            
    261             Hybrid_Logger::debug( "Hybrid_Auth::setup( $providerId ), no params given. Trying to get the stored for this provider.", $params );
    262201        }
    263202
    264203        if( ! $params ){
    265204            $params = ARRAY();
    266            
    267             Hybrid_Logger::info( "Hybrid_Auth::setup( $providerId ), no stored params found for this provider. Initialize a new one for new session" );
    268205        }
    269206
    270207        if( is_array($params) && ! isset( $params["hauth_return_to"] ) ){
    271             $params["hauth_return_to"] = Hybrid_Auth::getCurrentUrl();
    272 
    273             Hybrid_Logger::debug( "Hybrid_Auth::setup( $providerId ). HybridAuth Callback URL set to: ", $params["hauth_return_to"] );
     208            $params["hauth_return_to"] = Hybrid_Auth::getCurrentUrl();
    274209        }
    275210
    276211        # instantiate a new IDProvider Adapter
    277         $provider   = new Hybrid_Provider_Adapter();
     212        $provider = new Hybrid_Provider_Adapter();
    278213
    279214        $provider->factory( $providerId, $params );
     
    355290    public static function redirect( $url, $mode = "PHP" )
    356291    {
    357         Hybrid_Logger::info( "Enter Hybrid_Auth::redirect( $url, $mode )" );
    358 
    359292        if( $mode == "PHP" ){
    360293            header( "Location: $url" ) ;
     
    433366
    434367        //Build url
    435         $current_url = $request_protocol . '://' . $request_host . ( ! empty ($request_port) ? (':'.$request_port) : '') . $request_uri;
     368        $current_url = $request_protocol . '://' . $request_host . ( ! empty ($request_port) ? (':'.$request_port) : '');
     369
     370        if( $request_uri )
     371        {
     372            $current_url .= $request_uri;
     373        }
     374        else
     375        {
     376            $current_url .= $_SERVER ['PHP_SELF'];
     377        }
    436378
    437379        //Done
  • wordpress-social-login/trunk/hybridauth/Hybrid/Endpoint.php

    r1010987 r1015041  
    118118        # check if page accessed directly
    119119        if( ! Hybrid_Auth::storage()->get( "hauth_session.$provider_id.hauth_endpoint" ) ) {
    120             Hybrid_Logger::error( "Endpoint: hauth_endpoint parameter is not defined on hauth_start, halt login process!" );
    121 
    122120            throw new Hybrid_Exception( "You cannot access this page directly." );
    123121        }
     
    128126        # if REQUESTed hauth_idprovider is wrong, session not created, etc.
    129127        if( ! $hauth ) {
    130             Hybrid_Logger::error( "Endpoint: Invalid parameter on hauth_start!" );
    131 
    132128            throw new Hybrid_Exception( "Invalid parameter! Please return to the login page and try again." );
    133129        }
    134130
    135131        try {
    136             Hybrid_Logger::info( "Endpoint: call adapter [{$provider_id}] loginBegin()" );
    137 
    138132            $hauth->adapter->loginBegin();
    139133        }
    140134        catch ( Exception $e ) {
    141             Hybrid_Logger::error( "Exception:" . $e->getMessage(), $e );
    142135            Hybrid_Error::setError( $e->getMessage(), $e->getCode() );
    143136
     
    160153
    161154        if( ! $hauth ) {
    162             Hybrid_Logger::error( "Endpoint: Invalid parameter on hauth_done!" );
    163 
    164155            $hauth->adapter->setUserUnconnected();
    165156
     
    168159
    169160        try {
    170             Hybrid_Logger::info( "Endpoint: call adapter [{$provider_id}] loginFinish() " );
    171 
    172161            $hauth->adapter->loginFinish();
    173162        }
    174163        catch( Exception $e ){
    175             Hybrid_Logger::error( "Exception:" . $e->getMessage(), $e );
    176164            Hybrid_Error::setError( $e->getMessage(), $e->getCode() );
    177165
    178166            $hauth->adapter->setUserUnconnected();
    179167        }
    180 
    181         Hybrid_Logger::info( "Endpoint: job done. retrun to callback url." );
    182168
    183169        $hauth->returnToCallbackUrl();
     
    200186                // Check if Hybrid_Auth session already exist
    201187                if ( ! $storage->config( "CONFIG" ) ){
    202                     Hybrid_Logger::error( "Endpoint: Config storage not found when trying to init Hyrid_Auth. " );
    203 
    204188                    throw new Hybrid_Exception( "You cannot access this page directly." );
    205189                }
     
    208192            }
    209193            catch ( Exception $e ){
    210                 Hybrid_Logger::error( "Endpoint: Error while trying to init Hybrid_Auth: " . $e->getMessage());
    211 
    212194                throw new Hybrid_Exception( "Oophs. Error!" );
    213195            }
  • wordpress-social-login/trunk/hybridauth/Hybrid/Error.php

    r1010987 r1015041  
    2121    public static function setError( $message, $code = NULL )
    2222    {
    23         Hybrid_Logger::info( "Enter Hybrid_Error::setError( $message )" );
    24 
    2523        Hybrid_Auth::storage()->set( "hauth_session.error.status"  , 1         );
    2624        Hybrid_Auth::storage()->set( "hauth_session.error.message" , $message  );
     
    3230    */
    3331    public static function clearError()
    34     {
    35         Hybrid_Logger::info( "Enter Hybrid_Error::clearError()" );
    36 
     32    {
    3733        Hybrid_Auth::storage()->delete( "hauth_session.error.status"   );
    3834        Hybrid_Auth::storage()->delete( "hauth_session.error.message"  );
     
    7571
    7672    /**
     73    * set api error
     74    */
     75    public static function deleteApiError()
     76    {
     77        return Hybrid_Auth::storage()->delete( "hauth_session.error.apierror" );
     78    }
     79
     80    /**
    7781    * return api error
    7882    */
  • wordpress-social-login/trunk/hybridauth/Hybrid/Provider_Adapter.php

    r1010987 r1015041  
    5858    function factory( $id, $params = array() )
    5959    {
    60         Hybrid_Logger::info( "Enter Hybrid_Provider_Adapter::factory( $id )" );
    61 
    6260        # init the adapter config and params
    6361        $this->id     = $id;
     
    9391            $this->wrapper = $this->config["wrapper"]["class"];
    9492        }
    95         else{
    96             require_once Hybrid_Auth::$config["path_providers"] . $this->id . ".php" ;
     93        else{
     94            $path_providers = realpath( dirname( __FILE__ ) )  . "/Providers/";
     95           
     96            require_once $path_providers . $this->id . ".php" ;
    9797
    9898            $this->wrapper = "Hybrid_Providers_" . $this->id;
     
    113113    function login()
    114114    {
    115         Hybrid_Logger::info( "Enter Hybrid_Provider_Adapter::login( {$this->id} ) " );
    116 
    117115        if( ! $this->adapter ){
    118116            throw new Exception( "Hybrid_Provider_Adapter::login() should not directly used." );
     
    131129        # get hybridauth base url
    132130        if (empty(Hybrid_Auth::$config["base_url"])) {
    133             // the base url wasn't provide, so we must use the current
    134             // url (which makes sense actually)
    135             $url  = empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off' ? 'http' : 'https';
    136             $url .= '://' . $_SERVER['HTTP_HOST'];
    137             $url .= $_SERVER['REQUEST_URI'];
    138             $HYBRID_AUTH_URL_BASE = $url;
     131            $HYBRID_AUTH_URL_BASE = Hybrid_Auth::getCurrentUrl( true ) ;
    139132        } else {
    140133            $HYBRID_AUTH_URL_BASE = Hybrid_Auth::$config["base_url"];
     
    179172        // store config to be used by the end point
    180173        Hybrid_Auth::storage()->config( "CONFIG", Hybrid_Auth::$config );
    181 
    182         // move on
    183         Hybrid_Logger::debug( "Hybrid_Provider_Adapter::login( {$this->id} ), redirect the user to login_start URL." );
    184174
    185175        Hybrid_Auth::redirect( $this->params["login_start"] );
     
    217207    public function __call( $name, $arguments )
    218208    {
    219         Hybrid_Logger::info( "Enter Hybrid_Provider_Adapter::$name(), Provider: {$this->id}" );
    220 
    221209        if ( ! $this->isUserConnected() ){
    222210            throw new Exception( "User not connected to the provider {$this->id}.", 7 );
     
    248236    {
    249237        if( ! $this->adapter->isUserConnected() ){
    250             Hybrid_Logger::error( "User not connected to the provider." );
    251 
    252238            throw new Exception( "User not connected to the provider.", 7 );
    253239        }
     
    271257    {
    272258        if( ! $this->adapter->isUserConnected() ){
    273             Hybrid_Logger::error( "User not connected to the provider." );
    274 
    275259            throw new Exception( "User not connected to the provider.", 7 );
    276260        }
  • wordpress-social-login/trunk/hybridauth/Hybrid/Provider_Model.php

    r1010987 r1015041  
    8888
    8989        // initialize the current provider adapter
    90         $this->initialize();
    91 
    92         Hybrid_Logger::debug( "Hybrid_Provider_Model::__construct( $providerId ) initialized. dump current adapter instance: ", serialize( $this ) );
     90        $this->initialize();
    9391    }
    9492
     
    127125    function logout()
    128126    {
    129         Hybrid_Logger::info( "Enter [{$this->providerId}]::logout()" );
    130 
    131127        $this->clearTokens();
    132128
     
    141137    function getUserProfile()
    142138    {
    143         Hybrid_Logger::error( "HybridAuth do not provide users contacts list for {$this->providerId} yet." );
    144        
    145139        throw new Exception( "Provider does not support this feature.", 8 );
    146140    }
     
    153147    function getUserContacts()
    154148    {
    155         Hybrid_Logger::error( "HybridAuth do not provide users contacts list for {$this->providerId} yet." );
    156        
    157149        throw new Exception( "Provider does not support this feature.", 8 );
    158150    }
     
    165157    function getUserActivity( $stream )
    166158    {
    167         Hybrid_Logger::error( "HybridAuth do not provide user's activity stream for {$this->providerId} yet." );
    168        
    169159        throw new Exception( "Provider does not support this feature.", 8 );
    170160    }
     
    177167    function setUserStatus( $status )
    178168    {
    179         Hybrid_Logger::error( "HybridAuth do not provide user's activity stream for {$this->providerId} yet." );
    180        
    181169        throw new Exception( "Provider does not support this feature.", 8 );
    182170    }
     
    188176    function getUserStatus( $statusid )
    189177    {
    190         Hybrid_Logger::error( "HybridAuth do not provide user's status for {$this->providerId} yet." );
    191        
    192178        throw new Exception( "Provider does not support this feature.", 8 );
    193179    }
     
    210196    public function setUserConnected()
    211197    {
    212         Hybrid_Logger::info( "Enter [{$this->providerId}]::setUserConnected()" );
    213        
    214198        Hybrid_Auth::storage()->set( "hauth_session.{$this->providerId}.is_logged_in", 1 );
    215199    }
     
    222206    public function setUserUnconnected()
    223207    {
    224         Hybrid_Logger::info( "Enter [{$this->providerId}]::setUserUnconnected()" );
    225        
    226208        Hybrid_Auth::storage()->set( "hauth_session.{$this->providerId}.is_logged_in", 0 );
    227209    }
  • wordpress-social-login/trunk/hybridauth/Hybrid/Provider_Model_OAuth1.php

    r1010987 r1015041  
    7070
    7171        // 2 - include OAuth lib and client
    72         require_once Hybrid_Auth::$config["path_libraries"] . "OAuth/OAuth.php";
    73         require_once Hybrid_Auth::$config["path_libraries"] . "OAuth/OAuth1Client.php";
     72        require_once realpath( dirname( __FILE__ ) )  . "/thirdparty/OAuth/OAuth.php";
     73        require_once realpath( dirname( __FILE__ ) )  . "/thirdparty/OAuth/OAuth1Client.php";
    7474
    7575        // 3.1 - setup access_token if any stored
  • wordpress-social-login/trunk/hybridauth/Hybrid/Provider_Model_OAuth2.php

    r1010987 r1015041  
    7272
    7373        // include OAuth2 client
    74         require_once Hybrid_Auth::$config["path_libraries"] . "OAuth/OAuth2Client.php";
     74        require_once realpath( dirname( __FILE__ ) )  . "/thirdparty/OAuth/OAuth2Client.php";
    7575
    7676        // create a new OAuth2 client instance
  • wordpress-social-login/trunk/hybridauth/Hybrid/Provider_Model_OpenID.php

    r1010987 r1015041  
    3636
    3737        // include LightOpenID lib
    38         require_once Hybrid_Auth::$config["path_libraries"] . "OpenID/LightOpenID.php";
     38        require_once realpath( dirname( __FILE__ ) )  . "/thirdparty/OpenID/LightOpenID.php";
    3939
    4040        // An error was occurring when proxy wasn't set. Not sure where proxy was meant to be set/initialized.
     
    168168    {
    169169        // try to get the user profile from stored data
    170         $this->user = Hybrid_Auth::storage()->get( "hauth_session.{$this->providerId}.user" ) ;
     170        $this->user = Hybrid_Auth::storage()->get( "hauth_session.{$this->providerId}.user" );
    171171
    172172        // if not found
  • wordpress-social-login/trunk/hybridauth/Hybrid/Providers/Dribbble.php

    r1010987 r1015041  
    2121    {
    2222        parent::initialize();
    23 // print_r( $this );
    24 // die();
     23
    2524        // Provider api end-points
    2625        $this->api->api_base_url  = "https://api.dribbble.com/v1/";
  • wordpress-social-login/trunk/hybridauth/Hybrid/Providers/Facebook.php

    r1010987 r1015041  
    2828
    2929        if ( ! class_exists('FacebookApiException', false) ) {
    30             require_once Hybrid_Auth::$config["path_libraries"] . "Facebook/base_facebook.php";
    31             require_once Hybrid_Auth::$config["path_libraries"] . "Facebook/facebook.php";
     30            require_once realpath( dirname( __FILE__ ) )  . "/../thirdparty/Facebook/base_facebook.php";
     31            require_once realpath( dirname( __FILE__ ) )  . "/../thirdparty/Facebook/facebook.php";
    3232        }
    3333       
     
    3737
    3838        $trustForwarded = isset( $this->config['trustForwarded'] ) ? (bool) $this->config['trustForwarded'] : false;
     39
    3940        $this->api = new Facebook( ARRAY( 'appId' => $this->config["keys"]["id"], 'secret' => $this->config["keys"]["secret"], 'trustForwarded' => $trustForwarded ) );
    40 
    41         if ( $this->token("access_token") ) {
    42             $this->api->setAccessToken( $this->token("access_token") );
    43             $this->api->setExtendedAccessToken();
    44             $access_token = $this->api->getAccessToken();
    45 
    46             if( $access_token ){
    47                 $this->token("access_token", $access_token );
    48                 $this->api->setAccessToken( $access_token );
    49             }
    50 
    51             $this->api->setAccessToken( $this->token("access_token") );
    52         }
    53         else{
    54             // fixme! this cal fb api twice
    55             $this->api->getUser();
    56         }
    5741    }
    5842
     
    8165        }
    8266
    83         if( isset( $this->config[ 'force' ] ) && $this->config[ 'force' ] === true ){
    84             $parameters[ 'auth_type' ]  = 'reauthenticate';
    85             $parameters[ 'auth_nonce' ] = md5( uniqid( mt_rand(), true ) );
    86 
    87             Hybrid_Auth::storage()->set( 'fb_auth_nonce', $parameters[ 'auth_nonce' ] );
    88         }
     67        if( isset( $this->config[ 'force' ] ) && $this->config[ 'force' ] === true ){
     68            $parameters[ 'auth_type' ]  = 'reauthenticate';
     69            $parameters[ 'auth_nonce' ] = md5( uniqid( mt_rand(), true ) );
     70
     71            Hybrid_Auth::storage()->set( 'fb_auth_nonce', $parameters[ 'auth_nonce' ] );
     72        }
    8973
    9074        // get the login url
     
    157141
    158142    /**
     143    * setAccessToken
     144    */
     145    function setAccessToken()
     146    {
     147
     148        if ( $this->token("access_token") ) {
     149            $this->api->setAccessToken( $this->token("access_token") );
     150            $this->api->setExtendedAccessToken();
     151            $access_token = $this->api->getAccessToken();
     152
     153            if( $access_token ){
     154                $this->token("access_token", $access_token );
     155                $this->api->setAccessToken( $access_token );
     156            }
     157
     158            $this->api->setAccessToken( $this->token("access_token") );
     159        }
     160    }
     161
     162    /**
    159163    * load the user profile from the IDp api client
    160164    */
     
    163167        // request user profile from fb api
    164168        try{
     169            $this->setAccessToken();
     170
    165171            $data = $this->api->api('/me');
    166172        }
     
    181187        $this->user->profile->lastName      = (array_key_exists('last_name',$data))?$data['last_name']:"";
    182188        $this->user->profile->photoURL      = "https://graph.facebook.com/" . $this->user->profile->identifier . "/picture?width=150&height=150";
    183         $this->user->profile->coverInfoURL  = "https://graph.facebook.com/" . $this->user->profile->identifier . "?fields=cover";
    184189        $this->user->profile->profileURL    = (array_key_exists('link',$data))?$data['link']:"";
    185190        $this->user->profile->webSiteURL    = (array_key_exists('website',$data))?$data['website']:"";
     
    214219
    215220    /**
    216     * Attempt to retrieve the url to the cover image given the coverInfoURL
    217     *
    218     * @param  string $coverInfoURL   coverInfoURL variable
    219     * @retval string                 url to the cover image OR blank string
    220     */
    221     function getCoverURL($coverInfoURL)
    222     {
    223         try {
    224             $headers = get_headers($coverInfoURL);
    225             if(substr($headers[0], 9, 3) != "404") {
    226                 $coverOBJ = json_decode(file_get_contents($coverInfoURL));
    227                 if(array_key_exists('cover', $coverOBJ)) {
    228                     return $coverOBJ->cover->source;
    229                 }
    230             }
    231         } catch (Exception $e) { }
    232 
    233         return "";
    234     }
    235    
    236     /**
    237221    * load the user contacts
    238222    */
     
    245229        do {
    246230            try{
     231                $this->setAccessToken();
     232
    247233                $response = $this->api->api('/me/friends' . $apiCall);
    248234            }
     
    314300
    315301        try{
     302            $this->setAccessToken();
     303
    316304            $response = $this->api->api( '/' . $pageid . '/feed', 'post', $status );
    317305        }
     
    323311    }
    324312
    325 
    326     /**
    327     * get user status
    328     */
    329     function getUserStatus( $postid )
    330     {
    331         try{
    332             $postinfo = $this->api->api( "/" . $postid );
    333         }
    334         catch( FacebookApiException $e ){
    335             throw new Exception( "Cannot retrieve user status! {$this->providerId} returned an error: $e" );
    336         }
    337 
    338         return $postinfo;
    339     }
    340 
    341 
    342     /**
    343     * get user pages
    344     */
    345     function getUserPages( $writableonly = false )
    346     {
    347         if( ( isset( $this->config[ 'scope' ] ) && strpos( $this->config[ 'scope' ], 'manage_pages' ) === false ) || ( !isset( $this->config[ 'scope' ] ) && strpos( $this->scope, 'manage_pages' ) === false ) )
    348             throw new Exception( "User status requires manage_page permission!" );           
    349 
    350         try{
    351             $pages = $this->api->api( "/me/accounts", 'get' );
    352         }
    353         catch( FacebookApiException $e ){
    354             throw new Exception( "Cannot retrieve user pages! {$this->providerId} returned an error: $e" );
    355         }
    356 
    357         if( !isset( $pages[ 'data' ] ) ){
    358             return array();
    359         }
    360 
    361         if( !$writableonly ){
    362             return $pages[ 'data' ];
    363         }
    364 
    365         $wrpages = array();
    366         foreach( $pages[ 'data' ] as $p ){
    367             if( isset( $p[ 'perms' ] ) && in_array( 'CREATE_CONTENT', $p[ 'perms' ] ) ){
    368                 $wrpages[] = $p;
    369             }
    370         }
    371 
    372         return $wrpages;
    373     }
    374 
    375313    /**
    376314    * load the user latest activity 
     
    381319    {
    382320        try{
     321            $this->setAccessToken();
     322
    383323            if( $stream == "me" ){
    384324                $response = $this->api->api( '/me/feed' );
  • wordpress-social-login/trunk/hybridauth/Hybrid/Providers/Google.php

    r1010987 r1015041  
    1717
    1818    // default permissions
    19     public $scope = "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read https://www.google.com/m8/feeds/";
     19    public $scope = "profile https://www.googleapis.com/auth/plus.profile.emails.read https://www.google.com/m8/feeds/";
    2020
    2121    /**
     
    2727
    2828        // Provider api end-points
     29        $this->api->api_base_url   = "https://www.googleapis.com/plus/v1/";
    2930        $this->api->authorize_url  = "https://accounts.google.com/o/oauth2/auth";
    3031        $this->api->token_url      = "https://accounts.google.com/o/oauth2/token";
     
    171172            $this->config['contacts_param'] = array( "max-results" => 500 );
    172173        }
    173        
    174         // Google Gmail and Android contacts
    175         if (strpos($this->scope, '/m8/feeds/') !== false) {
    176    
    177             $response = $this->api->api( "https://www.google.com/m8/feeds/contacts/default/full?"
    178                         . http_build_query( array_merge( array('alt' => 'json', 'v' => '3.0'), $this->config['contacts_param'] ) ) );
    179    
    180             if( ! $response ){
    181                 return ARRAY();
    182             }
    183 
    184             if (isset($response->feed->entry)) {
    185                 foreach( $response->feed->entry as $idx => $entry ){
    186                     $uc = new Hybrid_User_Contact();
    187                     $uc->email          = isset($entry->{'gd$email'}[0]->address) ? (string) $entry->{'gd$email'}[0]->address : '';
    188                     $uc->displayName    = isset($entry->title->{'$t'}) ? (string) $entry->title->{'$t'} : '';
    189                     $uc->identifier     = ($uc->email!='')?$uc->email:'';
    190                     $uc->description    = '';
    191                     if( property_exists($entry,'link') ){
    192                         /**
    193                          * sign links with access_token
    194                          */
    195                         if(is_array($entry->link)){
    196                             foreach($entry->link as $l){
    197                                 if( property_exists($l,'gd$etag') && $l->type=="image/*"){
    198                                     $uc->photoURL = $this->addUrlParam($l->href, array('access_token' => $this->api->access_token));
    199                                 } else if($l->type=="self"){
    200                                     $uc->profileURL = $this->addUrlParam($l->href, array('access_token' => $this->api->access_token));
    201                                 }
     174
     175        $response = $this->api->api( "https://www.google.com/m8/feeds/contacts/default/full?"
     176                    . http_build_query( array_merge( array('alt' => 'json', 'v' => '3.0'), $this->config['contacts_param'] ) ) );
     177
     178        if( ! $response ){
     179            return ARRAY();
     180        }
     181
     182        if (isset($response->feed->entry)) {
     183            foreach( $response->feed->entry as $idx => $entry ){
     184                $uc = new Hybrid_User_Contact();
     185                $uc->email          = isset($entry->{'gd$email'}[0]->address) ? (string) $entry->{'gd$email'}[0]->address : '';
     186                $uc->displayName    = isset($entry->title->{'$t'}) ? (string) $entry->title->{'$t'} : '';
     187                $uc->identifier     = ($uc->email!='')?$uc->email:'';
     188                $uc->description    = '';
     189                if( property_exists($entry,'link') ){
     190                    /**
     191                     * sign links with access_token
     192                     */
     193                    if(is_array($entry->link)){
     194                        foreach($entry->link as $l){
     195                            if( property_exists($l,'gd$etag') && $l->type=="image/*"){
     196                                $uc->photoURL = $this->addUrlParam($l->href, array('access_token' => $this->api->access_token));
     197                            } else if($l->type=="self"){
     198                                $uc->profileURL = $this->addUrlParam($l->href, array('access_token' => $this->api->access_token));
    202199                            }
    203200                        }
    204                     } else {
    205                         $uc->profileURL = '';
    206                     }
    207                     if( property_exists($response,'website') ){
    208                         if(is_array($response->website)){
    209                             foreach($response->website as $w){
    210                                 if($w->primary == true) $uc->webSiteURL = $w->value;
    211                             }
    212                         } else {
    213                             $uc->webSiteURL = $response->website->value;
     201                    }
     202                } else {
     203                    $uc->profileURL = '';
     204                }
     205                if( property_exists($response,'website') ){
     206                    if(is_array($response->website)){
     207                        foreach($response->website as $w){
     208                            if($w->primary == true) $uc->webSiteURL = $w->value;
    214209                        }
    215210                    } else {
    216                         $uc->webSiteURL = '';
    217                     }
    218 
    219                     $contacts[] = $uc;
    220                 }
    221             }
    222         }
    223        
    224         // Google social contacts
    225         if (strpos($this->scope, '/auth/plus.login') !== false) {
    226            
    227             $response = $this->api->api( "https://www.googleapis.com/plus/v1/people/me/people/visible?"
    228                         . http_build_query( $this->config['contacts_param'] ) );
     211                        $uc->webSiteURL = $response->website->value;
     212                    }
     213                } else {
     214                    $uc->webSiteURL = '';
     215                }
     216
     217                $contacts[] = $uc;
     218            }
     219        }
    229220   
    230             if( ! $response ){
    231                 return ARRAY();
    232             }
    233            
    234             foreach( $response->items as $idx => $item ){
    235                 $uc = new Hybrid_User_Contact();
    236                 $uc->email          = (property_exists($item,'email'))?$item->email:'';   
    237                 $uc->displayName    = (property_exists($item,'displayName'))?$item->displayName:''; 
    238                 $uc->identifier     = (property_exists($item,'id'))?$item->id:'';
    239                
    240                 $uc->description    = (property_exists($item,'objectType'))?$item->objectType:'';
    241                 $uc->photoURL       = (property_exists($item,'image'))?((property_exists($item->image,'url'))?$item->image->url:''):'';
    242                 $uc->profileURL     = (property_exists($item,'url'))?$item->url:'';
    243                 $uc->webSiteURL     = '';
    244                
    245                 $contacts[] = $uc;
    246             }
    247            
    248         }
    249        
    250221        return $contacts;
    251222    }
  • wordpress-social-login/trunk/hybridauth/Hybrid/Providers/LastFM.php

    r1010987 r1015041  
    2121        }
    2222
    23         require_once Hybrid_Auth::$config["path_libraries"] . "LastFM/LastFM.php";
     23        require_once realpath( dirname( __FILE__ ) )  . "/../thirdparty/LastFM/LastFM.php";
    2424
    2525        $this->api = new LastFM( array( 'api_key' => $this->config["keys"]["key"], 'api_secret' => $this->config["keys"]["secret"] ) );
  • wordpress-social-login/trunk/hybridauth/Hybrid/Providers/LinkedIn.php

    r1010987 r1015041  
    2424        }
    2525        if ( ! class_exists('OAuthConsumer') ) {
    26             require_once Hybrid_Auth::$config["path_libraries"] . "OAuth/OAuth.php";
    27         }
    28         require_once Hybrid_Auth::$config["path_libraries"] . "LinkedIn/LinkedIn.php";
     26            require_once realpath( dirname( __FILE__ ) )  . "/../thirdparty/OAuth/OAuth.php";
     27        }
     28        require_once realpath( dirname( __FILE__ ) )  . "/../thirdparty/LinkedIn/LinkedIn.php";
    2929
    3030        $this->api = new LinkedIn( array( 'appKey' => $this->config["keys"]["key"], 'appSecret' => $this->config["keys"]["secret"], 'callbackUrl' => $this->endpoint ) );
  • wordpress-social-login/trunk/hybridauth/Hybrid/Providers/Odnoklassniki.php

    r1010987 r1015041  
    2626    }
    2727 
    28   private function request( $url, $params=false, $type="GET" )
     28    private function request( $url, $params=false, $type="GET" )
    2929    {
    30         Hybrid_Logger::info( "Enter OAuth2Client::request( $url )" );
    31         Hybrid_Logger::debug( "OAuth2Client::request(). dump request params: ", serialize( $params ) );
    32 
    3330        if( $type == "GET" ){
    3431            $url = $url . ( strpos( $url, '?' ) ? '&' : '?' ) . http_build_query($params, '', '&');
     
    5350        }
    5451        $response = curl_exec($ch);
    55         Hybrid_Logger::debug( "OAuth2Client::request(). dump request info: ", serialize( curl_getinfo($ch) ) );
    56         Hybrid_Logger::debug( "OAuth2Client::request(). dump request result: ", serialize( $response ) );
    5752
    5853        $this->http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  • wordpress-social-login/trunk/hybridauth/Hybrid/Providers/Reddit.php

    r1010987 r1015041  
    112112    private function request( $url, $params = array(), $type="GET", $http_headers = null )
    113113    {
    114         Hybrid_Logger::info( "Enter OAuth2Client::request( $url )" );
    115         Hybrid_Logger::debug( "OAuth2Client::request(). dump request params: ", print_r( $params, true ) );
    116 
    117114        if( $type == "GET" ){
    118115            $url = $url . ( strpos( $url, '?' ) ? '&' : '?' ) . http_build_query($params, '', '&');
     
    153150        $response = curl_exec($ch);
    154151
    155         Hybrid_Logger::debug( "OAuth2Client::request(). dump request info: ", print_r( curl_getinfo($ch), true ) );
    156         Hybrid_Logger::debug( "OAuth2Client::request(). dump request result: ", print_r( $response, true ) );
    157 
    158152        $this->http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    159153        $this->http_info = array_merge($this->http_info, curl_getinfo($ch));
  • wordpress-social-login/trunk/hybridauth/Hybrid/Providers/WordPress.php

    r1010987 r1015041  
    2525        $this->api->authorize_url = "https://public-api.wordpress.com/oauth2/authenticate";
    2626        $this->api->token_url     = "https://public-api.wordpress.com/oauth2/token";
     27       
     28        if( $this->token( "access_token" ) )
     29        {
     30            $this->api->curl_header = array( 'Authorization: Bearer ' . $this->token( "access_token" ) );
     31        }
    2732    }
    2833
     
    4550    function getUserProfile()
    4651    {
    47         $this->api->curl_header = array( 'Authorization: Bearer ' . $this->token( "access_token" ) );
    48 
    4952        $response = $this->api->api( "me/" );
    5053
  • wordpress-social-login/trunk/hybridauth/Hybrid/Storage.php

    r1010987 r1015041  
    55* (c) 2009-2014, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
    66*/
    7 
    8 require_once realpath( dirname( __FILE__ ) )  . "/StorageInterface.php";
    97
    108/**
     
    2422        }
    2523
    26         $this->config( "php_session_id", session_id() );
    2724        $this->config( "version", Hybrid_Auth::$version );
    2825    }
  • wordpress-social-login/trunk/hybridauth/Hybrid/resources/openid_realm.html

    r1012302 r1015041  
    11<html>
    22    <head>
    3         <title>WSL Endpoint</title>
    4         <meta name="robots" content="NOINDEX, NOFOLLOW">
    5         <meta http-equiv="X-XRDS-Location" content="{X_XRDS_LOCATION}" />
     3        <meta name="robots" content="noindex, nofollow">
     4        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
     5        <title>WordPress Social Login Endpoint</title>
     6        <style type="text/css">
     7            * {
     8                margin: 0;
     9                padding: 0;
     10            }
     11            body {
     12                background: #333;
     13            }
     14            h1 {
     15                color: white;
     16                font: 45px 'Open Sans';
     17                padding: 30px;
     18            }
     19            p {
     20                color: white;
     21                font: 15px 'Open Sans';
     22                padding: 0 30px;
     23            }
     24        </style>
    625    </head>
    726    <body>
    8         <h3 style="margin-bottom: 2px;">WordPress Social Login</h3>
    9         Open-source social sign on plugin.
    10         <br />
    11         <a href="https://wordpress.org/plugins/wordpress-social-login/" style="color:green;text-decoration:none;">wordpress.org/plugins/wordpress-social-login</a>
     27        <h1>WordPress Social Login Endpoint.</h1>
     28
     29        <p>Thanks for stopping by!</p>
    1230    </body>
    1331</html>
  • wordpress-social-login/trunk/hybridauth/Hybrid/thirdparty/Facebook/base_facebook.php

    r1012302 r1015041  
    676676  public function api(/* polymorphic */) {
    677677    $args = func_get_args();
     678     // print_r( func_get_args() ); die();
    678679    if (is_array($args[0])) {
    679680      return $this->_restserver($args[0]);
     
    683684  }
    684685
     686    //-
     687        public $api_base_url = 'https://graph.facebook.com/';
     688        public function get( $url ){ return $this->api( str_ireplace( 'https://graph.facebook.com/', '', $url ) ); }
     689        public function post( $url, $parameters = array() ){ return $this->api( str_ireplace( 'https://graph.facebook.com/', '', $url ), "post", $parameters ); }
     690    //-
     691 
    685692  /**
    686693   * Constructs and returns the name of the cookie that
     
    10201027    //-
    10211028    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
     1029   
     1030    Hybrid_Error::deleteApiError();
    10221031   
    10231032    if( $http_code != 200 )
  • wordpress-social-login/trunk/hybridauth/Hybrid/thirdparty/LastFM/LastFM.php

    r1010987 r1015041  
    243243        }
    244244        $result = $this->api('auth.getSession', array('token' => $token));
    245         //print_r($result);
    246         //print_r($result); print_r($result['session']['key']); exit;
    247245        $name = $result['session']['name'];
    248246        $sessionKey = $result['session']['key'];
  • wordpress-social-login/trunk/hybridauth/Hybrid/thirdparty/LinkedIn/LinkedIn.php

    r1010987 r1015041  
    703703      // gather the response
    704704      $return_data['linkedin']        = curl_exec($handle);
    705       if( $return_data['linkedin'] === FALSE ) {
    706           Hybrid_Logger::error( "LinkedIn::fetch(). curl_exec error: ", curl_error($ch) );
    707       }
    708705      $return_data['info']            = curl_getinfo($handle);
    709706      $return_data['oauth']['header'] = $oauth_req->to_header(self::_API_OAUTH_REALM);
     
    712709    //-
    713710    $http_code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
     711   
     712    Hybrid_Error::deleteApiError();
    714713
    715714    if( $http_code != 200 )
  • wordpress-social-login/trunk/hybridauth/Hybrid/thirdparty/OAuth/OAuth1Client.php

    r1010987 r1015041  
    8282        $request     = $this->signedRequest( $this->request_token_url, $this->request_token_method, $parameters );
    8383        $token       = OAuthUtil::parse_parameters( $request );
     84       
     85        if( isset(  $token['oauth_token'] ) )
    8486        $this->token = new OAuthConsumer( $token['oauth_token'], $token['oauth_token_secret'] );
    8587
     
    174176    function request( $url, $method, $postfields = NULL, $auth_header = NULL, $content_type = NULL, $multipart = false )
    175177    {
    176         Hybrid_Logger::info( "Enter OAuth1Client::request( $method, $url )" );
    177         Hybrid_Logger::debug( "OAuth1Client::request(). dump post fields: ", serialize( $postfields ) );
    178 
    179178        $this->http_info = array();
    180179        $ci = curl_init();
     
    221220        curl_setopt($ci, CURLOPT_URL, $url);
    222221        $response = curl_exec($ci);
    223         if( $response === FALSE ) {
    224                 Hybrid_Logger::error( "OAuth1Client::request(). curl_exec error: ", curl_error($ci) );
    225         }
    226 
    227 
    228         Hybrid_Logger::debug( "OAuth1Client::request(). dump request info: ", serialize( curl_getinfo($ci) ) );
    229         Hybrid_Logger::debug( "OAuth1Client::request(). dump request result: ", serialize( $response ) );
    230222
    231223        $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
     
    235227
    236228        //-
     229        Hybrid_Error::deleteApiError();
     230       
    237231        if( $this->http_code != 200 )
    238232        {
  • wordpress-social-login/trunk/hybridauth/Hybrid/thirdparty/OAuth/OAuth2Client.php

    r1010987 r1015041  
    6868    public function authenticate( $code )
    6969    {
    70         Hybrid_Logger::info( "Enter OAuth2Client::authenticate( $code )" );
    71        
    7270        $params = array(
    7371            "client_id"     => $this->client_id,
     
    7775            "code"          => $code
    7876        );
    79        
    80         Hybrid_Logger::debug( "OAuth2Client::authenticate(). dump request params: ", $params );
    81    
     77
    8278        $response = $this->request( $this->token_url, $params, $this->curl_authenticate_method );
    8379       
    8480        $response = $this->parseRequestResult( $response );
    8581
    86         Hybrid_Logger::debug( "OAuth2Client::authenticate(). dump request response: ", $response );
    87 
    8882        if( ! $response || ! isset( $response->access_token ) ){
    8983            throw new Exception( "The Authorization Service has return: " . $response->error );
    9084        }
    9185
    92         if( isset( $response->access_token  ) )  $this->access_token           = $response->access_token;
     86        if( isset( $response->access_token  ) ) $this->access_token            = $response->access_token;
    9387        if( isset( $response->refresh_token ) ) $this->refresh_token           = $response->refresh_token;
    9488        if( isset( $response->expires_in    ) ) $this->access_token_expires_in = $response->expires_in;
     
    10296    }
    10397
    104     public function authenticated()
    105     {
    106         if ( $this->access_token ){
    107             if ( $this->token_info_url && $this->refresh_token ){
    108                 // check if this access token has expired,
    109                 $tokeninfo = $this->tokenInfo( $this->access_token );
    110 
    111                 // if yes, access_token has expired, then ask for a new one
    112                 if( $tokeninfo && isset( $tokeninfo->error ) ){
    113                     $response = $this->refreshToken( $this->refresh_token );
    114 
    115                     // if wrong response
    116                     if( ! isset( $response->access_token ) || ! $response->access_token ){
    117                         throw new Exception( "The Authorization Service has return an invalid response while requesting a new access token. given up!" );
    118                     }
    119 
    120                     // set new access_token
    121                     $this->access_token = $response->access_token;
    122                 }
    123             }
    124 
    125             return true;
    126         }
    127 
    128         return false;
    129     }
    130 
    13198    /**
    13299    * Format and sign an oauth for provider api
     
    198165    function request( $url, $params=false, $type="GET" )
    199166    {
    200         Hybrid_Logger::info( "Enter OAuth2Client::request( $url )" );
    201         Hybrid_Logger::debug( "OAuth2Client::request(). dump request params: ", $params );
    202 
    203167        if( $type == "GET" ){
    204168            $url = $url . ( strpos( $url, '?' ) ? '&' : '?' ) . http_build_query($params, '', '&');
     
    227191
    228192        $response = curl_exec($ch);
    229         if( $response === FALSE ) {
    230                 Hybrid_Logger::error( "OAuth2Client::request(). curl_exec error: ", curl_error($ch) );
    231         }
    232         Hybrid_Logger::debug( "OAuth2Client::request(). dump request info: ", curl_getinfo($ch) );
    233         Hybrid_Logger::debug( "OAuth2Client::request(). dump request result: ", $response );
    234193
    235194        $this->http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
     
    239198
    240199        //-
     200        Hybrid_Error::deleteApiError();
     201
    241202        if( $this->http_code != 200 )
    242203        {
  • wordpress-social-login/trunk/hybridauth/Hybrid/thirdparty/OpenID/LightOpenID.php

    r1010987 r1015041  
    205205        }
    206206        $response = curl_exec($curl);
    207         if( $response === FALSE ) {
    208             Hybrid_Logger::error( "LightOpenID::request_curl(). curl_exec error: ", curl_error($curl) );
    209         }
    210207
    211208        if($method == 'HEAD' && curl_getinfo($curl, CURLINFO_HTTP_CODE) == 405) {
     
    216213
    217214        //-
     215        $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
     216
     217        Hybrid_Error::deleteApiError();
     218       
     219        if( $http_code != 200 )
     220        {
     221            Hybrid_Error::setApiError( $http_code . '. ' . preg_replace('/\s+/', ' ', $response ) );
     222        }
     223
    218224        if( defined( 'WORDPRESS_SOCIAL_LOGIN_DEBUG_API_CALLS' ) )
    219225        {
  • wordpress-social-login/trunk/hybridauth/Hybrid/thirdparty/Paypal/PaypalOAuth2Client.php

    r1010987 r1015041  
    7070    {
    7171        $params = http_build_query($params, '', '&');
    72         Hybrid_Logger::info( "Enter OAuth2Client::request( $url )" );
    73         Hybrid_Logger::debug( "OAuth2Client::request(). dump request params: ", $params );
    7472
    7573        if( $type == "GET" ){
     
    113111        if ($this->curl_log !== null)
    114112            fclose($fp);
    115         if( $response === FALSE ) {
    116                 Hybrid_Logger::error( "OAuth2Client::request(). curl_exec error: ", curl_error($ch) );
    117         }
    118         Hybrid_Logger::debug( "OAuth2Client::request(). dump request info: ", serialize( curl_getinfo($ch) ) );
    119         Hybrid_Logger::debug( "OAuth2Client::request(). dump request result: ", serialize( $response ) );
    120113
    121114        $this->http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  • wordpress-social-login/trunk/hybridauth/endpoints/WSL_Endpoint.php

    r1012302 r1015041  
    3030        if ( isset( WSL_Hybrid_Endpoint::$request["hauth_start"] ) && WSL_Hybrid_Endpoint::$request["hauth_start"] ) {
    3131            return WSL_Hybrid_Endpoint::processAuthStart();
    32         }
     32        }
     33
    3334        // Else if hauth.done
    3435        elseif ( isset( WSL_Hybrid_Endpoint::$request["hauth_done"] ) && WSL_Hybrid_Endpoint::$request["hauth_done"] ) {
     
    5758        $storage = new Hybrid_Storage();
    5859
    59         header( 'X-Hybridauth-Version: ' . $storage->config( "version" ) . '/' . PHP_VERSION );
     60        header( 'X-Hybridauth-Version: ' . $storage->config( "version" ) );
    6061        header( 'X-Hybridauth-Time: ' . time() );
    6162        header( 'X-Hybridauth-Init: ' . strlen( json_encode( $storage->config( "CONFIG" ) ) ) );
     
    6667            // Check if Hybrid_Auth session already exist
    6768            if ( ! $storage->config( "CONFIG" ) ) {
    68                 if ( ! $storage->config( "php_session_id" ) ) {
    69                     header( 'HTTP/1.0 401 Unauthorized' );
    70                     WSL_Hybrid_Endpoint::dieError( "You cannot access this page directly." );
    71                 }
    72 
    73                 header( 'HTTP/1.0 406 Not Acceptable' );
    74                 WSL_Hybrid_Endpoint::dieError( "Hybridauth config was not found in storage. You have either get to this page directly or PHP sessions ain't working properly." );
     69                WSL_Hybrid_Endpoint::dieError( "406 Not Acceptable", "Where's my cookie? <img style='width: 35px; height: 35px; position: absolute; bottom: 20px; right: 20px;' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAAC+CAYAAACLdLWdAAAAIHRFWHRTUFJEAGltYWdlLW5hMDIucHJ2LmRmdy5zcHJkLm5ldOQepWYAABYTSURBVHja7Z0J2E3VGse3eQqRIVMyRzLLEKXiFslUVKZKHkMylIiuSlIpSilDxA1pUCgZmoQSSgMlXHQzh8hYhmTd9d/f3t9d1j3f5+xz9jln7e/8f8/zPj2+ztlnn73fs/Za7/q/72tZhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQkKQTVoeaQWlFZZWU1ozaf+Q1lRaDefvBZ3XZeMlI0Eju7Ry0npKe0XacmlbpO2XdlqaSMdOOa/b7LwP7+8urbRzXEKMIZO0AtL6SftA2nZpZ8/j4JHYDuf490kr5HwuIXEnl7T+0pZJO+HFiTNlyiSyZ88ucubMKbJlyxbJj+BP53MH8ElA4kVFaf+SdjA956xUqZK47777xMSJE8WCBQvEd999J7Zt2yZOnDghdM6ePWv//ZdffrFft3DhQjFp0iTRt29fUb58+fP9CA4651OFt4bEglrS5kn7O5QDlihRQgwePFi89957Yu/evcJP9uzZI+bNmyeGDBkiihcvntYPAOuHudKu5K0ifoCF6huh5u0XXnihePDBB8Xy5cvFmTNnRDz4+++/xdKlS8XAgQNFwYIFQ/0A/nLOtwxvHYmEHNIek3ZMd64rrrhCTJkyRRw7dkwkkiNHjohXXnlF1KxZM9QPAOc93PkehIRFI2nrdGeqVauWePvtt4Vp4GmD87ryyitD/QC+l1aft5SkB0KE/7RS4umpzlOqVCkxefJkYTp//fWX/QQoWbKk7vxnpD3CCBAJRRFpH6kOg1Bj7969xeHDh0WQwPnee++9ImvWrPoPAPsARXmriUt1aVtVJ6lYsaL47LPPRJBZsmRJqHDoJmlVectJE2m/q87RunVre+GYEcACvF27dqEWvo1465OXVpay64qpwdNPPy0yGtggGzlypMiRI4ce9ryJLpB8tJZ20nWEPHnyiPfff19kZBD5ueCCC/RF7810heThH+pIX6BAAbFixQqRDGDz66KLLtJ3fJslszNksVJUf+WtFH14O2l3WCmyWCgC75V2t7QO0lpaKdoQyGXzW8FSCkILf8S98dj9/Oabb0Qy8dVXX+nOf8hKkWQkRby6kLPAQdx6obTdjkOcscJXCZ5yFob/ljZLWl/HsS4w9HuXkLbLPf+8efOKVatWiWQET7h8+fKp9/I/0oplRGfPKq2CtKHSVqujns8GTQuSKRZJ6+bEx014IkBG/Ll7nljoQTWZzGBNA3m0cu+WOX6SIUA62yBpa63zZABlyZJF5M6d234MXnLJJaJRo0aiRYsWqda8eXNRu3ZtUaxYMVuglStXLltbfp4fAkJnS5wpUq4EPuGedM8pc+bMYty4cYIIMXbsWP0ePh/0qczl0t5Ka2THzccKv1mzZmLUqFH26PfTTz/ZktpwlIZ//vmn2LVrl/j+++/F7NmzxaBBg2yxFJIr0vkR7JQ22krJL40n11uKuvKuu+6Km5oyCKHOe+65R1/stgii09dwphmnQzl7hQoVxJgxY+wFztGjR32/kPv37xeffvqpLdfFwjGNJ8JhaZOddUY8nng73c+uWrVqwlWVpoHNuurVq6v3Z5sVIFVnMWeE/z+HL1SokL2BsXbtWvsXHi9Onjxph8969uyZVoodsodGWbEVT411Pw/TuHXr1tHTQ4DMLwyMyr2ZEoRF61AnJHWOY9WoUUO88cYb4vjx4wm/sLt377bnk1oYzbXNMdpIqa9OcYYNG0YPTwcMjso9weZeXVOdHrH0VVYI3ThS1SBTNVE5+NJLL4X6ASClb6a0fD5en8/UKc6pU6fo3emAARJJNso9We7s7xgFNpWO61MaJCkH4QZjLfDQQw/p4TQYVJJNfLg+bSylqsHHH39Mzw6DxYsX64ORMXoeVNqaoS9asTLft29f4C70t99+Kxo0aKA7/wlnMyyaqNYa93g33HADPdpDlOemm25S78U3lgGV3S6RtkJ1kosvvljMmTMn0Bf79OnTYsSIEaFG/0kRPmpbWYriMpaShF9//dVeMMPwFMsokgYlGnc20VqeKpaWLHHttdfai8aMwhdffCHKlCmjOz/kFHk9XqsF7vtbtmzp6xwYexYPPPCAqFu3bshIFX68DRs2tPc1UGoE+x1BBNdN+V5LpWVOlLBqlzpnRbGijLgJg02xxo0b6w610kop0xcOVdX3Yk8hWlDoCesRqDi9SjiKFCkihg8fLnbu3Bmo+4CSKUp4E5qsSonYkNpnKXmgCAtmZDBKhsgaWhWm849231OnTp2oR3hMwbQEjogMu+TPP/98yEpqJoJBtXLlyup3GBNPp0e5uu3uh0MO8OqrrybFIgsXvkePHvrOL8KTudO5Xngc73BfP3r06Ig/f8OGDfY+iN8iPizkt27dGoh7MHXqVPXcd8dLawVV4wZVTThjxoykizCgWoDm/K+ns9Pb3H0dBHQHDx6MeK2hSXZ9NYj8gpADgGmnpr1qEGunz+4sKFIjE6jclYxg5O/atavuPI+kIXUe576mVatWETs90hBj5fSWkgADgZ/pNG3aVD3vF2Lt+OPVi/Tkk08mdWwZmh/E4q1zc0Vbhrhu693XvPjii54/5+eff7YXo7F2etdQ+AnhUJOZPn26es7bY6nXb28pFXnvvvtuu1BosvP777+Lyy67TFd4Xqpct9KuLgdTI5Tk9gLkHfXr14+b07t2/fXXG31/MRgo+ysQQJaLhdNfLG2vqrn5448/BPnfgjN//vz6YtfdVexjKUVdvYKyIvF2evdHanLAAlPN0qVLq+fc3m+nR0TiAzX8tXHjRnp7iEevJp/t6Vy/ye7fEA3yGrbEDngiHB+GTTuTw5zdunVTz3es347fUZ3iJEvY0iuYFmgxfrTFKavm03pNK0zUaK/atGnTjL3mODflXNf56fS5nawX++DIbTVRUmwK0MRoIzTkzPvdf3/++eeeHuXVqlVLuONfddVVcU0S8gKiT1oOtW9VNEaoSstNmzbRu88DwrtpOZGXupdosxNhAzZfDdlhBw4cMPJaIw9bCfFigetLt5VCavbUY489Rq8Oc8oTqhECNoe8gCllop3eT11RLMD6Q3vC+tJna4x7QEQsfvvtN3p1mGBKoztPvXr1PB0DnQVNcfwnnnjC2GuNsunKubaN1ukLWErbSNZ68Y62syg6dOjg6f14vSmOj2QiU0EZGuVc74rW8Qe4B4M2xNQ5nsmgeYPqPNjw88LNN99sjOPfcsstxl5n9AxQzvXBaJw+h1NdwD7Yo48+Si+OEDV1sUuXLp7eC2czxfHbt29v7DXu1KmTrpWKmKvcuD22hIMiVTWRCRMmnCP+8lIwSruhCTUU4TIVbS00PBrHn6bqNUjkQMSGChPu9cTubrggimaK46Njoan06dPHF8dHpYQD7oHeffddem+U3Hnnnak35rbbbgv7fZAhm+D00OysX7/e2Ot7xx13qOc7LFLHb2QpNdoZwoweDB5qWDhc7QtEgGlUd4uroZeuyXodbXH7QKSO/7R7EISJiD+oyeBe+llpNzUhBiGYyWA6rpxv10iLHf3kHgQLM+IPt956a+rNQQmQcMFGGHoDJMrpEdyA5NpktH65rSNx/OJOpTD7YlN67B+qyvK6664L+32QPzRp0iRhjo80SVMFau50UMtMi6iY7NXuAQoXLsxa7T6ycuXKc8p5eHGmH374wRaKxdvpsR7xmi0Wb5AeqVybU062m2d6uV8arXYyGnA2FK1Fcke8pdUYudUaOF4rGaDwUzydHkrcSHKD482aNWvU8z56nhIvaTLBPcjAgQMD7+jIhf3kk0/s73LNNdeIEiVK2I9FxNWh6EN2Udu2be0aN6gviZh7LEERKff6onK01x8Odk/j5fhoSRQEJk+erJ73mkgjOiuDkHVzvlEdHTRuv/12T2X1MMIhfxPVyWJV2blz586pn4eyf15BSPHGG2+MudMjLh6UZCNtd/vZSCM6R92DYPMkaGA+ioKi0SZv4AeDXVO/Y9cPP/xw1CMqShhC7Kbl9vpiCGj069fPrhAdBHCeeIor36FNJI6PRmQn3YOYvqjRR3lMHdDm009HQKcSP/tSoT6le2zUeY9mvQDpg58V1TD9e+eddwI10G3evFkd5E5qJV3CpqSTumVHHYKyYwsn6NWrV0xGQBh+THPnzvXlXNXEaNTJiZYdO3aI3r17RxXnRyU8CNCQwhc0tPn91gj7FVjlpf3lqgjRDyoITq/qYGJliMagUV20oCa9e8xKlSr5dh1QWOnZZ58Vl156adjfCZs+iNrgxxNUkAQf7fwe1HGrfeGx5yUpOlFgBzReUQ48BaPNO122bFnq8ZAuF4uBAGIyTFkQqRo8eLBd2BbqRSymn3vuOfvphY1JkzelwgF9AZQqamcd/42IeurmVSwaLPsJhF94TMczto2oz6FDhyI+59WrV6ceq2zZsoJEjprnYEXZ9Dkwjo9pmLaaj5thahUpX375ZepxcP4kMrAJiYFDuS8jokk+qeZmXUEKa/IcH4/tRIq20A0xEj766KNzjuVFpUn+B9qjKn0JTjjV6iKmtBvVQRw7mkd6LMF5YfGdSJkulJaRgAWyehxUYSDeQ9eaaG9RGv0IPCkzT7m9rEztWKjVSkyIIX4eyeJfC7/Zo1YQNwoTCRq/KaP9GSdxKipyOkVO7YOaKklOpEQ32hxUyCH040BDFPQIS7xALVG0kVWu34pIY/c6O92DLliwwLgvjgW3mridSPOSO+sCOUCoY/m1QZbRmTdvnt555hq/CsQudA/8zDPPGPfFt2zZErMdWq9Wu3ZtzyO1ViDqpLqZxCYb6YOppRbJ+djysbHzP1WFnonzO1PKbSAB26uYS9tZfcQNJsDuv/9+TnnSYejQoeq1Oy7tMj9r4d/qHrxChQrG9T+aM2eOMY6PyseIJ4cL6uYr78dOY1G1BDtkEatWraKHhwB5x1pbVd87HFZ1Y/nYojdNuIS5sCmOX7x4cU+O/9Zbb+mCKstpYrBZnfKYGkZOFKjZikFYuXYblN5ivpHH6dhnfwiKnpqEKQWWXPmCl6kOpjLK+99UrnkDVxwIa9OmDTvOKFEcrWL0Cae8ZUxIbfI2aNAgoy4EVIiJLLWhGho/eJmTa40i9Iq+Q9TYPsKenO8L8fjjj+vXfbgVQ7qpQiqTRh9UfYCOyATHRxphuED6q0WjKmvXPLsaUYP4btasWUnt9K+99pouQvzAr5h9WpR1d3DxwabVTNS6iCfMcGPC5amnnlLfuz6dtktb3NflypVLfPjhh0np9PPnz9fLqWxwGpXElMxO20T7Q/G4MQmMhIl2emiZkPsaLo0bN1bfPyqda19R7UKDpmYQZCUT2DhFYEW5XvukVbDiRH81euHlJsca7N5qlbPibh07dgz7fNElUluXnC9hoq6a9I+Rb9GiRUnh9AhXa05/NJoEk0goJe0Pd7G1ePFi0xc9cTPE27GDHC49e/ZU37/KQ8XqY+pnTp06NUM7/csvv6xPb+B/Da0E8J4qpDIJLHJRDCoRjg9HDhc8KTVtUR+P5doPq5/dv3//DBftwSbpgAED9IUsRvr6VoJo6G5mISLx9ddfG3XBkP8a7+bHlStX9lRPFL3DlPdj7p7f4z1Az9Zd6jmgJHaQE8RVUPdSU1sK5/vWshJIVqckW2rVXNMYOXJkXDX4XupdohgV1kfKMR6PIsq2Vt81nj17dqCdHkk5RYsW1a/zmmizqfyihbqxAs2ESeCxn5bU10/D3NNraHHIkCHqMY45iT6RklfaLP28UCYxaKM/EpwggAyhsp0h7ULLEDDqr1aLIJlYXg5TiljJlSFGW7Jkieebq6VHPurT/egh7Yh6fvicMWPGGBV5S2u9M2rUqFDV7qC07B1t+mAsaKxqSUwtJotHPyog++n0V199tV2mzutTqF27dupx9ksr7LOQ8Av9XCF5RlZYrCs+R+LwEydOTCsYsdRvebGf4Jc411KaBWzfvt1I54eaFAVVc+bMGbXWfty4cRFFULDrqMXtu8bovvST9qt+7ihbgmJSe/bsSfiUBgWsSpYsGeoa73ciXFksw4F2PLUFKBqSQTlnKoizo4IYHDhcZ8capl69eva0IdJsKGjutXo/K53pYqy4SNokZ7pwzvdBxKtr16522cJ4dbZBlhRKpqD2UBpiQpzneCulQHFg6KV+iSB0ywBYkGOhCXkrEtVRuq9cuXKievXqdnkPlOtG3cloR0isfVCiXEstvCJO9walYV5Td3z1TTd8z5kzZ9raK7+Ehxj8fvzxR/H666+LLl26pNeuCIv7fzkbo4EjkypZxi8alcFICpheaDe7TwLuEUbSF6X9Yp2nDig6weAHjwQZ1PREZ0NMYTFdxBMCawX8F//G3/H/kfr55ptv2vnYeOpr8oJQhvMY4/MaJyHgwqZWYsD8LUh19GPFwoUL9c20hQmev2J61c4ZqA6GM9VDVAy7pzBUi3PN/ZuHqBk+b760tjGe5sWd61wdD6xWrVp2r6lkBc3HtJHvP4aNcGiG1sqZCm20lOoOPhlqMW2SNs1K6TGby8rA4DF+xv3ymDsnY2tQKC81Lc6ROM7rI30S4Knd1NlbmONI0Hc6wQv8KM5qjn3W+fsB53U/OO/DTvSNzvGyWknEM+oFguYCbTSTyem1CA7yQZsH9F6iil4+aUWcHeZSzoK5lPPvos7/z2kRew47SXV+JFwEoaFEtKCropYTgPo4nekSyQPKPExRnb9KlSoZRj0YCmh2sImnOX13E7fcSWxBovQE1fmhuou2bY5pQDeOroVK+xm3hXxnOn3yktVZ7KQujCAbQJkMk3d4wwVNMhD3DrEL2Zy3noAuelQAER9TtT3hgLRLrVgpbIe0mrzdRKWuE8tOdRTMiZE0EpSO2eDgwYP2NnyILK9PrOi09SQDgxoxMzWHEdWqVTO+FjymZtCNh6jkgEXsYCsAikKSWFCfp6OVIkE9RwWJ5HXId00CT6MXXnghLd04UuLq8JYSL2DzY6KlJLNYSv3J8ePHJ7S1KNYfw4YNS6t96CErRfeenbeRRDP3n2/9/5a4XZmsR48e9lMgHhlEmL9PmTLFVhim0SQaW/RQOZbgbSN+ca209y1F66MacjI7depkFxhCSRM/mlPgiYK8WdSwbNGiRXoVl6EbR6JEGd4mEivQUBobXwes81QugxSib9++dnbU9OnT7SZgqJW/du1aOxECBhkBNs2weEbuKaJI3bt3F5dffrneTSOUoSjpcGdRTkhcwPz5HiulctshK34ForZbKVlBN1jceSUJBjvAHaRNlva1lUYqXYSGJ8sSKyUjqAGdnZgMQqKoofiQlSKGw+IYCdwbnREb+vC9Vkq1AeymbrNS9OJo/Dtb2jgrJVe4Ih2dZASyOE8H3bJYPvY+JYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIISTQ/BfJWilyNG3IOAAAAABJRU5ErkJggg==' />" );
    7570            }
    7671
     
    8075            }
    8176            catch ( Exception $e ){
    82                 header( 'HTTP/1.0 500 Internal Server Error' );
    83                 WSL_Hybrid_Endpoint::dieError( 'An error occurred while attempting to initialize Hybridauth' );
     77                WSL_Hybrid_Endpoint::dieError( '500 Internal Server Error', 'An error occurred while attempting to initialize Hybridauth' );
    8478            }
    8579        }
    8680    }
    8781
    88     public static function dieError( $message )
     82    public static function dieError( $code, $message )
    8983    {
    9084        #{{{
    91         # This 5 LLOC should be executed only once every three millennium
     85        # This 7 LLOC should be executed only once every three millennium.
    9286        # It means either : 1. Php Sessions ain't working as expected. 2. A crawler got lost. 3. Someone is having fun forging urls.
    9387        # If wp-load.php does exists in another directory, change it manually. From now on, you're on your own. Goodbye.
     88        display_wsl_error( $code, $message );
     89
    9490        $parse_uri = explode( 'wp-content', $_SERVER['SCRIPT_FILENAME'] );
    95    
     91
    9692        if( file_exists( $parse_uri[0] . 'wp-load.php' ) )
    9793        {
    9894            require_once( $parse_uri[0] . 'wp-load.php' );
    99    
     95
    10096            if( get_option( 'wsl_settings_development_mode_enabled' ) )
    10197            {
     
    10399            }
    104100        }
     101
     102        die();
    105103        #}}}
    106    
    107         die( $message );
    108104    }
    109105}
     106
     107/**
     108* Display a nicer error page.
     109*/
     110function display_wsl_error( $code, $message )
     111{
     112    header( 'HTTP/1.0 '. $code );
     113?>
     114<!DOCTYPE html>
     115    <head>
     116        <meta name="robots" content="noindex, nofollow">
     117        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
     118        <title>Oops</title>
     119        <style type="text/css">
     120            * {
     121                margin: 0;
     122                padding: 0;
     123            }
     124            body {
     125                background: #333;
     126            }
     127            h1 {
     128                color: white;
     129                font: 45px 'Open Sans';
     130                padding: 30px;
     131            }
     132            p {
     133                color: white;
     134                font: 15px 'Open Sans';
     135                padding: 0 30px;
     136            }
     137        </style>
     138    <head> 
     139    <body id="notice-page">
     140        <h1>WordPress Social Login Endpoint.</h1>
     141
     142        <p>
     143            <?php echo $message; ?>
     144        </p>
     145    </body>
     146</html>
     147<?php
     148}
  • wordpress-social-login/trunk/hybridauth/index.php

    r1010987 r1015041  
    1111// ------------------------------------------------------------------------
    1212
    13 //-
    14 
    15 /*
    16     In case you want to debug apis call made by hybridauth you can uncomment the LOCs below.
    17 
    18     include_once( '/path/to/file/wp-load.php' );
    19     defined( 'WORDPRESS_SOCIAL_LOGIN_DEBUG_API_CALLS' );
    20     add_action( 'wsl_log_provider_api_call', 'wsl_watchdog_wsl_log_provider_api_call', 10, 8 );
    21     do_action( 'wsl_log_provider_api_call', 'ENDPOINT', 'Hybridauth://endpoint', null, null, null, null, $_SERVER["QUERY_STRING"] );
     13/**
     14* If for some reason you want to debug apis call made by hybridauth during the auth process, you can add the block of code below.
     15*
     16* <code>
     17*    include_once( '/path/to/file/wp-load.php' );
     18*    define( 'WORDPRESS_SOCIAL_LOGIN_DEBUG_API_CALLS', true );
     19*    add_action( 'wsl_log_provider_api_call', 'wsl_watchdog_wsl_log_provider_api_call', 10, 8 );
     20*    do_action( 'wsl_log_provider_api_call', 'ENDPOINT', 'Hybridauth://endpoint', null, null, null, null, $_SERVER["QUERY_STRING"] );
     21* </code>
    2222*/
    2323
    24 //-
    25 
     24//- Re-parse the QUERY_STRING for custom endpoints.
    2625if( defined( 'WORDPRESS_SOCIAL_LOGIN_CUSTOM_ENDPOINT' ) && ! isset( $_REQUEST['hauth_start'] ) )
    2726{
     
    3130}
    3231
    33 //-
    34 
    35 require_once( "Hybrid/Logger.php"    );
     32//- Hybridauth required includes
    3633require_once( "Hybrid/Storage.php"   );
    3734require_once( "Hybrid/Error.php"     );
     
    4037require_once( "Hybrid/Endpoint.php"  );
    4138
    42 //-
    4339
     40//- Custom WSL endpoint class
    4441require_once( "endpoints/WSL_Endpoint.php" );
    4542
     43
     44//- Entry point to the End point
    4645WSL_Hybrid_Endpoint::process();
  • wordpress-social-login/trunk/hybridauth/readme.md

    r1010987 r1015041  
    1 # HybridAuth Library
     1#### INORMATION
    22
    3 HybridAuth is an Open-source social sign on PHP Library. HybridAuth goal is to act as an abstract api between your application and various social apis and identities providers such as Facebook, Twitter, MySpace and Google.
    4 http://hybridauth.sourceforge.net
     3This is a heavily edited fork of the HybridAuth library and no longer compatible with the master branch.
  • wordpress-social-login/trunk/includes/admin/components/bouncer/wsl.components.bouncer.setup.php

    r1010987 r1015041  
    223223        <p class="description">
    224224            <?php _wsl_e('<b>Notes:</b>', 'wordpress-social-login') ?>
    225             <br /><?php _wsl_e('1. If <b>User Moderation</b> is set to <code>Admin Approval</code> then <b>Membership level</b> will be ignored', 'wordpress-social-login') ?>.
    226             <br /><?php _wsl_e('2. To assign the same default role as in your website <b>General Settings</b>, set this field to <code>default</code>', 'wordpress-social-login') ?>.
    227             <br /><?php _wsl_e('3. If you are not sure, leave this field to either <code>wslnorole</code> or blank (omitting the role will create a users with "No Role For This Site")', 'wordpress-social-login') ?>.
     225            <br /><?php _wsl_e('1. If <b>User Moderation</b> is set to <code>Admin Approval</code>, then <b>Membership level</b> will be ignored', 'wordpress-social-login') ?>.
     226            <br /><?php _wsl_e('2. To assign the same default role as in your website <b>General Settings</b>, set this field to <code>Wordpress User Default Role</code>', 'wordpress-social-login') ?>.
     227            <br /><?php _wsl_e('3. If you are not sure, leave this field to <code>No role for this site</code>', 'wordpress-social-login') ?>.
    228228        </p>
    229229        <table width="100%" border="0" cellpadding="5" cellspacing="2" style="border-top:1px solid #ccc;">
     
    231231            <td width="200" align="right" nowrap><strong><?php _wsl_e("New WSL users default role", 'wordpress-social-login') ?> :</strong></td>
    232232            <td>
    233                 <input type="text" name="wsl_settings_bouncer_new_users_membership_default_role" class="inputgnrc" style="width:535px" value="<?php echo get_option( 'wsl_settings_bouncer_new_users_membership_default_role' ); ?>">
     233                <select name="wsl_settings_bouncer_new_users_membership_default_role">
     234                    <optgroup label="<?php _wsl_e("Safe", 'wordpress-social-login') ?>:">
     235                        <option value="default"     <?php if( get_option( 'wsl_settings_bouncer_new_users_membership_default_role' ) == "default" ) echo "selected"; ?> ><?php _wsl_e("&mdash; Wordpress User Default Role &mdash;", 'wordpress-social-login') ?></option>
     236                        <option value="wslnorole"   <?php if( get_option( 'wsl_settings_bouncer_new_users_membership_default_role' ) == "wslnorole" ) echo "selected"; ?> ><?php _wsl_e("&mdash; No role for this site  &mdash;", 'wordpress-social-login') ?></option>
     237                    </optgroup>
     238
     239                    <optgroup label="<?php _wsl_e("Be careful with these", 'wordpress-social-login') ?>:">
     240                        <?php
     241                            global $wp_roles;
     242
     243                            foreach ( $wp_roles->role_names as $role => $name )
     244                            {
     245                        ?>
     246                            <option value="<?php echo $role ?>"  <?php if( get_option( 'wsl_settings_bouncer_new_users_membership_default_role' ) == $role ) echo "selected"; ?> ><?php _wsl_e( $name, 'wordpress-social-login' ) ?></option>
     247                        <?php   
     248                            }
     249                        ?>
     250                    </optgroup>
     251                </select>
    234252            </td>
    235253          </tr> 
  • wordpress-social-login/trunk/includes/admin/components/contacts/index.php

    r1010987 r1015041  
    3232?>
    3333<form method="post" id="wsl_setup_form" action="options.php">
    34     <?php settings_fields( 'wsl-settings-group-customize' ); ?>
     34    <?php settings_fields( 'wsl-settings-group-contacts-import' ); ?>
    3535
    3636    <div class="metabox-holder columns-2" id="post-body">
  • wordpress-social-login/trunk/includes/admin/components/contacts/wsl.components.contacts.list.php

    r1010987 r1015041  
    3535
    3636    $pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
    37     $limit = 25; // number of rows in page
     37    $limit = 50; // number of rows in page
    3838    $offset = ( $pagenum - 1 ) * $limit;
    3939    $num_of_pages = 0;
  • wordpress-social-login/trunk/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php

    r1010987 r1015041  
    7979            <p>
    8080                <?php _wsl_e("This is a preview of what should be on the comments area", 'wordpress-social-login') ?>.
    81                 <br />
    82 
    83                 <strong><?php _wsl_e("Do not try to connect with the Widget here, it won't work", 'wordpress-social-login') ?></strong>.
    8481            </p>
    8582
    8683            <div style="width: 380px; padding: 10px; border: 1px solid #ddd; background-color: #fff;">
    87                 <?php echo wsl_render_login_form(); ?>
     84                <?php do_action( 'wordpress_social_login', array( 'mode' => 'test' ) ); ?>
    8885            </div>
    8986        </div>
  • wordpress-social-login/trunk/includes/admin/components/tools/wsl.components.tools.actions.php

    r1010987 r1015041  
    1515{
    1616    $sections = array(
     17        'auth_playground'    => 'wsl_component_tools_auth_playground'    ,
    1718        'diagnostics'        => 'wsl_component_tools_diagnostics'        ,
    1819        'system_information' => 'wsl_component_tools_system_information' ,
     
    3637// --------------------------------------------------------------------
    3738
     39function wsl_component_tools_auth_playground()
     40{
     41?>
     42<div class="stuffbox">
     43    <h3>
     44        <label><?php _wsl_e("Authentication Playground", 'wordpress-social-login') ?></label>
     45    </h3>
     46    <div class="inside">
     47        <p>
     48            <?php _wsl_e('Authentication Playground will let you authenticate with the enabled social networks without creating any new user account. This tool will also give you a direct access to social networks apis via a lightweight console', 'wordpress-social-login') ?>.
     49        </p>
     50
     51        <a class="button-primary"  href="<?php echo wp_nonce_url( 'options-general.php?page=wordpress-social-login&wslp=auth-test'); ?>"><?php _wsl_e("Go to the authentication playground", 'wordpress-social-login') ?></a> 
     52    </div>
     53</div>
     54<?php
     55}
     56
     57// --------------------------------------------------------------------
     58
    3859function wsl_component_tools_diagnostics()
    3960{
  • wordpress-social-login/trunk/includes/admin/components/users/wsl.components.users.list.php

    r1010987 r1015041  
    3636        ?>
    3737    </p>
     38
     39    <!--
     40    Postponed to future versions
     41
     42        <form method="post">
     43            <select name="provider" style="vertical-align: unset;">
     44                <option value=""><?php _wsl_e("Provider", 'wordpress-social-login') ?></option>
     45            </select>
     46            <input type="text" value="" name="username" placeholder="<?php _wsl_e("Username", 'wordpress-social-login') ?>" style="height: 28px;">
     47            <input type="submit" value="Filter" class="button">
     48        </form>
     49    -->
    3850
    3951    <?php _wsl_e( "This screen only list the users who have connected through WordPress Social Login", 'wordpress-social-login' ) ?>.
  • wordpress-social-login/trunk/includes/admin/wsl.admin.ui.php

    r1011553 r1015041  
    173173    ?>
    174174
     175    <div class="alignright">
     176        <a style="font-size: 0.9em; text-decoration: none;" target="_blank" href="http://miled.github.io/wordpress-social-login/documentation.html">Docs</a> -
     177        <a style="font-size: 0.9em; text-decoration: none;" target="_blank" href="http://miled.github.io/wordpress-social-login/support.html">Support</a> -
     178        <a style="font-size: 0.9em; text-decoration: none;" target="_blank" href="https://github.com/miled/wordpress-social-login">Github</a>
     179    </div>
     180
    175181    <h1 <?php if( is_rtl() ) echo 'style="margin: 20px 0;"'; ?>>
    176182        <?php _wsl_e( 'WordPress Social Login', 'wordpress-social-login' ) ?>
     
    182188        &nbsp;
    183189        <?php
     190            $css_pull_right = "";
     191
    184192            foreach( $WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS as $name => $settings )
    185193            {
  • wordpress-social-login/trunk/includes/services/wsl.authentication.php

    r1010987 r1015041  
    88
    99/**
    10 * Authenticate users via social networks.
    11 *
     10* Authenticate users via social networks.
     11*
     12* Ref: http://miled.github.io/wordpress-social-login/developer-api-authentication.html
    1213**
    1314* Side note: I don't usually over-comment codes, but this is the main WSL script and I had to since
     
    1718*
    1819* Let assume a user come to page at our website and he click on of the providers icons in order connect.
    19 * (for an actual example, see http://hybridauth.sourceforge.net/wsl/assets/img/wsl_redirections.png)
    20 *
    21 *   1. By clicking on an icon, the user will be redirected to wp-login.php (with specific args in the url: &action=wordpress_social_authenticate&provider=..)
    22 *   2. If &action=wordpress_social_authenticate is found in the current url [of wp-login.php], then WSL will display a loading screen,
    23 *   3. That loading screen will refresh it self adding &redirect_to_provider=ture to the current url which will trigger the next step,
    24 *   4. Instanciate Hybridauth main class, build the required config (keys, scopes, callback url, etc.) and initiate the auth process /hybridauth/?hauth.start=PROVIDER_ID,
    25 *   5. Hybridauth will redirect the user to the selected provider site to ask for his consent (authorisation to access his profile),
    26 *   6. If the user gives his authorisation for your application, the provider will redirect the user back to Hybridauth entry point /hybridauth/?hauth.done=PROVIDER_ID,
    27 *   7. Hybridauth will redirect the user to the given callback url. In callback url, WSL will display a second loading screen,
    28 *   8. This loading screen will generate and sumbmit a form with a hidden input action=wordpress_social_authenticated to the current url which will trigger the next step,
    29 *   9. WSL will grab the user profile from the provider, attempt to identify him and create a new WordPress user if he doesn't exist. In this step, and when enabled, WSL will import the user contacts and map his profile to buddypress,
    30 *  10. Finally, WSL will authenticate the user within WordPress (give him a sweet cookie) then redirect him back to where he come from
    31 *
     20*
     21*  - If &action=wordpress_social_authenticate is found in the current url, then WSL will display a loading screen,
     22*  - That loading screen will refresh it self adding &redirect_to_provider=ture to the url, which will trigger the next step,
     23*  - Next, WSL will instantiate Hybridauth main class, build the required provider config then initiate the auth protocol /hybridauth/?hauth.start=PROVIDER_ID,
     24*  - Hybridauth will redirect the user to the selected provider site to ask for his consent (authorisation to access his profile),
     25*  - If the user gives his authorisation for your application, the provider will redirect the user back to Hybridauth entry point /hybridauth/?hauth.done=PROVIDER_ID,
     26*  - Hybridauth will redirect the user to the given callback url.
     27*  - In that callback url, WSL will display a second loading screen This loading screen will generate and submit a form with a hidden input &action= wordpress_social_authenticated to the current url which will trigger the second part of the auth process,
     28*  - WSL will grab the user profile from the provider, attempt to identify him and create a new WordPress user if he doesn't exist. In this step, and when enabled, WSL will also import the user contacts and map his profile data to Buddypress xporfiles tables,
     29*  - Finally, WSL will authenticate the user within WordPress (give him a sweet cookie) and redirect him back to Redirect URL
    3230**
    3331* Functions execution order is the following:
    3432*
    35 *     wsl_process_login()
    36 *     .    wsl_process_login_begin()
    37 *     .    .    wsl_render_redirect_to_provider_loading_screen()
    38 *     .    .
    39 *     .    .    Hybrid_Auth::authenticate()
    40 *     .    .    .    wsl_process_login_render_error_page()
    41 *     .    .
    42 *     .    .    wsl_render_return_from_provider_loading_screen()
    43 *     .
    44 *     .    wsl_process_login_end()
    45 *     .    .    wsl_process_login_end_get_user_data()
    46 *     .    .    .    Hybrid_Auth::isConnectedWith()
    47 *     .    .    .    .    wsl_process_login_render_error_page()
    48 *     .    .    .
    49 *     .    .    .    wsl_process_login_complete_registration()
    50 *     .    .
    51 *     .    .    wsl_process_login_create_wp_user()
    52 *     .    .    wsl_process_login_update_wsl_user_data()
    53 *     .    .    wsl_process_login_authenticate_wp_user()
     33*     do_action('init')
     34*     .       wsl_process_login()
     35*     .       .       wsl_process_login_begin()
     36*     .       .       .       wsl_render_redirect_to_provider_loading_screen()
     37*     .       .       .       Hybrid_Auth::authenticate()
     38*     .       .       .       wsl_render_return_from_provider_loading_screen()
     39*     .       .
     40*     .       .       wsl_process_login_end()
     41*     .       .       .      wsl_process_login_end_get_user_data()
     42*     .       .       .      .       wsl_process_login_request_user_social_profile()
     43*     .       .       .      .       .       Hybrid_Auth::getUserProfile()
     44*     .       .       .      .       wsl_process_login_complete_registration()
     45*     .       .       .
     46*     .       .       .      wsl_process_login_create_wp_user()
     47*     .       .       .
     48*     .       .       .      wsl_process_login_update_wsl_user_data()
     49*     .       .       .      .       wsl_store_hybridauth_user_profile()
     50*     .       .       .      .       wsl_buddypress_xprofile_mapping()
     51*     .       .       .      .       wsl_store_hybridauth_user_contacts()
     52*     .       .       .
     53*     .       .       .      wsl_process_login_authenticate_wp_user()
    5454*/
    5555
     
    8484    }
    8585
     86    // authentication mode
     87    $auth_mode = wsl_process_login_get_auth_mode();
     88
    8689    // start loggin the auth process, if debug mode is enabled
    8790    wsl_watchdog_init();
    8891
    89     // user already logged in?
    90     if( is_user_logged_in() )
     92    // halt, if mode login and user already logged in
     93    if( 'login' == $auth_mode && is_user_logged_in() )
    9194    {
    9295        global $current_user;
     
    9598
    9699        return wsl_process_login_render_notice_page( sprintf( _wsl__( "You are already logged in as %s. Do you want to <a href='%s'>log out</a>?", 'wordpress-social-login' ), $current_user->display_name, wp_logout_url( home_url() ) ) );
     100    }
     101
     102    // halt, if mode link and user not logged in
     103    if( 'link' == $auth_mode && ! is_user_logged_in() )
     104    {
     105        return wsl_process_login_render_notice_page( sprintf( _wsl__( "You have to be logged in to be able to link your existing account. Do you want to <a href='%s'>login</a>?", 'wordpress-social-login' ), wp_login_url( home_url() ) ) );
     106    }
     107
     108    // halt, if mode test and not admin
     109    if( 'test' == $auth_mode && ! current_user_can('manage_options') )
     110    {
     111        return wsl_process_login_render_notice_page( _wsl__( 'You do not have sufficient permissions to access this page.', 'wordpress-social-login' ) );
    97112    }
    98113
     
    177192    }
    178193
    179     // build required configuration for this provider
    180     $config = array();
    181     $config["base_url"] = WORDPRESS_SOCIAL_LOGIN_HYBRIDAUTH_ENDPOINT_URL;
    182     $config["providers"] = array();
    183     $config["providers"][$provider] = array();
    184     $config["providers"][$provider]["enabled"] = true;
    185     $config["providers"][$provider]["keys"] = array( 'id' => null, 'key' => null, 'secret' => null );
    186 
    187     // provider application id ?
    188     if( get_option( 'wsl_settings_' . $provider . '_app_id' ) )
    189     {
    190         $config["providers"][$provider]["keys"]["id"] = get_option( 'wsl_settings_' . $provider . '_app_id' );
    191     }
    192 
    193     // provider application key ?
    194     if( get_option( 'wsl_settings_' . $provider . '_app_key' ) )
    195     {
    196         $config["providers"][$provider]["keys"]["key"] = get_option( 'wsl_settings_' . $provider . '_app_key' );
    197     }
    198 
    199     // provider application secret ?
    200     if( get_option( 'wsl_settings_' . $provider . '_app_secret' ) )
    201     {
    202         $config["providers"][$provider]["keys"]["secret"] = get_option( 'wsl_settings_' . $provider . '_app_secret' );
    203     }
    204 
    205     // set custom endpoint?
    206     if( in_array( strtolower( $provider ), array( 'live', 'dribbble' ) ) )
    207     {
    208         $config["providers"][$provider]["endpoint"] = WORDPRESS_SOCIAL_LOGIN_HYBRIDAUTH_ENDPOINT_URL . 'endpoints/' . strtolower( $provider ) . '.php';
    209     }
    210 
    211     // set default scope and display mode for facebook
    212     if( strtolower( $provider ) == "facebook" )
    213     {
    214         $config["providers"][$provider]["scope"] = "email, user_about_me, user_birthday, user_hometown, user_website";
    215         $config["providers"][$provider]["display"] = "popup";
    216         $config["providers"][$provider]["trustForwarded"] = true;
    217 
    218         // switch to fb::display 'page' if wsl auth in page
    219         if( get_option( 'wsl_settings_use_popup') == 2 )
    220         {
    221             $config["providers"][$provider]["display"] = "page";
    222         }
    223     }
    224 
    225     // set default scope for google
    226     if( strtolower( $provider ) == "google" ){
    227         $config["providers"][$provider]["scope"] = "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read"; 
    228 
    229         // if contacts import enabled, we request an extra permission 'https://www.google.com/m8/feeds/'
    230         if( get_option( 'wsl_settings_contacts_import_google' ) == 1 )
    231         {
    232             $config["providers"][$provider]["scope"] .= " https://www.google.com/m8/feeds/";
    233         }
    234     }
    235 
    236     // HOOKABLE: allow to overwrite scopes (some people have asked for a way to lower the number of permissions requested)
    237     $provider_scope = isset( $config["providers"][$provider]["scope"] ) ? $config["providers"][$provider]["scope"] : '' ;
    238     $config["providers"][$provider]["scope"] = apply_filters( 'wsl_hook_alter_provider_scope', $provider_scope, $provider );
     194    $config = wsl_process_login_build_provider_config( $provider );
    239195
    240196    /* 3. Instantiate the class Hybrid_Auth and redirect the user to provider to ask for authorisation for this website */
     
    270226
    271227    // HOOKABLE:
    272     do_action( "wsl_hook_process_login_after_hybridauth_authenticate", $provider, $config );
     228    do_action( "wsl_hook_process_login_after_hybridauth_authenticate", $provider, $config, $hybridauth, $adapter );
    273229
    274230    /* 4. Display a loading screen after user come back from provider as we redirect the user back to Widget::Redirect URL */
     
    277233    $wsl_settings_use_popup = get_option( 'wsl_settings_use_popup' );
    278234
     235    // authentication mode
     236    $auth_mode = wsl_process_login_get_auth_mode();
     237
    279238    $redirect_to = isset( $_REQUEST[ 'redirect_to' ] ) ? $_REQUEST[ 'redirect_to' ] : site_url();
    280239
    281240    // build the authenticateD, which will make wsl_process_login() fire the next step wsl_process_login_end()
    282     $authenticated_url = site_url( 'wp-login.php', 'login_post' ) . ( strpos( site_url( 'wp-login.php', 'login_post' ), '?' ) ? '&' : '?' ) . "action=wordpress_social_authenticated&provider=" . $provider;
     241    $authenticated_url = site_url( 'wp-login.php', 'login_post' ) . ( strpos( site_url( 'wp-login.php', 'login_post' ), '?' ) ? '&' : '?' ) . "action=wordpress_social_authenticated&provider=" . $provider . '&mode=' . $auth_mode;
    283242
    284243    // display a loading screen
     
    308267    $provider = apply_filters( 'wsl_hook_process_login_alter_provider', wsl_process_login_get_selected_provider() );
    309268
     269    // authentication mode
     270    $auth_mode = wsl_process_login_get_auth_mode();
     271
     272    $is_new_user             = false; // is it a new or returning user
     273    $user_id                 = ''   ; // wp user id
     274    $adapter                 = ''   ; // hybriauth adapter for the selected provider
     275    $hybridauth_user_profile = ''   ; // hybriauth user profile
     276    $hybridauth_user_email   = ''   ; // user email as provided by the provider
     277    $request_user_login      = ''   ; // username typed by users in Profile Completion
     278    $request_user_email      = ''   ; // email typed by users in Profile Completion
     279
    310280    // provider is enabled?
    311281    if( ! get_option( 'wsl_settings_' . $provider . '_enabled' ) )
     
    314284    }
    315285
    316     // is it a new or returning user
    317     $is_new_user = false;
    318 
    319     // returns user data after he authenticate via hybridauth
    320     list
    321     (
    322         $user_id                , // wp user_id if found in database
    323         $adapter                , // hybriauth adapter for the selected provider
    324         $hybridauth_user_profile, // hybriauth user profile
    325         $hybridauth_user_email  , // user email as provided by the provider
    326         $request_user_login     , // username typed by users in Profile Completion
    327         $request_user_email     , // email typed by users in Profile Completion
    328     )
    329     = wsl_process_login_end_get_user_data( $provider, $redirect_to );
    330 
    331     // if no associated user were found in wslusersprofiles, create new WordPress user
    332     if( ! $user_id )
    333     {
    334         $user_id = wsl_process_login_create_wp_user( $provider, $hybridauth_user_profile, $request_user_login, $request_user_email );
    335 
    336         $is_new_user = true;
     286    if( 'test' == $auth_mode )
     287    {
     288        $redirect_to = admin_url( 'options-general.php?page=wordpress-social-login&wslp=auth-test&provider=' . $provider );
     289
     290        return wp_safe_redirect( $redirect_to );
     291    }
     292
     293    if( 'link' == $auth_mode )
     294    {
     295        // a social account cant be associated with more than one wordpress account.
     296
     297        $hybridauth_user_profile = wsl_process_login_request_user_social_profile( $provider );
     298
     299        $user_id = (int) wsl_get_stored_hybridauth_user_id_by_provider_and_provider_uid( $provider, $hybridauth_user_profile->identifier );
     300
     301        if( $user_id && $user_id != get_current_user_id() )
     302        {
     303            return wsl_process_login_render_notice_page( sprintf( _wsl__( "Your <b>%s ID</b> is already linked to another account on this website.", 'wordpress-social-login'), $provider ) );
     304        }
     305
     306        $user_id = get_current_user_id();
     307
     308        // doesn't hurt to double check
     309        if( ! $user_id )
     310        {
     311            return wsl_process_login_render_notice_page( _wsl__( "Sorry, we couldn't link your account.", 'wordpress-social-login' ) );
     312        }
     313    }
     314    elseif( 'login' != $auth_mode )
     315    {
     316        return wsl_process_login_render_notice_page( _wsl__( 'Bouncer says no.', 'wordpress-social-login' ) );
     317    }
     318
     319    if( 'login' == $auth_mode )
     320    {
     321        // returns user data after he authenticate via hybridauth
     322        list
     323        (
     324            $user_id                ,
     325            $adapter                ,
     326            $hybridauth_user_profile,
     327            $hybridauth_user_email  ,
     328            $request_user_login     ,
     329            $request_user_email     ,
     330        )
     331        = wsl_process_login_end_get_user_data( $provider, $redirect_to );
     332
     333        // if no associated user were found in wslusersprofiles, create new WordPress user
     334        if( ! $user_id )
     335        {
     336            $user_id = wsl_process_login_create_wp_user( $provider, $hybridauth_user_profile, $request_user_login, $request_user_email );
     337
     338            $is_new_user = true;
     339        }
    337340    }
    338341
     
    345348        wsl_delete_stored_hybridauth_user_data( $user_id );
    346349
    347         return wsl_process_login_render_notice_page( sprintf( _wsl__( "Sorry, we couldn't connect you to <b>%s</b>. <a href=\"%s\">Please try again</a>.", 'wordpress-social-login' ), bloginfo('name'), site_url( 'wp-login.php', 'login_post' ) ) );
     350        return wsl_process_login_render_notice_page( sprintf( _wsl__( "Sorry, we couldn't connect you. <a href=\"%s\">Please try again</a>.", 'wordpress-social-login' ), site_url( 'wp-login.php', 'login_post' ) ) );
    348351    }
    349352
     
    493496    }
    494497
    495     /* 4 Deletegate detection of user id to custom functions / hooks */
     498    /* 4 Deletegate detection of user id to custom filters hooks */
    496499
    497500    // HOOKABLE:
     
    534537        )
    535538        {
    536             die( 'hiii') ;
    537539            do
    538540            {
     
    713715    }
    714716
    715     // update user metadata
    716     if( $user_id && is_integer( $user_id ) )
    717     {
    718         update_user_meta( $user_id, 'wsl_current_provider'   , $provider );
    719         update_user_meta( $user_id, 'wsl_current_user_image' , $hybridauth_user_profile->photoURL );
    720     }
    721 
    722717    // do not continue without user_id
    723     else
     718    if( ! $user_id || ! is_integer( $user_id ) )
    724719    {
    725720        if( is_wp_error( $user_id ) )
     
    791786    // update some fields in usermeta for the current user
    792787    update_user_meta( $user_id, 'wsl_current_provider'   , $provider );
    793     update_user_meta( $user_id, 'wsl_current_user_image' , $hybridauth_user_profile->photoURL );
     788
     789    if(  $hybridauth_user_profile->photoURL )
     790    {
     791        update_user_meta( $user_id, 'wsl_current_user_image' , $hybridauth_user_profile->photoURL );
     792    }
    794793
    795794    # {{{ module Bouncer
     
    835834
    836835        // let keep it std
    837         do_action( 'wp_login', $wp_user->user_login );
     836        do_action( 'wp_login', $wp_user->user_login, $wp_user );
    838837    }
    839838
     
    860859
    861860/**
     861*  Build required hybridauth configuration for the given provider
     862*/
     863function wsl_process_login_build_provider_config( $provider )
     864{
     865    $config = array();
     866    $config["base_url"] = WORDPRESS_SOCIAL_LOGIN_HYBRIDAUTH_ENDPOINT_URL;
     867    $config["providers"] = array();
     868    $config["providers"][$provider] = array();
     869    $config["providers"][$provider]["enabled"] = true;
     870    $config["providers"][$provider]["keys"] = array( 'id' => null, 'key' => null, 'secret' => null );
     871
     872    // provider application id ?
     873    if( get_option( 'wsl_settings_' . $provider . '_app_id' ) )
     874    {
     875        $config["providers"][$provider]["keys"]["id"] = get_option( 'wsl_settings_' . $provider . '_app_id' );
     876    }
     877
     878    // provider application key ?
     879    if( get_option( 'wsl_settings_' . $provider . '_app_key' ) )
     880    {
     881        $config["providers"][$provider]["keys"]["key"] = get_option( 'wsl_settings_' . $provider . '_app_key' );
     882    }
     883
     884    // provider application secret ?
     885    if( get_option( 'wsl_settings_' . $provider . '_app_secret' ) )
     886    {
     887        $config["providers"][$provider]["keys"]["secret"] = get_option( 'wsl_settings_' . $provider . '_app_secret' );
     888    }
     889
     890    // set custom endpoint?
     891    if( in_array( strtolower( $provider ), array( 'live', 'dribbble' ) ) )
     892    {
     893        $config["providers"][$provider]["endpoint"] = WORDPRESS_SOCIAL_LOGIN_HYBRIDAUTH_ENDPOINT_URL . 'endpoints/' . strtolower( $provider ) . '.php';
     894    }
     895
     896    // set default scope and display mode for facebook
     897    if( strtolower( $provider ) == "facebook" )
     898    {
     899        // > do not reset this scope manually, use wsl filter 'hook wsl_hook_alter_provider_scope'
     900        $config["providers"][$provider]["scope"] = "email, user_about_me, user_birthday, user_hometown, user_website";
     901        $config["providers"][$provider]["display"] = "popup";
     902        $config["providers"][$provider]["trustForwarded"] = true;
     903
     904        // switch to fb::display 'page' if wsl auth in page
     905        if( get_option( 'wsl_settings_use_popup') == 2 )
     906        {
     907            $config["providers"][$provider]["display"] = "page";
     908        }
     909    }
     910
     911    // set default scope for google
     912    if( strtolower( $provider ) == "google" )
     913    {
     914        // > do not reset this scope manually, use wsl filter 'hook wsl_hook_alter_provider_scope'
     915        $config["providers"][$provider]["scope"] = "profile https://www.googleapis.com/auth/plus.profile.emails.read";
     916
     917        // if contacts import enabled, we request an extra permission 'https://www.google.com/m8/feeds/'
     918        if( get_option( 'wsl_settings_contacts_import_google' ) == 1 && wsl_is_component_enabled( 'contacts' ) )
     919        {
     920            $config["providers"][$provider]["scope"] .= " https://www.google.com/m8/feeds/";
     921        }
     922    }
     923
     924    // HOOKABLE: allow to overwrite scopes
     925    $provider_scope = isset( $config["providers"][$provider]["scope"] ) ? $config["providers"][$provider]["scope"] : '' ;
     926
     927    $config["providers"][$provider]["scope"] = apply_filters( 'wsl_hook_alter_provider_scope', $provider_scope, $provider );
     928
     929    // HOOKABLE: allow to overwrite hybridauth config for the selected provider
     930    $config["providers"][$provider] = apply_filters( 'wsl_hook_alter_provider_config', $config["providers"][$provider], $provider );
     931
     932    return $config;
     933}
     934
     935// --------------------------------------------------------------------
     936
     937/**
    862938*  Grab the user profile from social network
    863939*/
    864940function wsl_process_login_request_user_social_profile( $provider )
    865941{
     942    $adapter                 = null;
     943    $config                  = null;
    866944    $hybridauth_user_profile = null;
    867945
     
    870948        // get idp adapter
    871949        $adapter = wsl_process_login_get_provider_adapter( $provider );
     950
     951        $config = $adapter->config;
    872952
    873953        // if user authenticated successfully with social network
     
    908988    return Hybrid_Auth::getAdapter( $provider );
    909989}
    910 
    911 add_filter( 'wsl_process_login_get_provider_adapter', 'wsl_process_login_get_provider_adapter', 10, 1 );
    912990
    913991// --------------------------------------------------------------------
     
    10381116
    10391117/**
    1040 * Returns the selected provider from _REQUEST
     1118* Returns the selected provider from _REQUEST, default to null
    10411119*/
    10421120function wsl_process_login_get_selected_provider()
     
    10481126
    10491127/**
     1128* Returns the selected auth mode from _REQUEST, default to login
     1129*/
     1130function wsl_process_login_get_auth_mode()
     1131{
     1132    return ( isset( $_REQUEST["mode"] ) ? sanitize_text_field( $_REQUEST["mode"] ) : 'login' );
     1133}
     1134
     1135// --------------------------------------------------------------------
     1136
     1137/**
    10501138* Clear the stored data by hybridauth and wsl in php session
    10511139*/
    10521140function wsl_process_login_clear_user_php_session()
    10531141{
    1054     $_SESSION["HA::STORE"]        = array(); // used by hybridauth library. to clear as soon as the auth process end.
    1055     $_SESSION["HA::CONFIG"]       = array(); // used by hybridauth library. to clear as soon as the auth process end.
    1056     $_SESSION["wsl::userprofile"] = array(); // used by wsl to temporarily store the user profile so de don't make unnecessary calls to social apis.
     1142    $_SESSION["HA::STORE"]        = array(); // used by hybridauth library. to clear as soon as the auth process ends.
     1143    $_SESSION["HA::CONFIG"]       = array(); // used by hybridauth library. to clear as soon as the auth process ends.
     1144    $_SESSION["wsl::userprofile"] = array(); // used by wsl to temporarily store the user profile so we don't make unnecessary calls to social apis.
    10571145}
    10581146
  • wordpress-social-login/trunk/includes/services/wsl.user.data.php

    r1010987 r1015041  
    1010* User data functions (database related)
    1111*
    12 * This code is loosely commented: functions names should be self-explanatory.
     12* Notes:
     13*   1. This entire file will be rewroked in future versions based on a lightweight ORM.
     14*   2. The current code is loosely commented: functions names should be self-explanatory.
    1315*/
    1416
     
    180182    global $wpdb;
    181183
    182     $sql = "SELECT * FROM `{$wpdb->prefix}wslusersprofiles` where user_id = %d";
     184    $sql = "SELECT * FROM `{$wpdb->prefix}wslusersprofiles` where user_id = %d order by provider";
    183185
    184186    return $wpdb->get_results( $wpdb->prepare( $sql, $user_id ) );
     
    193195    $wpdb->show_errors();
    194196
    195     $sql = "SELECT id, object_sha FROM `{$wpdb->prefix}wslusersprofiles` where user_id = %d and provider = %s";
     197    $sql = "SELECT id, object_sha FROM `{$wpdb->prefix}wslusersprofiles` where user_id = %d and provider = %s and identifier = %s";
    196198   
    197     $rs  = $wpdb->get_results( $wpdb->prepare( $sql, $user_id, $provider ) );
     199    $rs  = $wpdb->get_results( $wpdb->prepare( $sql, $user_id, $provider, $profile->identifier ) );
    198200
    199201    // we only sotre the user profile if it has changed since last login.
  • wordpress-social-login/trunk/includes/services/wsl.utilities.php

    r1012302 r1015041  
    2424
    2525    return $WORDPRESS_SOCIAL_LOGIN_VERSION;
    26 }
    27 
    28 // --------------------------------------------------------------------
    29 
    30 /**
    31 * _e() wrapper
    32 *
    33 * This function was used for the localization widget to generate translations per page.
    34 *
    35 * kept for compatibility.
    36 */
    37 function _wsl_e( $text, $domain )
    38 {
    39     echo __( $text, $domain );
    40 }
    41 
    42 // --------------------------------------------------------------------
    43 
    44 /**
    45 * __() wrapper
    46 *
    47 * This function was used for the localization widget to generate translations per page.
    48 *
    49 * kept for compatibility.
    50 */
    51 function _wsl__( $text, $domain )
    52 {
    53     return __( $text, $domain );
    5426}
    5527
  • wordpress-social-login/trunk/includes/services/wsl.watchdog.php

    r1010987 r1015041  
    2626        return;
    2727    }
     28
     29    define( 'WORDPRESS_SOCIAL_LOGIN_DEBUG_API_CALLS', true );
    2830
    2931    add_action( 'wsl_process_login_start', 'wsl_watchdog_wsl_process_login' );
  • wordpress-social-login/trunk/includes/settings/wsl.database.php

    r1010987 r1015041  
    3636    wsl_check_compatibilities();
    3737
    38     // wsl tables names
     38    // create wsl tables
     39    $wslusersprofiles = "{$wpdb->prefix}wslusersprofiles";
    3940    $wsluserscontacts = "{$wpdb->prefix}wsluserscontacts";
    40     $wslusersprofiles = "{$wpdb->prefix}wslusersprofiles";
    4141
    42     // create wsl tables
    4342    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    4443
    45     $sql = "CREATE TABLE " . $wslusersprofiles . " (
     44    $sql = "CREATE TABLE $wslusersprofiles (
    4645            id int(11) NOT NULL AUTO_INCREMENT,
    4746            user_id int(11) NOT NULL,
    4847            provider varchar(50) NOT NULL,
    49             object_sha varchar(255) NOT NULL,
     48            object_sha varchar(45) NOT NULL,
    5049            identifier varchar(255) NOT NULL,
    5150            profileurl varchar(255) NOT NULL,
     
    7170            zip varchar(25) NOT NULL,
    7271            UNIQUE KEY id (id),
    73             KEY idp_uid (provider,identifier),
    74             KEY user_id (user_id)
     72            KEY user_id (user_id),
     73            KEY provider (provider)
    7574        )";
    7675    dbDelta( $sql );
    7776
    78     $sql = "CREATE TABLE " . $wsluserscontacts . " (
     77    $sql = "CREATE TABLE $wsluserscontacts (
    7978            id int(11) NOT NULL AUTO_INCREMENT,
    8079            user_id int(11) NOT NULL,
  • wordpress-social-login/trunk/includes/settings/wsl.initialization.php

    r1011553 r1015041  
    4646/** list of WSL components */
    4747$WORDPRESS_SOCIAL_LOGIN_COMPONENTS = ARRAY(
    48     "core"           => array( "type" => "core"  , "label" => __("WSL Core"   , 'wordpress-social-login'), "description" => __("WordPress Social Login core."                   , 'wordpress-social-login') ),
    49     "networks"       => array( "type" => "core"  , "label" => __("Networks"   , 'wordpress-social-login'), "description" => __("Social networks setup."                         , 'wordpress-social-login') ),
    50     "login-widget"   => array( "type" => "core"  , "label" => __("Widget"     , 'wordpress-social-login'), "description" => __("Authentication widget customization."           , 'wordpress-social-login') ),
    51     "bouncer"        => array( "type" => "core"  , "label" => __("Bouncer"    , 'wordpress-social-login'), "description" => __("WordPress Social Login advanced configuration." , 'wordpress-social-login') ),
    52     "users"          => array( "type" => "addon" , "label" => __("Users"      , 'wordpress-social-login'), "description" => __("WordPress Social Login users manager."          , 'wordpress-social-login') ),
    53     "contacts"       => array( "type" => "addon" , "label" => __("Contacts"   , 'wordpress-social-login'), "description" => __("WordPress Social Login users contacts manager"  , 'wordpress-social-login') ),
    54     "buddypress"     => array( "type" => "addon" , "label" => __("BuddyPress" , 'wordpress-social-login'), "description" => __("Makes WordPress Social Login compatible with BuddyPress: Widget integration, Users avatars and xProfiles mapping.", 'wordpress-social-login') ),
     48    "core"           => array( "type" => "core"  , "label" => _wsl__("WSL Core"   , 'wordpress-social-login'), "description" => _wsl__("WordPress Social Login core."                   , 'wordpress-social-login') ),
     49    "networks"       => array( "type" => "core"  , "label" => _wsl__("Networks"   , 'wordpress-social-login'), "description" => _wsl__("Social networks setup."                         , 'wordpress-social-login') ),
     50    "login-widget"   => array( "type" => "core"  , "label" => _wsl__("Widget"     , 'wordpress-social-login'), "description" => _wsl__("Authentication widget customization."           , 'wordpress-social-login') ),
     51    "bouncer"        => array( "type" => "core"  , "label" => _wsl__("Bouncer"    , 'wordpress-social-login'), "description" => _wsl__("WordPress Social Login advanced configuration." , 'wordpress-social-login') ),
     52    "users"          => array( "type" => "addon" , "label" => _wsl__("Users"      , 'wordpress-social-login'), "description" => _wsl__("WordPress Social Login users manager."          , 'wordpress-social-login') ),
     53    "contacts"       => array( "type" => "addon" , "label" => _wsl__("Contacts"   , 'wordpress-social-login'), "description" => _wsl__("WordPress Social Login users contacts manager"  , 'wordpress-social-login') ),
     54    "buddypress"     => array( "type" => "addon" , "label" => _wsl__("BuddyPress" , 'wordpress-social-login'), "description" => _wsl__("Makes WordPress Social Login compatible with BuddyPress: Widget integration, Users avatars and xProfiles mapping.", 'wordpress-social-login') ),
    5555);
    5656
    5757/** list of WSL admin tabs */
    5858$WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS = ARRAY( 
    59     "networks"     => array( "label" => __("Networks"      , 'wordpress-social-login') , "visible" => true  , "component" => "networks"       , "default" => true ),
    60     "login-widget" => array( "label" => __("Widget"        , 'wordpress-social-login') , "visible" => true  , "component" => "login-widget"   ),
    61     "bouncer"      => array( "label" => __("Bouncer"       , 'wordpress-social-login') , "visible" => true  , "component" => "bouncer"        ),
    62 
    63     "users"        => array( "label" => __("Users"         , 'wordpress-social-login') , "visible" => true  , "component" => "users"         ),
    64     "contacts"     => array( "label" => __("Contacts"      , 'wordpress-social-login') , "visible" => true  , "component" => "contacts"      ),
    65     "buddypress"   => array( "label" => __("BuddyPress"    , 'wordpress-social-login') , "visible" => true  , "component" => "buddypress"    ),
    66 
    67     "watchdog"     => array( "label" => __("Log viewer"    , 'wordpress-social-login') , "visible" => false , "component" => "core"           , "pull-right" => true , 'ico' => 'debug.png'      ),
    68     "help"         => array( "label" => __('Help'          , 'wordpress-social-login') , "visible" => true  , "component" => "core"           , "pull-right" => true , 'ico' => 'help.png'       ),
    69     "tools"        => array( "label" => __("Tools"         , 'wordpress-social-login') , "visible" => true  , "component" => "core"           , "pull-right" => true , 'ico' => 'tools.png'      ),
    70     "components"   => array( "label" => __("Components"    , 'wordpress-social-login') , "visible" => true  , "component" => "core"           , "pull-right" => true , 'ico' => 'components.png' ),
     59    "networks"     => array( "label" => _wsl__("Networks"      , 'wordpress-social-login') , "visible" => true  , "component" => "networks"       , "default" => true ),
     60    "login-widget" => array( "label" => _wsl__("Widget"        , 'wordpress-social-login') , "visible" => true  , "component" => "login-widget"   ),
     61    "bouncer"      => array( "label" => _wsl__("Bouncer"       , 'wordpress-social-login') , "visible" => true  , "component" => "bouncer"        ),
     62
     63    "users"        => array( "label" => _wsl__("Users"         , 'wordpress-social-login') , "visible" => true  , "component" => "users"         ),
     64    "contacts"     => array( "label" => _wsl__("Contacts"      , 'wordpress-social-login') , "visible" => true  , "component" => "contacts"      ),
     65    "buddypress"   => array( "label" => _wsl__("BuddyPress"    , 'wordpress-social-login') , "visible" => true  , "component" => "buddypress"    ),
     66
     67    "help"         => array( "label" => _wsl__('Help'          , 'wordpress-social-login') , "visible" => true  , "component" => "core"           , "pull-right" => true , 'ico' => 'help.png'       ),
     68    "tools"        => array( "label" => _wsl__("Tools"         , 'wordpress-social-login') , "visible" => true  , "component" => "core"           , "pull-right" => true , 'ico' => 'tools.png'      ),
     69    "watchdog"     => array( "label" => _wsl__("Log viewer"    , 'wordpress-social-login') , "visible" => false , "component" => "core"           , "pull-right" => true , 'ico' => 'debug.png'      ),
     70    "auth-test"    => array( "label" => _wsl__("Auth test"     , 'wordpress-social-login') , "visible" => false , "component" => "core"           , "pull-right" => true , 'ico' => 'magic.png'      ),
     71    "components"   => array( "label" => _wsl__("Components"    , 'wordpress-social-login') , "visible" => true  , "component" => "core"           , "pull-right" => true , 'ico' => 'components.png' ),
    7172);
    7273
  • wordpress-social-login/trunk/includes/widgets/wsl.error.pages.php

    r1012302 r1015041  
    112112    </body>
    113113</html>
    114 <?php
    115     # keep these 2 LOC
    116         do_action( 'wsl_clear_user_php_session' );
    117 
     114<?php
    118115        die();
    119116    }
  • wordpress-social-login/trunk/languages/default.po

    r1011553 r1015041  
    22msgstr ""
    33"Project-Id-Version: WordPress Social Login\n"
    4 "POT-Creation-Date: 2014-10-20 09:23+0100\n"
    5 "PO-Revision-Date: 2014-10-20 09:23+0100\n"
    6 "Last-Translator: Miled <[email protected]>\n"
     4"POT-Creation-Date: 2014-10-27 00:41+0100\n"
     5"PO-Revision-Date: 2014-10-27 00:42+0100\n"
     6"Last-Translator: Mrassi Med <[email protected]>\n"
    77"Language-Team: WordPress Social Login <[email protected]>\n"
    88"Language: en\n"
     
    1111"Content-Transfer-Encoding: 8bit\n"
    1212
     13#: wordpress-social-login/includes/admin/components/auth-test/index.php:53
     14#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:36
     15msgid "Provider user ID"
     16msgstr ""
     17
     18#: wordpress-social-login/includes/admin/components/auth-test/index.php:54
     19#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:89
     20#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:70
     21#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:81
     22#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:37
     23msgid "Profile URL"
     24msgstr ""
     25
     26#: wordpress-social-login/includes/admin/components/auth-test/index.php:55
     27#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:90
     28#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:38
     29msgid "Website URL"
     30msgstr ""
     31
     32#: wordpress-social-login/includes/admin/components/auth-test/index.php:56
     33#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:91
     34#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:39
     35msgid "Photo URL"
     36msgstr ""
     37
     38#: wordpress-social-login/includes/admin/components/auth-test/index.php:57
     39#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:92
     40#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:40
     41#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:99
     42msgid "Display name"
     43msgstr ""
     44
     45#: wordpress-social-login/includes/admin/components/auth-test/index.php:58
     46#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:93
     47#: wordpress-social-login/includes/admin/components/components/wsl.components.help.setup.php:34
     48#: wordpress-social-login/includes/admin/components/components/wsl.components.help.setup.php:42
     49#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:41
     50msgid "Description"
     51msgstr ""
     52
     53#: wordpress-social-login/includes/admin/components/auth-test/index.php:59
     54#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:94
     55#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:42
     56msgid "First name"
     57msgstr ""
     58
     59#: wordpress-social-login/includes/admin/components/auth-test/index.php:60
     60#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:95
     61#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:43
     62msgid "Last name"
     63msgstr ""
     64
     65#: wordpress-social-login/includes/admin/components/auth-test/index.php:61
     66#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:96
     67#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:44
     68msgid "Gender"
     69msgstr ""
     70
     71#: wordpress-social-login/includes/admin/components/auth-test/index.php:62
     72#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:97
     73#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:45
     74msgid "Language"
     75msgstr ""
     76
     77#: wordpress-social-login/includes/admin/components/auth-test/index.php:63
     78#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:98
     79#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:46
     80msgid "Age"
     81msgstr ""
     82
     83#: wordpress-social-login/includes/admin/components/auth-test/index.php:64
     84#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:99
     85#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:47
     86msgid "Birth day"
     87msgstr ""
     88
     89#: wordpress-social-login/includes/admin/components/auth-test/index.php:65
     90#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:100
     91#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:48
     92msgid "Birth month"
     93msgstr ""
     94
     95#: wordpress-social-login/includes/admin/components/auth-test/index.php:66
     96#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:101
     97#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:49
     98msgid "Birth year"
     99msgstr ""
     100
     101#: wordpress-social-login/includes/admin/components/auth-test/index.php:67
     102#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:103
     103#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:50
     104msgid "Email"
     105msgstr ""
     106
     107#: wordpress-social-login/includes/admin/components/auth-test/index.php:68
     108#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:104
     109#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:51
     110msgid "Phone"
     111msgstr ""
     112
     113#: wordpress-social-login/includes/admin/components/auth-test/index.php:69
     114#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:105
     115#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:52
     116msgid "Address"
     117msgstr ""
     118
     119#: wordpress-social-login/includes/admin/components/auth-test/index.php:70
     120#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:106
     121#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:53
     122msgid "Country"
     123msgstr ""
     124
     125#: wordpress-social-login/includes/admin/components/auth-test/index.php:71
     126#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:107
     127#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:54
     128msgid "Region"
     129msgstr ""
     130
     131#: wordpress-social-login/includes/admin/components/auth-test/index.php:72
     132#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:108
     133#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:55
     134msgid "City"
     135msgstr ""
     136
     137#: wordpress-social-login/includes/admin/components/auth-test/index.php:73
     138#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:109
     139#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:56
     140msgid "Zip"
     141msgstr ""
     142
     143#: wordpress-social-login/includes/admin/components/auth-test/index.php:91
     144msgid "Connect with a provider to get started"
     145msgstr ""
     146
     147#: wordpress-social-login/includes/admin/components/auth-test/index.php:96
     148msgid "Connected adapter specs"
     149msgstr ""
     150
     151#: wordpress-social-login/includes/admin/components/auth-test/index.php:101
     152#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.list.php:72
     153#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.list.php:80
     154#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:44
     155msgid "Provider"
     156msgstr ""
     157
     158#: wordpress-social-login/includes/admin/components/auth-test/index.php:107
     159msgid "OpenID Identifier"
     160msgstr ""
     161
     162#: wordpress-social-login/includes/admin/components/auth-test/index.php:114
     163msgid "Scope"
     164msgstr ""
     165
     166#: wordpress-social-login/includes/admin/components/auth-test/index.php:121
     167msgid "Application keys"
     168msgstr ""
     169
     170#: wordpress-social-login/includes/admin/components/auth-test/index.php:128
     171msgid "Access token"
     172msgstr ""
     173
     174#: wordpress-social-login/includes/admin/components/auth-test/index.php:135
     175msgid "Access token secret"
     176msgstr ""
     177
     178#: wordpress-social-login/includes/admin/components/auth-test/index.php:142
     179msgid "Access token expires in"
     180msgstr ""
     181
     182#: wordpress-social-login/includes/admin/components/auth-test/index.php:143
     183msgid "second(s)"
     184msgstr ""
     185
     186#: wordpress-social-login/includes/admin/components/auth-test/index.php:149
     187msgid "Access token expires at"
     188msgstr ""
     189
     190#: wordpress-social-login/includes/admin/components/auth-test/index.php:164
     191msgid "Connected adapter console"
     192msgstr ""
     193
     194#: wordpress-social-login/includes/admin/components/auth-test/index.php:201
     195msgid "Path"
     196msgstr ""
     197
     198#: wordpress-social-login/includes/admin/components/auth-test/index.php:205
     199msgid "Method"
     200msgstr ""
     201
     202#: wordpress-social-login/includes/admin/components/auth-test/index.php:209
     203msgid "Query"
     204msgstr ""
     205
     206#: wordpress-social-login/includes/admin/components/auth-test/index.php:214
     207msgid "Code PHP"
     208msgstr ""
     209
     210#: wordpress-social-login/includes/admin/components/auth-test/index.php:237
     211msgid "Response"
     212msgstr ""
     213
     214#: wordpress-social-login/includes/admin/components/auth-test/index.php:245
     215msgid "Submit"
     216msgstr ""
     217
     218#: wordpress-social-login/includes/admin/components/auth-test/index.php:253
     219msgid "Connected adapter debug"
     220msgstr ""
     221
     222#: wordpress-social-login/includes/admin/components/auth-test/index.php:266
     223msgid "Connected user social profile"
     224msgstr ""
     225
     226#: wordpress-social-login/includes/admin/components/auth-test/index.php:320
     227#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:44
     228msgid "Authentication Playground"
     229msgstr ""
     230
     231#: wordpress-social-login/includes/admin/components/auth-test/index.php:324
     232msgid ""
     233"Authentication Playground will let you authenticate with the enabled social "
     234"networks without creating any new user account"
     235msgstr ""
     236
     237#: wordpress-social-login/includes/admin/components/auth-test/index.php:327
     238msgid ""
     239"This tool will also give you a direct access to social networks apis via a "
     240"lightweight console"
     241msgstr ""
     242
     243#: wordpress-social-login/includes/admin/components/auth-test/index.php:338
     244msgid "Connect with"
     245msgstr ""
     246
    13247#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:47
    14248#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:41
     
    16250#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.setup.php:45
    17251#: wordpress-social-login/includes/admin/components/networks/wsl.components.networks.setup.php:340
    18 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:130
    19 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:181
     252#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:151
     253#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:202
    20254msgid "Save Settings"
    21255msgstr ""
     
    44278#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:141
    45279#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:150
    46 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:298
    47 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:343
    48 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:388
     280#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:316
     281#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:361
     282#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:406
    49283#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:138
    50284#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.setup.php:149
     
    58292#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:142
    59293#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:151
    60 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:299
    61 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:344
    62 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:389
     294#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:317
     295#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:362
     296#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:407
    63297#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:139
    64298#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.setup.php:150
     
    209443#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:225
    210444msgid ""
    211 "1. If <b>User Moderation</b> is set to <code>Admin Approval</code> then "
     445"1. If <b>User Moderation</b> is set to <code>Admin Approval</code>, then "
    212446"<b>Membership level</b> will be ignored"
    213447msgstr ""
     
    216450msgid ""
    217451"2. To assign the same default role as in your website <b>General Settings</"
    218 "b>, set this field to <code>default</code>"
     452"b>, set this field to <code>Wordpress User Default Role</code>"
    219453msgstr ""
    220454
    221455#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:227
    222456msgid ""
    223 "3. If you are not sure, leave this field to either <code>wslnorole</code> or "
    224 "blank (omitting the role will create a users with \"No Role For This Site\")"
     457"3. If you are not sure, leave this field to <code>No role for this site</"
     458"code>"
    225459msgstr ""
    226460
     
    229463msgstr ""
    230464
    231 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:249
     465#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:234
     466msgid "Safe"
     467msgstr ""
     468
     469#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:235
     470msgid "&mdash; Wordpress User Default Role &mdash;"
     471msgstr ""
     472
     473#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:236
     474msgid "&mdash; No role for this site  &mdash;"
     475msgstr ""
     476
     477#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:239
     478msgid "Be careful with these"
     479msgstr ""
     480
     481#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:267
    232482#, php-format
    233483msgid ""
     
    236486msgstr ""
    237487
    238 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:265
     488#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:283
    239489#, php-format
    240490msgid ""
     
    243493msgstr ""
    244494
    245 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:285
     495#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:303
    246496msgid "Filters by emails domains name"
    247497msgstr ""
    248498
    249 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:289
     499#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:307
    250500msgid "Restrict registration to a limited number of domains name."
    251501msgstr ""
    252502
    253 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:290
     503#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:308
    254504msgid ""
    255505"Note that filtration domains name takes priority over filtration by e-mails "
     
    257507msgstr ""
    258508
    259 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:291
     509#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:309
    260510msgid ""
    261511"Insert one domain address per line and try to keep this list short (ex: "
     
    264514msgstr ""
    265515
    266 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:295
    267 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:340
    268 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:385
     516#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:313
     517#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:358
     518#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:403
    269519#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.settings.setup.php:62
    270520#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.settings.setup.php:85
     
    274524#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.settings.setup.php:169
    275525#: wordpress-social-login/includes/admin/components/networks/wsl.components.networks.setup.php:144
    276 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:178
     526#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:199
    277527msgid "Enabled"
    278528msgstr ""
    279529
    280 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:304
     530#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:322
    281531msgid "Domains list"
    282532msgstr ""
    283533
    284 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:310
    285 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:355
    286 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:400
     534#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:328
     535#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:373
     536#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:418
    287537msgid "Bounce text"
    288538msgstr ""
    289539
    290 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:330
     540#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:348
    291541msgid "Filters by e-mails addresses"
    292542msgstr ""
    293543
    294 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:334
     544#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:352
    295545msgid "Restrict registration to a limited number of emails addresses."
    296546msgstr ""
    297547
    298 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:335
     548#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:353
    299549msgid ""
    300550"Note that filtration e-mails addresses takes priority over filtration by "
     
    302552msgstr ""
    303553
    304 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:336
     554#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:354
    305555msgid ""
    306556"Insert one email address per line and try to keep this list short (ex: "
     
    309559msgstr ""
    310560
    311 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:349
     561#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:367
    312562msgid "E-mails list"
    313563msgstr ""
    314564
    315 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:375
     565#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:393
    316566msgid "Filters by profile urls"
    317567msgstr ""
    318568
    319 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:379
     569#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:397
    320570msgid "Restrict registration to a limited number of profile urls"
    321571msgstr ""
    322572
    323 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:380
     573#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:398
    324574msgid ""
    325575"<b>Note</b>: Some providers like Facebook can have multiples profiles URLs "
     
    327577msgstr ""
    328578
    329 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:381
     579#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:399
    330580msgid ""
    331581"Insert one URL per line and try to keep this list short (ex: <code>https://"
     
    335585msgstr ""
    336586
    337 #: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:394
     587#: wordpress-social-login/includes/admin/components/bouncer/wsl.components.bouncer.setup.php:412
    338588msgid "Profile urls"
    339589msgstr ""
     
    388638
    389639#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.notfound.php:44
    390 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:251
     640#: wordpress-social-login/includes/admin/wsl.admin.ui.php:266
    391641msgid ""
    392642"If you believe you've found a problem with <b>WordPress Social Login</b>, be "
     
    395645
    396646#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.notfound.php:50
    397 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:257
     647#: wordpress-social-login/includes/admin/wsl.admin.ui.php:272
    398648msgid "Report as bug"
    399649msgstr ""
    400650
    401651#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.notfound.php:51
    402 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:258
     652#: wordpress-social-login/includes/admin/wsl.admin.ui.php:273
    403653msgid "Check enabled components"
    404654msgstr ""
     
    448698
    449699#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:89
    450 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:58
    451 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:69
    452 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:37
    453 msgid "Profile URL"
    454 msgstr ""
    455 
    456 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:89
    457700#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:37
    458701msgid "Link to the user profile on the provider web site"
    459 msgstr ""
    460 
    461 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:90
    462 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:38
    463 msgid "Website URL"
    464702msgstr ""
    465703
     
    471709#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:91
    472710#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:39
    473 msgid "Photo URL"
    474 msgstr ""
    475 
    476 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:91
    477 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:39
    478711msgid "Link to user picture or avatar on the provider web site"
    479712msgstr ""
     
    481714#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:92
    482715#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:40
    483 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:99
    484 msgid "Display name"
    485 msgstr ""
    486 
    487 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:92
    488 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:40
    489716msgid ""
    490717"User Display name. If not provided by social network, WSL will return a "
    491718"concatenation of the user first and last name"
    492 msgstr ""
    493 
    494 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:93
    495 #: wordpress-social-login/includes/admin/components/components/wsl.components.help.setup.php:34
    496 #: wordpress-social-login/includes/admin/components/components/wsl.components.help.setup.php:42
    497 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:41
    498 msgid "Description"
    499719msgstr ""
    500720
     
    506726#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:94
    507727#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:42
    508 msgid "First name"
    509 msgstr ""
    510 
    511 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:94
    512 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:42
    513728msgid "User's first name"
    514 msgstr ""
    515 
    516 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:95
    517 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:43
    518 msgid "Last name"
    519729msgstr ""
    520730
     
    526736#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:96
    527737#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:44
    528 msgid "Gender"
    529 msgstr ""
    530 
    531 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:96
    532 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:44
    533738msgid "User's gender. Values are 'female', 'male' or blank"
    534 msgstr ""
    535 
    536 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:97
    537 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:45
    538 msgid "Language"
    539739msgstr ""
    540740
     
    546746#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:98
    547747#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:46
    548 msgid "Age"
    549 msgstr ""
    550 
    551 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:98
    552 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:46
    553748msgid ""
    554749"User' age. Note that WSL do not calculate this field. We return it as it was "
     
    558753#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:99
    559754#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:47
    560 msgid "Birth day"
    561 msgstr ""
    562 
    563 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:99
    564 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:47
    565755msgid ""
    566756"The day in the month in which the person was born. Not to confuse it with "
    567757"'Birth date'"
    568 msgstr ""
    569 
    570 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:100
    571 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:48
    572 msgid "Birth month"
    573758msgstr ""
    574759
     
    580765#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:101
    581766#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:49
    582 msgid "Birth year"
    583 msgstr ""
    584 
    585 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:101
    586 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:49
    587767msgid "The year in which the person was born"
    588768msgstr ""
     
    597777
    598778#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:103
    599 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:50
    600 msgid "Email"
    601 msgstr ""
    602 
    603 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:103
    604779msgid ""
    605780"User's email address. Not all of provider grant access to the user email"
    606 msgstr ""
    607 
    608 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:104
    609 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:51
    610 msgid "Phone"
    611781msgstr ""
    612782
     
    618788#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:105
    619789#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:52
    620 msgid "Address"
    621 msgstr ""
    622 
    623 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:105
    624 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:52
    625790msgid "User's address"
    626 msgstr ""
    627 
    628 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:106
    629 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:53
    630 msgid "Country"
    631791msgstr ""
    632792
     
    638798#: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:107
    639799#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:54
    640 msgid "Region"
    641 msgstr ""
    642 
    643 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:107
    644 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:54
    645800msgid "User's state or region"
    646 msgstr ""
    647 
    648 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:108
    649 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:55
    650 msgid "City"
    651801msgstr ""
    652802
     
    654804#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:55
    655805msgid "User's city"
    656 msgstr ""
    657 
    658 #: wordpress-social-login/includes/admin/components/buddypress/wsl.components.buddypress.setup.php:109
    659 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:56
    660 msgid "Zip"
    661806msgstr ""
    662807
     
    8571002msgstr ""
    8581003
    859 #: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.list.php:72
    860 #: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.list.php:80
    861 msgid "Provider"
    862 msgstr ""
    863 
    8641004#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.list.php:73
    8651005#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.list.php:81
     
    8821022
    8831023#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.list.php:138
    884 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:185
     1024#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:197
    8851025msgid "&laquo;"
    8861026msgstr ""
    8871027
    8881028#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.list.php:139
    889 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:186
     1029#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:198
    8901030msgid "&raquo;"
    8911031msgstr ""
     
    9091049#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.settings.setup.php:151
    9101050#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.settings.setup.php:170
    911 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:125
    912 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:177
     1051#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:146
     1052#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:198
    9131053msgid "Disabled"
    9141054msgstr ""
     
    9731113
    9741114#: wordpress-social-login/includes/admin/components/contacts/wsl.components.contacts.settings.sidebar.php:54
    975 #: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:113
     1115#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:110
    9761116#: wordpress-social-login/includes/admin/components/networks/wsl.components.networks.setup.php:188
    9771117msgid "Notes"
     
    13101450msgstr ""
    13111451
    1312 #: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:83
    1313 msgid "Do not try to connect with the Widget here, it won't work"
    1314 msgstr ""
    1315 
    1316 #: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:102
     1452#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:99
    13171453msgid "Custom integration"
    13181454msgstr ""
    13191455
    1320 #: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:106
     1456#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:103
    13211457msgid ""
    13221458"If you want to add the widget to another location in your website, you can "
     
    13241460msgstr ""
    13251461
    1326 #: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:108
     1462#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:105
    13271463msgid "For posts and pages, you may use this shortcode"
    13281464msgstr ""
    13291465
    1330 #: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:115
     1466#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:112
    13311467msgid "WSL Widget will only show up for non connected users"
    13321468msgstr ""
    13331469
    1334 #: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:117
     1470#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:114
    13351471msgid ""
    13361472"In case you are using a caching plugin on your website, you might need to "
     
    13381474msgstr ""
    13391475
    1340 #: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:119
     1476#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:116
    13411477msgid ""
    13421478"Adblock Plus users with &ldquo;<a href=\"https://adblockplus.org/en/"
     
    13451481msgstr ""
    13461482
    1347 #: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:123
     1483#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:120
    13481484msgid "Tip"
    13491485msgstr ""
    13501486
    1351 #: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:125
     1487#: wordpress-social-login/includes/admin/components/login-widget/wsl.components.loginwidget.sidebar.php:122
    13521488msgid ""
    13531489"You can use <a href=\"http://wordpress.org/extend/plugins/html-javascript-"
     
    16821818
    16831819#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:24
    1684 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:43
     1820#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:64
    16851821msgid "WordPress Social Login Diagnostics"
    16861822msgstr ""
    16871823
    1688 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:466
    1689 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:584
    1690 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:616
    1691 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:733
     1824#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:595
     1825#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:713
     1826#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:745
     1827#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:862
    16921828msgid "Back to Tools"
    16931829msgstr ""
    16941830
    1695 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:488
    1696 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:63
     1831#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:617
     1832#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:84
    16971833msgid "System information"
    16981834msgstr ""
    16991835
    1700 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:606
     1836#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:735
    17011837msgid "Repair Wordpress Social Login tables"
    17021838msgstr ""
    17031839
    1704 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:610
     1840#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:739
    17051841msgid ""
    17061842"All Wordpress Social Login tables and fields <em>should</em> be now restored"
    17071843msgstr ""
    17081844
    1709 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:613
     1845#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:742
    17101846msgid "If this still didn't work, please report this as a issue"
    17111847msgstr ""
    17121848
    1713 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:717
    1714 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:195
     1849#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:846
     1850#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:216
    17151851msgid "Uninstall"
    17161852msgstr ""
    17171853
    1718 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:721
     1854#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:850
    17191855msgid ""
    17201856"All Wordpress Social Login tables and stored options are permanently deleted "
     
    17221858msgstr ""
    17231859
    1724 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:724
     1860#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:853
    17251861msgid ""
    17261862"To delete Wordpress Social Login files from your WordPress website, you may "
     
    17281864msgstr ""
    17291865
    1730 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:727
     1866#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:856
    17311867msgid "Thank you for using Wordpress Social Login"
    17321868msgstr ""
    17331869
    1734 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:730
     1870#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.job.php:859
    17351871msgid "Good bye"
    17361872msgstr ""
    17371873
    1738 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:47
     1874#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:48
     1875msgid ""
     1876"Authentication Playground will let you authenticate with the enabled social "
     1877"networks without creating any new user account. This tool will also give you "
     1878"a direct access to social networks apis via a lightweight console"
     1879msgstr ""
     1880
     1881#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:51
     1882msgid "Go to the authentication playground"
     1883msgstr ""
     1884
     1885#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:68
    17391886msgid ""
    17401887"This tool will check for the common issues and for the minimum system "
     
    17421889msgstr ""
    17431890
    1744 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:50
     1891#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:71
    17451892msgid "Run WordPress Social Login Diagnostics"
    17461893msgstr ""
    17471894
    1748 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:67
     1895#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:88
    17491896msgid ""
    17501897"This tool will gather and display your website and server info. Please "
     
    17531900msgstr ""
    17541901
    1755 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:70
     1902#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:91
    17561903msgid "Display your system information"
    17571904msgstr ""
    17581905
    1759 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:84
     1906#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:105
    17601907msgid "Repair WSL tables"
    17611908msgstr ""
    17621909
    1763 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:88
     1910#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:109
    17641911msgid ""
    17651912"This will attempt recreate WSL databases tables if they do not exist and "
     
    17671914msgstr ""
    17681915
    1769 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:91
     1916#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:112
    17701917msgid "Repair WordPress Social Login databases tables"
    17711918msgstr ""
    17721919
    1773 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:106
     1920#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:127
    17741921msgid "Debug mode"
    17751922msgstr ""
    17761923
    1777 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:110
     1924#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:131
    17781925msgid ""
    17791926"The debug mode can be useful when debugging this plugin but note that it is "
     
    17831930msgstr ""
    17841931
    1785 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:114
     1932#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:135
    17861933msgid ""
    17871934"It's recommended to keep the Debug Mode <b>Disabled</b> as will store "
     
    17891936msgstr ""
    17901937
    1791 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:118
     1938#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:139
    17921939msgid ""
    17931940"For know more, refer to our online userguide under the section <a href="
     
    17961943msgstr ""
    17971944
    1798 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:126
     1945#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:147
    17991946msgid "Enabled &mdash; Log actions in a file"
    18001947msgstr ""
    18011948
    1802 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:127
     1949#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:148
    18031950msgid "Enabled &mdash; Log actions to database"
    18041951msgstr ""
    18051952
    1806 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:133
    1807 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:162
     1953#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:154
     1954#: wordpress-social-login/includes/admin/wsl.admin.ui.php:167
    18081955msgid "View WSL logs"
    18091956msgstr ""
    18101957
    1811 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:150
     1958#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:171
    18121959msgid "Development mode"
    18131960msgstr ""
    18141961
    1815 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:154
     1962#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:175
    18161963msgid ""
    18171964"When <b>Development Mode</b> is enabled, this plugin will display a "
     
    18221969msgstr ""
    18231970
    1824 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:158
     1971#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:179
    18251972msgid ""
    18261973"Please, do not enable <b>Development Mode</b>, unless you are a developer or "
     
    18281975msgstr ""
    18291976
    1830 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:162
     1977#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:183
    18311978msgid ""
    18321979"For security reasons, <b>Development Mode</b> will auto switch to "
     
    18341981msgstr ""
    18351982
    1836 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:166
     1983#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:187
    18371984msgid ""
    18381985"It's highly recommended to keep the <b>Development Mode</b> <b style=\"color:"
     
    18401987msgstr ""
    18411988
    1842 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:170
     1989#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:191
    18431990msgid ""
    18441991"For know more, refer to our online userguide under the section <a href="
     
    18471994msgstr ""
    18481995
    1849 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:199
     1996#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:220
    18501997msgid ""
    18511998"Thi will permanently delete all Wordpress Social Login tables and stored "
     
    18532000msgstr ""
    18542001
    1855 #: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:202
     2002#: wordpress-social-login/includes/admin/components/tools/wsl.components.tools.actions.php:223
    18562003msgid "Delete all Wordpress Social Login tables and options"
    18572004msgstr ""
     
    18772024msgstr ""
    18782025
    1879 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:39
    1880 msgid ""
    1881 "This screen only list the users who have connected through WordPress Social "
    1882 "Login"
    1883 msgstr ""
    1884 
    1885 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:54
    1886 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:65
    1887 msgid "Providers"
    1888 msgstr ""
    1889 
    1890 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:55
    1891 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:66
     2026#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:46
     2027#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:67
     2028#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:78
    18922029#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:98
    18932030#: wordpress-social-login/includes/widgets/wsl.account.linking.php:392
     
    18972034msgstr ""
    18982035
    1899 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:56
    1900 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:67
     2036#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:51
     2037msgid ""
     2038"This screen only list the users who have connected through WordPress Social "
     2039"Login"
     2040msgstr ""
     2041
     2042#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:66
     2043#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:77
     2044msgid "Providers"
     2045msgstr ""
     2046
     2047#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:68
     2048#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:79
    19012049msgid "Full Name"
    19022050msgstr ""
    19032051
    1904 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:57
    1905 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:68
     2052#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:69
     2053#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:80
    19062054#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:100
    19072055#: wordpress-social-login/includes/widgets/wsl.account.linking.php:431
     
    19102058msgstr ""
    19112059
    1912 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:59
    1913 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:70
    1914 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:132
     2060#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:71
     2061#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:82
     2062#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:144
    19152063#: wordpress-social-login/includes/settings/wsl.initialization.php:53
    19162064#: wordpress-social-login/includes/settings/wsl.initialization.php:64
     
    19182066msgstr ""
    19192067
    1920 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:60
    1921 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:71
     2068#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:72
     2069#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:83
    19222070msgid "User ID"
    19232071msgstr ""
    19242072
    1925 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:82
     2073#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:94
    19262074msgid "No users found"
    19272075msgstr ""
    19282076
    1929 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:127
     2077#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:139
    19302078msgid "Profiles"
    19312079msgstr ""
    19322080
    1933 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:140
     2081#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:152
    19342082msgid "Delete"
    19352083msgstr ""
    19362084
    1937 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:199
     2085#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:211
    19382086#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:81
    19392087msgid ""
     
    19432091msgstr ""
    19442092
    1945 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:226
     2093#: wordpress-social-login/includes/admin/components/users/wsl.components.users.list.php:238
    19462094#, php-format
    19472095msgid ""
     
    19522100#: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:28
    19532101msgid "This's not a WSL user!"
    1954 msgstr ""
    1955 
    1956 #: wordpress-social-login/includes/admin/components/users/wsl.components.users.profiles.php:36
    1957 msgid "Provider user ID"
    19582102msgstr ""
    19592103
     
    20282172msgstr ""
    20292173
    2030 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:131
     2174#: wordpress-social-login/includes/admin/wsl.admin.ui.php:136
    20312175msgid ""
    20322176"<b>Note:</b> WSL has detected that you are using a caching plugin. If the "
     
    20352179msgstr ""
    20362180
    2037 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:143
     2181#: wordpress-social-login/includes/admin/wsl.admin.ui.php:148
    20382182msgid ""
    20392183"<b>Warning:</b> You are now running WordPress Social Login with DEVELOPMENT "
     
    20422186msgstr ""
    20432187
    2044 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:146
    2045 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:161
     2188#: wordpress-social-login/includes/admin/wsl.admin.ui.php:151
     2189#: wordpress-social-login/includes/admin/wsl.admin.ui.php:166
    20462190msgid "Change this mode"
    20472191msgstr ""
    20482192
    2049 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:147
     2193#: wordpress-social-login/includes/admin/wsl.admin.ui.php:152
    20502194msgid "Read about the development mode"
    20512195msgstr ""
    20522196
    2053 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:158
     2197#: wordpress-social-login/includes/admin/wsl.admin.ui.php:163
    20542198msgid ""
    20552199"<b>Note:</b> You are now running WordPress Social Login with DEBUG MODE "
     
    20582202msgstr ""
    20592203
    2060 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:163
     2204#: wordpress-social-login/includes/admin/wsl.admin.ui.php:168
    20612205msgid "Read about the debug mode"
    20622206msgstr ""
    20632207
    2064 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:171
     2208#: wordpress-social-login/includes/admin/wsl.admin.ui.php:184
    20652209msgid "WordPress Social Login"
    20662210msgstr ""
    20672211
    2068 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:242
     2212#: wordpress-social-login/includes/admin/wsl.admin.ui.php:257
    20692213msgid "Oops! We ran into an issue."
    20702214msgstr ""
    20712215
    2072 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:247
     2216#: wordpress-social-login/includes/admin/wsl.admin.ui.php:262
    20732217msgid ""
    20742218"Unknown or Disabled <b>Component</b>! Check the list of enabled components "
     
    20762220msgstr ""
    20772221
    2078 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:277
     2222#: wordpress-social-login/includes/admin/wsl.admin.ui.php:293
    20792223msgid "WordPress Social Login - FAIL!"
    20802224msgstr ""
    20812225
    2082 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:282
     2226#: wordpress-social-login/includes/admin/wsl.admin.ui.php:298
    20832227msgid ""
    20842228"Despite the efforts, put into <b>WordPress Social Login</b> in terms of "
    2085 "reliability, portability, and maintenance by this plugin <a href=\"http://"
     2229"reliability, portability, and maintenance by the plugin <a href=\"http://"
    20862230"profiles.wordpress.org/miled/\" target=\"_blank\">author</a> and <a href="
    20872231"\"https://github.com/hybridauth/WordPress-Social-Login/graphs/contributors\" "
     
    20892233msgstr ""
    20902234
    2091 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:283
     2235#: wordpress-social-login/includes/admin/wsl.admin.ui.php:299
    20922236msgid "Your server failed the requirements check for this plugin"
    20932237msgstr ""
    20942238
    2095 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:287
     2239#: wordpress-social-login/includes/admin/wsl.admin.ui.php:303
    20962240msgid ""
    20972241"These requirements are usually met by default by most \"modern\" web hosting "
     
    21002244msgstr ""
    21012245
    2102 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:291
     2246#: wordpress-social-login/includes/admin/wsl.admin.ui.php:307
    21032247msgid "The minimum server requirements are"
    21042248msgstr ""
    21052249
    2106 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:295
     2250#: wordpress-social-login/includes/admin/wsl.admin.ui.php:311
    21072251msgid "PHP >= 5.2.0 installed"
    21082252msgstr ""
    21092253
    2110 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:296
     2254#: wordpress-social-login/includes/admin/wsl.admin.ui.php:312
    21112255msgid "WSL Endpoint URLs reachable"
    21122256msgstr ""
    21132257
    2114 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:297
     2258#: wordpress-social-login/includes/admin/wsl.admin.ui.php:313
    21152259msgid "PHP's default SESSION handling"
    21162260msgstr ""
    21172261
    2118 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:298
     2262#: wordpress-social-login/includes/admin/wsl.admin.ui.php:314
    21192263msgid "PHP/CURL/SSL Extension enabled"
    21202264msgstr ""
    21212265
    2122 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:299
     2266#: wordpress-social-login/includes/admin/wsl.admin.ui.php:315
    21232267msgid "PHP/JSON Extension enabled"
    21242268msgstr ""
    21252269
    2126 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:300
     2270#: wordpress-social-login/includes/admin/wsl.admin.ui.php:316
    21272271msgid "PHP/REGISTER_GLOBALS Off"
    21282272msgstr ""
    21292273
    2130 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:301
     2274#: wordpress-social-login/includes/admin/wsl.admin.ui.php:317
    21312275msgid "jQuery installed on WordPress backoffice"
    21322276msgstr ""
    21332277
    2134 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:345
     2278#: wordpress-social-login/includes/admin/wsl.admin.ui.php:368
    21352279msgid "Dismiss"
    21362280msgstr ""
    21372281
    2138 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:351
     2282#: wordpress-social-login/includes/admin/wsl.admin.ui.php:374
    21392283msgid "Welcome!"
    21402284msgstr ""
    21412285
    2142 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:353
     2286#: wordpress-social-login/includes/admin/wsl.admin.ui.php:376
    21432287msgid ""
    21442288"If you are still new to WordPress Social Login, we have provided a few "
     
    21462290msgstr ""
    21472291
    2148 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:360
     2292#: wordpress-social-login/includes/admin/wsl.admin.ui.php:383
    21492293msgid "Get Started"
    21502294msgstr ""
    21512295
    2152 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:363
     2296#: wordpress-social-login/includes/admin/wsl.admin.ui.php:386
    21532297msgid ""
    21542298"<a href=\"http://miled.github.io/wordpress-social-login/overview.html\" "
     
    21562300msgstr ""
    21572301
    2158 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:364
     2302#: wordpress-social-login/includes/admin/wsl.admin.ui.php:387
    21592303msgid ""
    21602304"<a href=\"http://miled.github.io/wordpress-social-login/networks.html\" "
     
    21622306msgstr ""
    21632307
    2164 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:365
     2308#: wordpress-social-login/includes/admin/wsl.admin.ui.php:388
    21652309msgid ""
    21662310"<a href=\"http://miled.github.io/wordpress-social-login/widget.html\" target="
     
    21682312msgstr ""
    21692313
    2170 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:366
     2314#: wordpress-social-login/includes/admin/wsl.admin.ui.php:389
    21712315msgid ""
    21722316"<a href=\"http://miled.github.io/wordpress-social-login/userdata.html\" "
     
    21742318msgstr ""
    21752319
    2176 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:372
     2320#: wordpress-social-login/includes/admin/wsl.admin.ui.php:395
    21772321#, php-format
    21782322msgid "What's new on WSL %s"
    21792323msgstr ""
    21802324
    2181 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:376
     2325#: wordpress-social-login/includes/admin/wsl.admin.ui.php:399
    21822326msgid ""
    21832327"WSL now support authentications through <a href=\"https://dribbble.com\" "
     
    21852329msgstr ""
    21862330
    2187 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:377
     2331#: wordpress-social-login/includes/admin/wsl.admin.ui.php:400
    21882332msgid ""
    21892333"<a href=\"http://store.steampowered.com/\" target=\"_blank\">Steam</a> "
     
    21912335msgstr ""
    21922336
    2193 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:378
     2337#: wordpress-social-login/includes/admin/wsl.admin.ui.php:401
    21942338msgid ""
    21952339"WSL admin interfaces have been reworked and can be now extended with hooks"
    21962340msgstr ""
    21972341
    2198 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:379
     2342#: wordpress-social-login/includes/admin/wsl.admin.ui.php:402
    21992343msgid "Profile completion form has received a visual update"
    22002344msgstr ""
    22012345
    2202 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:380
     2346#: wordpress-social-login/includes/admin/wsl.admin.ui.php:403
    22032347msgid "Bouncer Membership level can be now set to any user role"
    22042348msgstr ""
    22052349
    2206 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:381
     2350#: wordpress-social-login/includes/admin/wsl.admin.ui.php:404
    22072351msgid ""
    22082352"WSL now provide an <a href=\"http://miled.github.io/wordpress-social-login/"
     
    22112355msgstr ""
    22122356
    2213 #: wordpress-social-login/includes/admin/wsl.admin.ui.php:411
     2357#: wordpress-social-login/includes/admin/wsl.admin.ui.php:434
    22142358msgid "Help us translate WordPress Social Login into your language"
    22152359msgstr ""
    22162360
    2217 #: wordpress-social-login/includes/services/wsl.authentication.php:96
     2361#: wordpress-social-login/includes/services/wsl.authentication.php:99
    22182362#, php-format
    22192363msgid ""
     
    22212365msgstr ""
    22222366
    2223 #: wordpress-social-login/includes/services/wsl.authentication.php:102
     2367#: wordpress-social-login/includes/services/wsl.authentication.php:105
     2368#, php-format
     2369msgid ""
     2370"You have to be logged in to be able to link your existing account. Do you "
     2371"want to <a href='%s'>login</a>?"
     2372msgstr ""
     2373
     2374#: wordpress-social-login/includes/services/wsl.authentication.php:111
     2375msgid "You do not have sufficient permissions to access this page."
     2376msgstr ""
     2377
     2378#: wordpress-social-login/includes/services/wsl.authentication.php:117
    22242379msgid "Authentication through social networks is currently disabled."
    22252380msgstr ""
    22262381
    2227 #: wordpress-social-login/includes/services/wsl.authentication.php:148
     2382#: wordpress-social-login/includes/services/wsl.authentication.php:163
    22282383msgid ""
    22292384"The session identifier is missing.<br />Please check WSL <a href=\"http://"
     
    22332388msgstr ""
    22342389
    2235 #: wordpress-social-login/includes/services/wsl.authentication.php:165
     2390#: wordpress-social-login/includes/services/wsl.authentication.php:180
    22362391msgid "Bouncer says this makes no sense."
    22372392msgstr ""
    22382393
    2239 #: wordpress-social-login/includes/services/wsl.authentication.php:176
    2240 #: wordpress-social-login/includes/services/wsl.authentication.php:313
    2241 #: wordpress-social-login/includes/services/wsl.authentication.php:994
     2394#: wordpress-social-login/includes/services/wsl.authentication.php:191
     2395#: wordpress-social-login/includes/services/wsl.authentication.php:283
     2396#: wordpress-social-login/includes/services/wsl.authentication.php:1072
    22422397msgid "Unknown or disabled provider."
    22432398msgstr ""
    22442399
    2245 #: wordpress-social-login/includes/services/wsl.authentication.php:347
    2246 #, php-format
    2247 msgid ""
    2248 "Sorry, we couldn't connect you to <b>%s</b>. <a href=\"%s\">Please try "
    2249 "again</a>."
    2250 msgstr ""
    2251 
    2252 #: wordpress-social-login/includes/services/wsl.authentication.php:508
     2400#: wordpress-social-login/includes/services/wsl.authentication.php:303
     2401#, php-format
     2402msgid "Your <b>%s ID</b> is already linked to another account on this website."
     2403msgstr ""
     2404
     2405#: wordpress-social-login/includes/services/wsl.authentication.php:311
     2406msgid "Sorry, we couldn't link your account."
     2407msgstr ""
     2408
     2409#: wordpress-social-login/includes/services/wsl.authentication.php:316
     2410msgid "Bouncer says no."
     2411msgstr ""
     2412
     2413#: wordpress-social-login/includes/services/wsl.authentication.php:350
     2414#, php-format
     2415msgid "Sorry, we couldn't connect you. <a href=\"%s\">Please try again</a>."
     2416msgstr ""
     2417
     2418#: wordpress-social-login/includes/services/wsl.authentication.php:511
    22532419msgid "Registration is now closed."
    22542420msgstr ""
    22552421
    2256 #: wordpress-social-login/includes/services/wsl.authentication.php:727
     2422#: wordpress-social-login/includes/services/wsl.authentication.php:722
    22572423msgid "An error occurred while creating a new user: "
    22582424msgstr ""
    22592425
    2260 #: wordpress-social-login/includes/services/wsl.authentication.php:730
     2426#: wordpress-social-login/includes/services/wsl.authentication.php:725
    22612427msgid "An error occurred while creating a new user!"
    22622428msgstr ""
    22632429
    2264 #: wordpress-social-login/includes/services/wsl.authentication.php:883
     2430#: wordpress-social-login/includes/services/wsl.authentication.php:963
    22652431#, php-format
    22662432msgid ""
     
    22692435msgstr ""
    22702436
    2271 #: wordpress-social-login/includes/services/wsl.authentication.php:985
     2437#: wordpress-social-login/includes/services/wsl.authentication.php:1063
    22722438msgid "Unspecified error!"
    22732439msgstr ""
    22742440
    2275 #: wordpress-social-login/includes/services/wsl.authentication.php:991
     2441#: wordpress-social-login/includes/services/wsl.authentication.php:1069
    22762442msgid "Unspecified error."
    22772443msgstr ""
    22782444
    2279 #: wordpress-social-login/includes/services/wsl.authentication.php:992
     2445#: wordpress-social-login/includes/services/wsl.authentication.php:1070
    22802446msgid "WordPress Social Login is not properly configured."
    22812447msgstr ""
    22822448
    2283 #: wordpress-social-login/includes/services/wsl.authentication.php:995
     2449#: wordpress-social-login/includes/services/wsl.authentication.php:1073
    22842450#, php-format
    22852451msgid ""
     
    22882454msgstr ""
    22892455
    2290 #: wordpress-social-login/includes/services/wsl.authentication.php:996
     2456#: wordpress-social-login/includes/services/wsl.authentication.php:1074
    22912457#, php-format
    22922458msgid ""
     
    22972463msgstr ""
    22982464
    2299 #: wordpress-social-login/includes/services/wsl.authentication.php:996
     2465#: wordpress-social-login/includes/services/wsl.authentication.php:1074
    23002466msgid ""
    23012467"<br />Instructions for use can be found in the <a href=\"http://miled.github."
     
    23032469msgstr ""
    23042470
    2305 #: wordpress-social-login/includes/services/wsl.authentication.php:998
     2471#: wordpress-social-login/includes/services/wsl.authentication.php:1076
    23062472#, php-format
    23072473msgid ""
     
    23102476msgstr ""
    23112477
    2312 #: wordpress-social-login/includes/services/wsl.authentication.php:999
     2478#: wordpress-social-login/includes/services/wsl.authentication.php:1077
    23132479#, php-format
    23142480msgid ""
     
    23172483msgstr ""
    23182484
    2319 #: wordpress-social-login/includes/services/wsl.authentication.php:1000
     2485#: wordpress-social-login/includes/services/wsl.authentication.php:1078
    23202486msgid "You're not connected to the provider."
    23212487msgstr ""
    23222488
    2323 #: wordpress-social-login/includes/services/wsl.authentication.php:1001
     2489#: wordpress-social-login/includes/services/wsl.authentication.php:1079
    23242490msgid "Provider does not support this feature."
    23252491msgstr ""
     
    23552521msgstr ""
    23562522
    2357 #: wordpress-social-login/includes/settings/wsl.compatibilities.php:49
     2523#: wordpress-social-login/includes/settings/wsl.compatibilities.php:47
    23582524msgid "Connect with:"
    23592525msgstr ""
    23602526
    2361 #: wordpress-social-login/includes/settings/wsl.compatibilities.php:120
    2362 #: wordpress-social-login/includes/settings/wsl.compatibilities.php:130
    2363 #: wordpress-social-login/includes/settings/wsl.compatibilities.php:140
     2527#: wordpress-social-login/includes/settings/wsl.compatibilities.php:118
     2528#: wordpress-social-login/includes/settings/wsl.compatibilities.php:128
     2529#: wordpress-social-login/includes/settings/wsl.compatibilities.php:138
    23642530msgid ""
    23652531"<strong>This website is restricted to invited readers only.</strong><p>It "
     
    24292595
    24302596#: wordpress-social-login/includes/settings/wsl.initialization.php:67
     2597msgid "Help"
     2598msgstr ""
     2599
     2600#: wordpress-social-login/includes/settings/wsl.initialization.php:68
     2601msgid "Tools"
     2602msgstr ""
     2603
     2604#: wordpress-social-login/includes/settings/wsl.initialization.php:69
    24312605msgid "Log viewer"
    24322606msgstr ""
    24332607
    2434 #: wordpress-social-login/includes/settings/wsl.initialization.php:68
    2435 msgid "?"
    2436 msgstr ""
    2437 
    2438 #: wordpress-social-login/includes/settings/wsl.initialization.php:69
    2439 msgid "Tools"
    2440 msgstr ""
    2441 
    24422608#: wordpress-social-login/includes/settings/wsl.initialization.php:70
     2609msgid "Auth test"
     2610msgstr ""
     2611
     2612#: wordpress-social-login/includes/settings/wsl.initialization.php:71
    24432613msgid "Components"
    24442614msgstr ""
     
    25282698msgstr ""
    25292699
    2530 #: wordpress-social-login/includes/widgets/wsl.auth.widget.php:151
    2531 #: wordpress-social-login/includes/widgets/wsl.auth.widget.php:152
     2700#: wordpress-social-login/includes/widgets/wsl.auth.widgets.php:226
     2701#: wordpress-social-login/includes/widgets/wsl.auth.widgets.php:227
    25322702#, php-format
    25332703msgid "Connect with %s"
    25342704msgstr ""
    25352705
    2536 #: wordpress-social-login/includes/widgets/wsl.auth.widget.php:167
     2706#: wordpress-social-login/includes/widgets/wsl.auth.widgets.php:242
    25372707msgid ""
    25382708"<strong>WordPress Social Login is not configured yet</strong>.<br />Please "
    25392709"navigate to <strong>Settings &gt; WP Social Login</strong> to configure this "
    2540 "plugin.<br />For more information, refer to the <a href=\"http://miled."
    2541 "github.io/wordpress-social-login\">online user guide</a>."
     2710"plugin.<br />For more information, refer to the <a rel=\"nofollow\" href="
     2711"\"http://miled.github.io/wordpress-social-login\">online user guide</a>."
    25422712msgstr ""
    25432713
     
    25692739msgstr ""
    25702740
    2571 #: wordpress-social-login/includes/widgets/wsl.error.pages.php:150
    2572 #: wordpress-social-login/includes/widgets/wsl.error.pages.php:230
     2741#: wordpress-social-login/includes/widgets/wsl.error.pages.php:144
     2742#: wordpress-social-login/includes/widgets/wsl.error.pages.php:225
    25732743msgid "Oops! We ran into an issue"
    25742744msgstr ""
    25752745
    2576 #: wordpress-social-login/includes/widgets/wsl.error.pages.php:292
     2746#: wordpress-social-login/includes/widgets/wsl.error.pages.php:248
     2747msgid "Details"
     2748msgstr ""
     2749
     2750#: wordpress-social-login/includes/widgets/wsl.error.pages.php:249
     2751msgid "Back to home"
     2752msgstr ""
     2753
     2754#: wordpress-social-login/includes/widgets/wsl.error.pages.php:298
    25772755msgid ""
    25782756"<strong>Note:</strong> This debugging area can be disabled from the plugin "
     
    25942772msgstr ""
    25952773
    2596 #: wordpress-social-login/wp-social-login.php:104
     2774#: wordpress-social-login/wp-social-login.php:105
    25972775msgid ""
    25982776"This plugin requires WordPress 3.0 or newer. Please update your WordPress "
     
    26002778msgstr ""
    26012779
    2602 #: wordpress-social-login/wp-social-login.php:126
     2780#: wordpress-social-login/wp-social-login.php:127
    26032781msgid "Settings"
    26042782msgstr ""
    26052783
    2606 #: wordpress-social-login/wp-social-login.php:152
     2784#: wordpress-social-login/wp-social-login.php:153
    26072785msgid "Manual"
    26082786msgstr ""
    26092787
    2610 #: wordpress-social-login/wp-social-login.php:153
     2788#: wordpress-social-login/wp-social-login.php:154
    26112789msgid "FAQ"
    26122790msgstr ""
    26132791
    2614 #: wordpress-social-login/wp-social-login.php:154
     2792#: wordpress-social-login/wp-social-login.php:155
    26152793msgid "Suppot"
    26162794msgstr ""
    26172795
    2618 #: wordpress-social-login/wp-social-login.php:155
     2796#: wordpress-social-login/wp-social-login.php:156
    26192797msgid "Fork me on Github"
    26202798msgstr ""
  • wordpress-social-login/trunk/readme.md

    r1012302 r1015041  
    4040* Bouncer Membership level can be now set to any user role.
    4141* WSL now provide an easier access to social networks apis.
     42* WSL now trigger WordPress do_login action hooks whenever a user connect.
    4243* Authentication display now fall back to In Page when WSL is used on a mobile device.
    4344* WSL Diagnostics has been reworked and can check the minimum system requirements and for few common issues.
    4445* Added new tool "Repair WSL tables".
    4546* Added Debug mode.
     47* Added Authentication Playground.
    4648* Added new hooks in the authentication widget and auth process.
     49* Function wsl_render_login_form() renamed to wsl_render_auth_widget()
     50* Css file style.css renamed to widget.css
    4751* Depreciated hooks from versions prior 2.2.2 has been removed.
    4852* wsl_user_custom_avatar and wsl_bp_user_custom_avatar are now pluggable and can be redefined.
     
    5660- [ ] Accounts linking/mapping
    5761- [ ] User moderation will be fully implemented and no longer needs TML.
     62- [ ] Widget shortcode will support arguments
     63- [ ] Add usermeat shortcode
    5864- [ ] ..
    5965
     
    6773
    6874#### Screenshots
    69 ![Number6](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-2.png)
     75![screenshot](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-2.png)
    7076===
    71 ![Flat](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-3.png)
     77![screenshot](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-3.png)
    7278===
    73 ![Fontawesome](http://miled.github.io/wordpress-social-login/assets/img/theme_fontawesome.png)
     79![screenshot](http://miled.github.io/wordpress-social-login/assets/img/theme_fontawesome.png)
    7480===
    75 ![Networks](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-4.png)
     81![screenshot](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-4.png)
    7682=
    77 ![Widget](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-5.png)
     83![screenshot](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-5.png)
    7884===
    79 ![Bouncer](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-6.png)
     85![screenshot](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-6.png)
    8086===
    81 ![BuddyPress](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-7.png)
     87![screenshot](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-7.png)
    8288===
    83 ![Components](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-8.png)
     89![screenshot](https://raw.githubusercontent.com/miled/wordpress-social-login/master/screenshot-8.png)
  • wordpress-social-login/trunk/wp-social-login.php

    r1011553 r1015041  
    4040*
    4141*  If you have fixed, improved or translated something in WSL, Please consider contributing back to the project
    42 *  and the WordPress community by submitting a Pull Request at https://github.com/hybridauth/WordPress-Social-Login
     42*  and the WordPress community by submitting a Pull Request at https://github.com/miled/wordpress-social-login
     43*
     44*  If you are here just looking for the hooks, then refer to the online Developer API
     45*  http://miled.github.io/wordpress-social-login/documentation.html
    4346*
    4447*  If you want to translate this plugin into your language (or to improve the current translation), see
    45 wordpress-social-login/languages/readme.txt
     48languages/readme.txt
    4649*
    4750*  Peace.
     
    6568* This file might be used to :
    6669*     1. Redefine WSL constants, so you can move WSL folder around.
    67 *     2. Define wsl_load_plugin_textdomain(), in case you want to use a custom translation.
    68 *     3. Customize wsl_render_notice_page() and wsl_render_error_page().
    69 *     4. Customize wsl_render_redirect_to_provider_loading_screen() and wsl_render_return_from_provider_loading_screen().
     70*     2. Define WSL Pluggable PHP Functions. See http://miled.github.io/wordpress-social-login/developer-api-functions.html
    7071*     5. Implement your WSL hooks.
    7172*/
     
    150151    {
    151152        $wsl_links = array(
    152             '<a href="http://miled.github.io/wordpress-social-login/">'             . __( "Manual" )            . '</a>',
     153            '<a href="http://miled.github.io/wordpress-social-login/">'             . __( "Docs" )              . '</a>',
    153154            '<a href="http://miled.github.io/wordpress-social-login/faq.html">'     . __( "FAQ" )               . '</a>',
    154155            '<a href="http://miled.github.io/wordpress-social-login/support.html">' . __( "Suppot" )            . '</a>',
     
    180181
    181182add_action( 'plugins_loaded', 'wsl_load_plugin_textdomain' );
     183
     184// --------------------------------------------------------------------
     185
     186/**
     187* _e() wrapper
     188*/
     189function _wsl_e( $text, $domain )
     190{
     191    echo __( $text, $domain );
     192}
     193
     194// --------------------------------------------------------------------
     195
     196/**
     197* __() wrapper
     198*/
     199function _wsl__( $text, $domain )
     200{
     201    return __( $text, $domain );
     202}
    182203
    183204// --------------------------------------------------------------------
     
    200221
    201222# WSL Widget and GUIs generators
    202 require_once( WORDPRESS_SOCIAL_LOGIN_ABS_PATH . '/includes/widgets/wsl.auth.widget.php'           ); // Authentication widget generators (where WSL widget/icons are displayed)
     223require_once( WORDPRESS_SOCIAL_LOGIN_ABS_PATH . '/includes/widgets/wsl.auth.widgets.php'          ); // Authentication widget generators (where WSL widget/icons are displayed)
    203224require_once( WORDPRESS_SOCIAL_LOGIN_ABS_PATH . '/includes/widgets/wsl.complete.registration.php' ); // Force users to complete their profile after they register.
    204225require_once( WORDPRESS_SOCIAL_LOGIN_ABS_PATH . '/includes/widgets/wsl.account.linking.php'       ); // Planned for WSL 2.3.
Note: See TracChangeset for help on using the changeset viewer.