forum-oauth-center/src/Api/Controller/ShowClientController.php
2023-10-13 20:30:09 +08:00

33 lines
985 B
PHP

<?php
namespace FoskyM\OAuthCenter\Api\Controller;
use Flarum\Api\Controller\AbstractListController;
use Flarum\Http\RequestUtil;
use Flarum\User\Exception\NotAuthenticatedException;
use Illuminate\Support\Arr;
use Psr\Http\Message\ServerRequestInterface;
use Tobscure\JsonApi\Document;
use FoskyM\OAuthCenter\Models\Client;
use FoskyM\OAuthCenter\Api\Serializer\ClientPublicSerializer;
class ShowClientController extends AbstractListController
{
public $serializer = ClientPublicSerializer::class;
protected function data(ServerRequestInterface $request, Document $document)
{
$client_id = Arr::get($request->getQueryParams(), 'client_id');
$actor = RequestUtil::getActor($request);
$actor->assertRegistered();
if (!$actor->hasPermission('foskym-oauth-center.use-oauth')) {
throw new NotAuthenticatedException();
}
$client = Client::where('client_id', $client_id)->get();
return $client;
}
}