Files
globelus.pl/plugins/special-actions-middle.php
2024-11-11 15:28:20 +01:00

157 lines
5.7 KiB
PHP

<?php
require_once 'libraries/gpConfig.php';
require_once 'libraries/fbConfig.php';
if ( \S::get( 'a' ) == 'contact_form_send' )
{
$response = [ 'status' => 'error' ];
if ( ( \S::get( 'email' ) and \S::get( 'name' ) and \S::get( 'text' ) ) )
{
if ( \S::send_email(
$settings['contact_email'],
\S::get( 'subject' ),
'<p>Nadawca: ' . \S::get( 'name' ) . '</p>'
. '<p>Nr telefonu: ' . \S::get( 'phone' ) . '</p>'
. '<p>Email: ' . \S::get( 'email' ) . '</p>'
. '<p>' . \S::get( 'text' ) . '</p>',
$settings['contact_email']
) )
$response = [ 'status' => 'ok' ];
}
echo json_encode( $response );
exit;
}
/* logowanie google */
if ( isset( $_GET['code'] ) and $_GET['scope'] and !$_SESSION['token'] )
{
$gClient -> authenticate( $_GET['code'] );
$_SESSION['token'] = $gClient -> getAccessToken();
}
if ( isset( $_SESSION['token'] ) )
$gClient -> setAccessToken( $_SESSION['token'] );
if ( $gClient -> getAccessToken() )
{
$gpUserProfile = $google_oauthV2 -> userinfo -> get();
parse_str( $_GET['state'] );
if ( $gpUserProfile['id'] )
{
if ( !$mdb -> count( 'globelus_users', 'id', [ 'AND' => [ 'oauth_uid' => $gpUserProfile['id'], 'oauth_provider' => 'google' ] ] ) )
{
if ( $g_register )
{
if ( $mdb -> count( 'globelus_users', 'id', [ 'email' => $gpUserProfile['email'] ] ) )
{
unset( $_SESSION['token'] );
\S::alert( 'Podany adres email jest już zajęty.' );
}
else
{
/* dodawanie użytkownika */
$hash = md5( time() . $gpUserProfile['email'] );
$register_date = date('Y-m-d H:i:s');
$mdb -> insert( 'globelus_users', [
'email' => $gpUserProfile['email'],
'hash' => $hash,
'type' => (int)$g_type,
'user_agremment_profile' => 1,
'user_agremment_marketing' => 1,
'register_date' => $register_date,
'active_to' => date( 'Y-m-d', strtotime( '+90 days', time() ) ),
'oauth_uid' => $gpUserProfile['id'],
'oauth_provider' => 'google'
] );
\front\factory\GlobelusUser::signin( $gpUserProfile['email'], null, $gpUserProfile['id'], 'google' );
}
}
else
{
unset( $_SESSION['token'] );
\S::alert( $lang['logowanie-blad-brak-konta'] );
}
}
else
\front\factory\GlobelusUser::signin( $gpUserProfile['email'], null, $gpUserProfile['id'], 'google' );
$g_user = \S::get_session( 'g_user' );
if ( $g_user and !$g_user['profile_completed'] and $g_user['type'] )
\S::alert( 'Nie posiadasz uzupełnionego profilu.' );
}
}
/* logowanie Facebook */
if ( $accessToken and !isset( $g_type ) )
{
if ( isset( $_SESSION['facebook_access_token'] ) )
$fb -> setDefaultAccessToken( $_SESSION['facebook_access_token'] );
else
{
$_SESSION['facebook_access_token'] = (string) $accessToken;
$oAuth2Client = $fb -> getOAuth2Client();
$longLivedAccessToken = $oAuth2Client -> getLongLivedAccessToken( $_SESSION['facebook_access_token'] );
$_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;
$fb -> setDefaultAccessToken( $_SESSION['facebook_access_token'] );
$profileRequest = $fb -> get( '/me?fields=name,first_name,last_name,email,link,gender,locale,cover,picture' );
$fbUserProfile = $profileRequest -> getGraphNode() -> asArray();
if ( $fbUserProfile['id'] )
{
if ( !$mdb -> count( 'globelus_users', 'id', [ 'AND' => [ 'oauth_uid' => $fbUserProfile['id'], 'oauth_provider' => 'facebook' ] ] ) )
{
if ( \S::get( 'f_register' ) )
{
if ( $mdb -> count( 'globelus_users', 'id', [ 'email' => $fbUserProfile['email'] ] ) )
{
unset( $_SESSION['facebook_access_token'] );
\S::alert( 'Podany adres email jest już zajęty.' );
}
else
{
/* dodawanie użytkownika */
$hash = md5( time() . $fbUserProfile['email'] );
$register_date = date('Y-m-d H:i:s');
$mdb -> insert( 'globelus_users', [
'email' => $fbUserProfile['email'],
'hash' => $hash,
'type' => (int)\S::get( 'f_type' ),
'user_agremment_profile' => 1,
'user_agremment_marketing' => 1,
'register_date' => $register_date,
'active_to' => date( 'Y-m-d', strtotime( '+90 days', time() ) ),
'oauth_uid' => $fbUserProfile['id'],
'oauth_provider' => 'facebook'
] );
\front\factory\GlobelusUser::signin( $fbUserProfile['email'], null, $fbUserProfile['id'], 'facebook' );
}
}
else
{
unset( $_SESSION['facebook_access_token'] );
\S::alert( $lang['logowanie-blad-brak-konta'] );
}
}
else
\front\factory\GlobelusUser::signin( $fbUserProfile['email'], null, $fbUserProfile['id'], 'facebook' );
$g_user = \S::get_session( 'g_user' );
if ( $g_user and !$g_user['profile_completed'] and $g_user['type'] )
\S::alert( 'Nie posiadasz uzupełnionego profilu.' );
}
}
}
if ( isset( $_GET['code'] ) )
{
header( 'Location: /' );
exit;
}