Next major version 2 with PHP 8.1, Symfony 6, Tabler UI, 2FA ... (#2902)

This commit is contained in:
Kevin Papst
2022-12-31 21:19:55 +01:00
committed by GitHub
parent 95e06746bd
commit 90a0fd8a22
2164 changed files with 83700 additions and 86426 deletions

View File

@@ -1,7 +1,5 @@
<?php
declare(strict_types=1);
/*
* This file is part of the Kimai time-tracking app.
*
@@ -19,41 +17,25 @@ use FOS\RestBundle\View\View;
use FOS\RestBundle\View\ViewHandlerInterface;
use Nelmio\ApiDocBundle\Annotation\Model;
use Nelmio\ApiDocBundle\Annotation\Security as ApiSecurity;
use OpenApi\Attributes as OA;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Swagger\Annotations as SWG;
use Symfony\Component\HttpFoundation\Response;
/**
* @SWG\Tag(name="Default")
*
* @Security("is_granted('IS_AUTHENTICATED_REMEMBERED')")
*/
class StatusController extends BaseApiController
#[Security("is_granted('IS_AUTHENTICATED_REMEMBERED')")]
#[OA\Tag(name: 'Default')]
final class StatusController extends BaseApiController
{
/**
* @var ViewHandlerInterface
*/
private $viewHandler;
public function __construct(ViewHandlerInterface $viewHandler)
public function __construct(private ViewHandlerInterface $viewHandler)
{
$this->viewHandler = $viewHandler;
}
/**
* A testing route for the API
*
* @SWG\Response(
* response=200,
* description="A simple route that returns a 'pong', which you can use for testing the API",
* examples={"{'message': 'pong'}"}
* )
*
* @Rest\Get(path="/ping")
*
* @ApiSecurity(name="apiUser")
* @ApiSecurity(name="apiToken")
*/
#[OA\Response(response: 200, description: "A simple route that returns a 'pong', which you can use for testing the API", content: new OA\JsonContent(example: "{'message': 'pong'}"))]
#[Rest\Get(path: '/ping')]
#[ApiSecurity(name: 'apiUser')]
#[ApiSecurity(name: 'apiToken')]
public function pingAction(): Response
{
$view = new View(['message' => 'pong'], 200);
@@ -63,18 +45,11 @@ class StatusController extends BaseApiController
/**
* Returns information about the Kimai release
*
* @SWG\Response(
* response=200,
* description="Returns version information about the current release",
* @SWG\Schema(ref=@Model(type=Version::class))
* )
*
* @Rest\Get(path="/version")
*
* @ApiSecurity(name="apiUser")
* @ApiSecurity(name="apiToken")
*/
#[OA\Response(response: 200, description: 'Returns version information about the current release', content: new OA\JsonContent(ref: new Model(type: Version::class)))]
#[Rest\Get(path: '/version')]
#[ApiSecurity(name: 'apiUser')]
#[ApiSecurity(name: 'apiToken')]
public function versionAction(): Response
{
return $this->viewHandler->handle(new View(new Version(), 200));
@@ -82,21 +57,11 @@ class StatusController extends BaseApiController
/**
* Returns information about installed Plugins
*
* @SWG\Response(
* response=200,
* description="Returns a list of plugin names and versions",
* @SWG\Schema(
* type="array",
* @SWG\Items(ref=@Model(type=Plugin::class))
* )
* )
*
* @Rest\Get(path="/plugins")
*
* @ApiSecurity(name="apiUser")
* @ApiSecurity(name="apiToken")
*/
#[OA\Response(response: 200, description: 'Returns a list of plugin names and versions', content: new OA\JsonContent(type: 'array', items: new OA\Items(ref: new Model(type: Plugin::class))))]
#[Rest\Get(path: '/plugins')]
#[ApiSecurity(name: 'apiUser')]
#[ApiSecurity(name: 'apiToken')]
public function pluginAction(PluginManager $pluginManager): Response
{
$plugins = [];