mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Merge branch '1.4.x' of https://github.com/appwrite/appwrite into cl-1.4.x
This commit is contained in:
@@ -20,8 +20,9 @@ class Linkedin extends OAuth2
|
||||
* @var array
|
||||
*/
|
||||
protected array $scopes = [
|
||||
'r_liteprofile',
|
||||
'r_emailaddress',
|
||||
'openid',
|
||||
'profile',
|
||||
'email'
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -117,8 +118,7 @@ class Linkedin extends OAuth2
|
||||
public function getUserID(string $accessToken): string
|
||||
{
|
||||
$user = $this->getUser($accessToken);
|
||||
|
||||
return $user['id'] ?? '';
|
||||
return $user['sub'] ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -128,9 +128,8 @@ class Linkedin extends OAuth2
|
||||
*/
|
||||
public function getUserEmail(string $accessToken): string
|
||||
{
|
||||
$email = \json_decode($this->request('GET', 'https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))', ['Authorization: Bearer ' . \urlencode($accessToken)]), true);
|
||||
|
||||
return $email['elements'][0]['handle~']['emailAddress'] ?? '';
|
||||
$user = $this->getUser($accessToken);
|
||||
return $user['email'] ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -144,9 +143,8 @@ class Linkedin extends OAuth2
|
||||
*/
|
||||
public function isEmailVerified(string $accessToken): bool
|
||||
{
|
||||
$email = $this->getUserEmail($accessToken);
|
||||
|
||||
return !empty($email);
|
||||
$user = $this->getUser($accessToken);
|
||||
return $user['email_verified'] ?? false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -159,12 +157,16 @@ class Linkedin extends OAuth2
|
||||
$user = $this->getUser($accessToken);
|
||||
$name = '';
|
||||
|
||||
if (isset($user['localizedFirstName'])) {
|
||||
$name = $user['localizedFirstName'];
|
||||
if (isset($user['name'])) {
|
||||
return $user['name'];
|
||||
}
|
||||
|
||||
if (isset($user['localizedLastName'])) {
|
||||
$name = (empty($name)) ? $user['localizedLastName'] : $name . ' ' . $user['localizedLastName'];
|
||||
if (isset($user['given_name'])) {
|
||||
$name = $user['given_name'];
|
||||
}
|
||||
|
||||
if (isset($user['family_name'])) {
|
||||
$name = (empty($name)) ? $user['family_name'] : $name . ' ' . $user['family_name'];
|
||||
}
|
||||
|
||||
return $name;
|
||||
@@ -178,7 +180,7 @@ class Linkedin extends OAuth2
|
||||
protected function getUser(string $accessToken)
|
||||
{
|
||||
if (empty($this->user)) {
|
||||
$this->user = \json_decode($this->request('GET', 'https://api.linkedin.com/v2/me', ['Authorization: Bearer ' . \urlencode($accessToken)]), true);
|
||||
$this->user = \json_decode($this->request('GET', 'https://api.linkedin.com/v2/userinfo', ['Authorization: Bearer ' . \urlencode($accessToken)]), true);
|
||||
}
|
||||
|
||||
return $this->user;
|
||||
|
||||
@@ -68,6 +68,7 @@ abstract class Migration
|
||||
'1.4.1' => 'V19',
|
||||
'1.4.2' => 'V19',
|
||||
'1.4.3' => 'V19',
|
||||
'1.4.4' => 'V19',
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@@ -202,7 +202,9 @@ class Executor
|
||||
'runtimeEntrypoint' => $runtimeEntrypoint,
|
||||
];
|
||||
|
||||
$timeout = (int) App::getEnv('_APP_FUNCTIONS_BUILD_TIMEOUT', 900);
|
||||
// Safety timeout. Executor has timeout, and open runtime has soft timeout.
|
||||
// This one shouldn't really happen, but prevents from unexpected networking behaviours.
|
||||
$timeout = $timeout + 15;
|
||||
|
||||
$response = $this->call(self::METHOD_POST, $route, [ 'x-opr-runtime-id' => $runtimeId ], $params, true, $timeout);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user