/var/www/vhosts/ihelp.ro/httpdocs/src/Controller/Component
Edit: /var/www/vhosts/ihelp.ro/httpdocs/src/Controller/Component/UserConnectComponent.php (6177B)
registry = $registry;
parent::__construct($registry, $config);
}
public function beforeFilter(EventInterface $event)
{
$this->controller = $this->getController();
$this->request = $this->controller->getRequest();
$this->response = $this->controller->getResponse();
$this->session = $this->request->getSession();
}
public function facebook_connect($redirectUrl = null)
{
//require_once(USERMGMT_PATH . DS . 'vendor' . DS . 'facebook' . DS . 'src' . DS . 'Facebook' . DS . 'autoload.php');
if (empty($redirectUrl)) {
$redirectUrl = Router::url('/', true) . 'login/fb';
}
$fb = new \Facebook\Facebook([
'app_id' => FB_APP_ID,
'app_secret' => FB_SECRET,
'default_graph_version' => 'v5.0'
]);
$helper = $fb->getRedirectLoginHelper();
if (isset($_GET['state'])) {
$helper->getPersistentDataHandler()->set('state', $_GET['state']);
}
$fbData = [];
if (isset($_GET['error'])) {
$fbData['error'] = $_GET['error_description'];
$fbData['line_number'] = __LINE__;
} else if (isset($_GET['code'])) {
try {
$accessToken = $helper->getAccessToken();
if (isset($accessToken)) {
$fb->setDefaultAccessToken($accessToken);
$oAuth2Client = $fb->getOAuth2Client();
if (!$accessToken->isLongLived()) {
// Exchanges a short-lived access token for a long-lived one
try {
$accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
} catch (\Facebook\Exceptions\FacebookSDKException $ex) {
$fbData['error'] = "Exception occured, with message: " . $ex->getMessage();
$fbData['line_number'] = __LINE__;
}
}
if (empty($fbData['error'])) {
$_SESSION['facebook_access_token'] = (string) $accessToken;
try {
$response = $fb->get('/me?fields=id,first_name,last_name,name,email,gender');
} catch (\Facebook\Exceptions\FacebookResponseException $ex) {
$fbData['error'] = "Exception occured, with message: " . $ex->getMessage();
$fbData['line_number'] = __LINE__;
} catch (Facebook\Exceptions\FacebookSDKException $ex) {
$fbData['error'] = "Exception occured, with message: " . $ex->getMessage();
$fbData['line_number'] = __LINE__;
}
if (empty($fbData['error'])) {
$fbData = $response->getDecodedBody() + $this->getDefaultData();
$fbData['picture'] = 'http://graph.facebook.com/' . $fbData['id'] . '/picture?type=large';
$fbData['logoutURL'] = $helper->getLogoutUrl($accessToken, Router::url('/', true));
$fbData['access_token'] = (string) $accessToken;
}
}
}
} catch (\Facebook\Exceptions\FacebookResponseException $ex) {
$fbData['error'] = "Exception occured, code: " . $ex->getCode() . " with message: " . $ex->getMessage();
$fbData['line_number'] = __LINE__;
} catch (\Facebook\Exceptions\FacebookSDKException $ex) {
$fbData['error'] = "Exception occured, with message: " . $ex->getMessage();
$fbData['line_number'] = __LINE__;
}
} else {
$permissions = array_map('trim', explode(',', FB_SCOPE));
$fbData['redirectURL'] = $helper->getLoginUrl($redirectUrl, $permissions) . "&display=popup";
}
return $fbData;
}
public function gmail_connect($redirectUrl = null)
{
if (empty($redirectUrl)) {
$redirectUrl = SITE_URL . 'login/gmail';
}
$client = new \Google_Client();
$client->setClientId(GMAIL_CLIENT_ID);
$client->setClientSecret(GMAIL_CLIENT_SECRET);
$client->setRedirectUri($redirectUrl);
$client->setDeveloperKey(GMAIL_API_KEY);
$client->setScopes(['email', 'profile']);
$client->setPrompt('select_account');
$objOAuthService = new \Google_Service_Oauth2($client);
$gmailData = [];
if (isset($_GET['error'])) {
$gmailData['error'] = __('User denied permission');
$gmailData['line_number'] = __LINE__;
} else if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['access_token'] = $client->getAccessToken();
}
if ($client->getAccessToken()) {
$userData = $objOAuthService->userinfo->get();
$userData = json_decode(json_encode($userData), true);
if (!empty($userData['email']) && !empty($userData['verifiedEmail'])) {
$gmailData = $userData + $this->getDefaultData();
if (!empty($userData['givenName'])) {
$gmailData['first_name'] = $userData['givenName'];
}
if (!empty($userData['familyName'])) {
$gmailData['last_name'] = $userData['familyName'];
}
if (!empty($userData['name'])) {
$gmailData['name'] = $userData['name'];
} else {
$gmailData['name'] = trim($gmailData['first_name'] . ' ' . $gmailData['last_name']);
}
if (empty($gmailData['first_name'])) {
$emailArr = explode('@', $gmailData['email']);
$gmailData['first_name'] = $emailArr[0];
}
if (empty($gmailData['name'])) {
$emailArr = explode('@', $gmailData['email']);
$gmailData['name'] = $emailArr[0];
}
} else {
$gmailData['error'] = __('User data not found');
$gmailData['line_number'] = __LINE__;
}
} else {
if (empty($gmailData['error'])) {
$gmailData['redirectURL'] = $client->createAuthUrl();
}
}
return $gmailData;
}
public function getDefaultData()
{
$default = [];
$default['first_name'] = $default['last_name'] = $default['name'] = $default['picture'] = '';
return $default;
}
}