%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/user/authclient/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/user/authclient/LinkedIn.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2017 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\user\authclient;
use yii\authclient\OAuth2;
use yii\web\HttpException;
use Yii;
class LinkedIn extends \yii\authclient\clients\LinkedIn
{
/**
* @inheritdoc
*/
protected function defaultViewOptions()
{
return [
'popupWidth' => 860,
'popupHeight' => 480,
'cssIcon' => 'fa fa-linkedin',
'buttonBackgroundColor' => '#395697',
];
}
/**
* @inheritdoc
*/
public $authUrl = 'https://www.linkedin.com/oauth/v2/authorization';
/**
* @inheritdoc
*/
public $tokenUrl = 'https://www.linkedin.com/oauth/v2/accessToken';
/**
* @inheritdoc
*/
public $apiBaseUrl = 'https://api.linkedin.com/v2';
/**
* @var array list of attribute names, which should be requested from API to initialize user attributes.
*/
public $attributeNames = [
'id',
'firstName',
'lastName',
];
/**
* @inheritdoc
*/
public function init()
{
parent::init();
if ($this->scope === null) {
$this->scope = implode(' ', [
'r_liteprofile',
'r_emailaddress',
]);
}
}
/**
* @inheritdoc
*/
protected function defaultNormalizeUserAttributeMap()
{
return [
'first_name' => function ($attributes) {
return array_values($attributes['firstName']['localized'])[0];
},
'last_name' => function ($attributes) {
return array_values($attributes['lastName']['localized'])[0];
},
];
}
/**
* @inheritdoc
*/
protected function initUserAttributes()
{
$attributes = $this->api('me?projection=(' . implode(',', $this->attributeNames) . ')', 'GET');
$scopes = explode(' ', $this->scope);
if (in_array('r_emailaddress', $scopes, true)) {
$emails = $this->api('emailAddress?q=members&projection=(elements*(handle~))', 'GET');
if (isset($emails['elements'][0]['handle~']['emailAddress'])) {
$attributes['email'] = $emails['elements'][0]['handle~']['emailAddress'];
}
}
return $attributes;
}
/**
* @inheritdoc
*/
public function applyAccessTokenToRequest($request, $accessToken)
{
$data = $request->getData();
$data['oauth2_access_token'] = $accessToken->getToken();
$request->setData($data);
}
/**
* @inheritdoc
*/
protected function defaultName()
{
return 'linkedin';
}
/**
* @inheritdoc
*/
protected function defaultTitle()
{
return 'LinkedIn';
}
}