Release 2.45 (#5721)

Co-authored-by: Henning Klein <info@henningklein.de>
This commit is contained in:
Kevin Papst
2025-12-21 16:42:34 +01:00
committed by GitHub
parent 8c1ed68817
commit afb5a0bba4
67 changed files with 905 additions and 254 deletions

View File

@@ -86,7 +86,7 @@ final class ActivityController extends BaseApiController
}
$visible = $paramFetcher->get('visible');
if (\is_string($visible) && $visible !== '') {
if (is_numeric($visible)) {
$query->setVisibility((int) $visible);
}

View File

@@ -17,7 +17,6 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormTypeInterface;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
abstract class BaseApiController extends AbstractController
{
@@ -85,8 +84,11 @@ abstract class BaseApiController extends AbstractController
$size = $all['size'];
if (is_numeric($size)) {
$size = (int) $size;
if ($size < 1 || $size > self::MAX_PAGE_SIZE) {
throw new BadRequestHttpException('Size must be between 1 and ' . self::MAX_PAGE_SIZE);
if ($size < 1) {
$size = BaseQuery::DEFAULT_PAGESIZE;
}
if ($size > self::MAX_PAGE_SIZE) {
$size = self::MAX_PAGE_SIZE;
}
$query->setPageSize($size);
}

View File

@@ -76,7 +76,7 @@ final class CustomerController extends BaseApiController
}
$visible = $paramFetcher->get('visible');
if (\is_string($visible) && $visible !== '') {
if (is_numeric($visible)) {
$query->setVisibility((int) $visible);
}

View File

@@ -99,7 +99,7 @@ final class ProjectController extends BaseApiController
}
$visible = $paramFetcher->get('visible');
if (\is_string($visible) && $visible !== '') {
if (is_numeric($visible)) {
$query->setVisibility((int) $visible);
}

View File

@@ -20,6 +20,7 @@ use App\Repository\CustomerRepository;
use App\Repository\ProjectRepository;
use App\Repository\Query\TeamQuery;
use App\Repository\TeamRepository;
use App\User\TeamService;
use FOS\RestBundle\View\View;
use FOS\RestBundle\View\ViewHandlerInterface;
use OpenApi\Attributes as OA;
@@ -41,7 +42,8 @@ final class TeamController extends BaseApiController
public function __construct(
private readonly ViewHandlerInterface $viewHandler,
private readonly TeamRepository $repository
private readonly TeamRepository $repository,
private readonly TeamService $teamService
)
{
}
@@ -88,7 +90,7 @@ final class TeamController extends BaseApiController
#[Route(methods: ['DELETE'], path: '/{id}', name: 'delete_team', requirements: ['id' => '\d+'])]
public function deleteAction(Team $team): Response
{
$this->repository->deleteTeam($team);
$this->teamService->deleteTeam($team);
$view = new View(null, Response::HTTP_NO_CONTENT);
@@ -104,13 +106,13 @@ final class TeamController extends BaseApiController
#[Route(methods: ['POST'], path: '', name: 'post_team')]
public function postAction(Request $request): Response
{
$team = new Team('');
$team = $this->teamService->createNewTeam('');
$form = $this->createForm(TeamApiEditForm::class, $team);
$form->submit($request->request->all());
if ($form->isValid()) {
$this->repository->saveTeam($team);
$this->teamService->saveTeam($team);
$view = new View($team, 200);
$view->getContext()->setGroups(self::GROUPS_ENTITY);
@@ -139,6 +141,8 @@ final class TeamController extends BaseApiController
$team->removeMember($member);
$this->repository->removeTeamMember($member);
}
// this fails, if we use the teamservice, because the validator
// complains about teams without members or teamleads
$this->repository->saveTeam($team);
}
@@ -154,7 +158,7 @@ final class TeamController extends BaseApiController
return $this->viewHandler->handle($view);
}
$this->repository->saveTeam($team);
$this->teamService->saveTeam($team);
$view = new View($team, Response::HTTP_OK);
$view->getContext()->setGroups(self::GROUPS_ENTITY);
@@ -178,7 +182,7 @@ final class TeamController extends BaseApiController
$team->addUser($member);
$this->repository->saveTeam($team);
$this->teamService->saveTeam($team);
$view = new View($team, Response::HTTP_OK);
$view->getContext()->setGroups(self::GROUPS_ENTITY);
@@ -206,7 +210,7 @@ final class TeamController extends BaseApiController
$team->removeUser($member);
$this->repository->saveTeam($team);
$this->teamService->saveTeam($team);
$view = new View($team, Response::HTTP_OK);
$view->getContext()->setGroups(self::GROUPS_ENTITY);

View File

@@ -66,7 +66,7 @@ final class UserController extends BaseApiController
$query->setCurrentUser($this->getUser());
$visible = $paramFetcher->get('visible');
if (\is_string($visible) && $visible !== '') {
if (is_numeric($visible)) {
$query->setVisibility((int) $visible);
}