0byt3m1n1
Path:
/
home
/
mgatv524
/
atvcms.com.br
/
cacu
/
lib
/
Helper
/
[
Home
]
File: McaasGrant.php
<?php /* * Spring Signage Ltd - http://www.springsignage.com * Copyright (C) 2016 Spring Signage Ltd * (McaasGrant.php) */ namespace Xibo\Helper; use League\OAuth2\Server\Entity\AccessTokenEntity; use League\OAuth2\Server\Entity\ClientEntity; use League\OAuth2\Server\Entity\SessionEntity; use League\OAuth2\Server\Exception\InvalidClientException; use League\OAuth2\Server\Grant\AbstractGrant; use League\OAuth2\Server\Util\SecureKey; /** * Class McaasGrant * @package Xibo\Helper */ class McaasGrant extends AbstractGrant { /** * Grant identifier * * @var string */ protected $identifier = 'mcaas'; /** * Response type * * @var string */ protected $responseType = null; /** * AuthServer instance * * @var \League\OAuth2\Server\AuthorizationServer */ protected $server = null; /** * Access token expires in override * * @var int */ protected $accessTokenTTL = null; /** * @var ClientEntity */ protected $client; /** * Set Client * @param string $clientId * @param string $clientSecret * @return self * @throws InvalidClientException */ public function setClient($clientId, $clientSecret) { $this->client = $this->server->getClientStorage()->get( $clientId, $clientSecret, null, $this->getIdentifier() ); if (($this->client instanceof ClientEntity) === false) { throw new InvalidClientException(); } return $this; } /** * Complete the client credentials grant * * @return string * * @throws */ public function completeFlow() { // Validate any scopes that are in the request (should always return default) $scopes = $this->validateScopes('', $this->client); // Create a new session $session = new SessionEntity($this->server); $session->setOwner('client', $this->client->getId()); $session->associateClient($this->client); // Generate an access token $accessToken = new AccessTokenEntity($this->server); $accessToken->setId(SecureKey::generate()); $accessToken->setExpireTime($this->getAccessTokenTTL() + time()); // Associate scopes with the session and access token foreach ($scopes as $scope) { $session->associateScope($scope); } foreach ($session->getScopes() as $scope) { $accessToken->associateScope($scope); } // Save everything $session->save(); $accessToken->setSession($session); $accessToken->save(); return $accessToken->getId(); } }