Update website

This commit is contained in:
Guilhem Lavaux 2024-11-19 08:02:04 +01:00
parent 4413528994
commit 1d90fbf296
6865 changed files with 1091082 additions and 0 deletions

View file

@ -0,0 +1,119 @@
<?php namespace Stevenmaguire\OAuth2\Client\Provider;
use League\OAuth2\Client\Provider\AbstractProvider;
use League\OAuth2\Client\Provider\Exception\IdentityProviderException;
use League\OAuth2\Client\Token\AccessToken;
use League\OAuth2\Client\Tool\ArrayAccessorTrait;
use League\OAuth2\Client\Tool\BearerAuthorizationTrait;
use Psr\Http\Message\ResponseInterface;
class Bitbucket extends AbstractProvider
{
use ArrayAccessorTrait,
BearerAuthorizationTrait;
/**
* Get authorization url to begin OAuth flow
*
* @return string
*/
public function getBaseAuthorizationUrl()
{
return 'https://bitbucket.org/site/oauth2/authorize';
}
/**
* Get access token url to retrieve token
*
* @return string
*/
public function getBaseAccessTokenUrl(array $params)
{
return 'https://bitbucket.org/site/oauth2/access_token';
}
/**
* Get provider url to fetch user details
*
* @param AccessToken $token
*
* @return string
*/
public function getResourceOwnerDetailsUrl(AccessToken $token)
{
return 'https://api.bitbucket.org/2.0/user';
}
/**
* Get the default scopes used by this provider.
*
* This should not be a complete list of all scopes, but the minimum
* required for the provider user interface!
*
* @return array
*/
protected function getDefaultScopes()
{
return [];
}
/**
* Returns the string that should be used to separate scopes when building
* the URL for requesting an access token.
*
* @return string Scope separator, defaults to ' '
*/
protected function getScopeSeparator()
{
return ' ';
}
/**
* Check a provider response for errors.
*
* @throws IdentityProviderException
* @param ResponseInterface $response
* @param string $data Parsed response data
* @return void
*/
protected function checkResponse(ResponseInterface $response, $data)
{
$errors = [
'error_description',
'error.message',
];
array_map(function ($error) use ($response, $data) {
if ($message = $this->getValueByKey($data, $error)) {
throw new IdentityProviderException($message, $response->getStatusCode(), $response);
}
}, $errors);
}
/**
* Generate a user object from a successful user details request.
*
* @param object $response
* @param AccessToken $token
* @return League\OAuth2\Client\Provider\ResourceOwnerInterface
*/
protected function createResourceOwner(array $response, AccessToken $token)
{
return new BitbucketResourceOwner($response);
}
/**
* Returns a prepared request for requesting an access token.
*
* @param array $params Query string parameters
* @return Psr\Http\Message\RequestInterface
*/
protected function getAccessTokenRequest(array $params)
{
$request = parent::getAccessTokenRequest($params);
$uri = $request->getUri()
->withUserInfo($this->clientId, $this->clientSecret);
return $request->withUri($uri);
}
}

View file

@ -0,0 +1,73 @@
<?php namespace Stevenmaguire\OAuth2\Client\Provider;
use League\OAuth2\Client\Provider\ResourceOwnerInterface;
class BitbucketResourceOwner implements ResourceOwnerInterface
{
/**
* Raw response
*
* @var array
*/
protected $response;
/**
* Creates new resource owner.
*
* @param array $response
*/
public function __construct(array $response = array())
{
$this->response = $response;
}
/**
* Get resource owner id
*
* @return string|null
*/
public function getId()
{
return $this->response['uuid'] ?: null;
}
/**
* Get resource owner name
*
* @return string|null
*/
public function getName()
{
return $this->response['display_name'] ?: null;
}
/**
* Get resource owner username
*
* @return string|null
*/
public function getUsername()
{
return $this->response['username'] ?: null;
}
/**
* Get resource owner location
*
* @return string|null
*/
public function getLocation()
{
return $this->response['location'] ?: null;
}
/**
* Return all of the owner details available as an array.
*
* @return array
*/
public function toArray()
{
return $this->response;
}
}