Updated ClientCredentials to properly include scopes

This commit is contained in:
Alex Bilbie 2013-03-22 12:36:18 +00:00
parent f463eb9db1
commit 85312f6995

View File

@ -106,13 +106,19 @@ class ClientCredentials implements GrantTypeInterface {
if ($scopes[$i] === '') unset($scopes[$i]); // Remove any junk scopes if ($scopes[$i] === '') unset($scopes[$i]); // Remove any junk scopes
} }
if ($this->authServer->scopeParamRequired() === true && count($scopes) === 0) {
throw new Exception\ClientException(sprintf($this->authServer->getExceptionMessage('invalid_request'), 'scope'), 0);
} elseif (count($scopes) === 0 && $this->authServer->getDefaultScope()) {
$scopes = array($this->authServer->getDefaultScope());
}
$authParams['scopes'] = array(); $authParams['scopes'] = array();
foreach ($scopes as $scope) { foreach ($scopes as $scope) {
$scopeDetails = $this->authServer->getStorage('scope')->getScope($scope); $scopeDetails = $this->authServer->getStorage('scope')->getScope($scope);
if ($scopeDetails === false) { if ($scopeDetails === false) {
throw new Exception\ClientException(sprintf(self::$exceptionMessages['invalid_scope'], $scope), 4); throw new Exception\ClientException(sprintf($this->authServer->getExceptionMessage('invalid_scope'), $scope), 4);
} }
$authParams['scopes'][] = $scopeDetails; $authParams['scopes'][] = $scopeDetails;