commit
92ae3443ec
13 changed files with 2159 additions and 1768 deletions
|
|
@ -4,3 +4,7 @@ CVE-2024-8176
|
||||||
CVE-2024-55549
|
CVE-2024-55549
|
||||||
CVE-2025-24855
|
CVE-2025-24855
|
||||||
CVE-2025-59530
|
CVE-2025-59530
|
||||||
|
CVE-2026-32280
|
||||||
|
CVE-2026-32281
|
||||||
|
CVE-2026-32283
|
||||||
|
CVE-2026-33810
|
||||||
|
|
|
||||||
35
Dockerfile
35
Dockerfile
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
# https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
|
# https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
|
||||||
ARG PHP_VERSION=8.2
|
ARG PHP_VERSION=8.2
|
||||||
ARG CADDY_VERSION=2.10.2
|
ARG CADDY_VERSION=2.11.2
|
||||||
|
|
||||||
# yarn build
|
# yarn build
|
||||||
FROM node AS yarn_build
|
FROM node AS yarn_build
|
||||||
|
|
@ -15,7 +15,7 @@ RUN mkdir -p /usr/app/vendor/symfony
|
||||||
RUN curl -L https://github.com/symfony/ux-autocomplete/archive/v2.7.1.tar.gz -o ux-autocomplete.tar.gz
|
RUN curl -L https://github.com/symfony/ux-autocomplete/archive/v2.7.1.tar.gz -o ux-autocomplete.tar.gz
|
||||||
RUN tar -xzvf ux-autocomplete.tar.gz --directory /usr/app/vendor/symfony
|
RUN tar -xzvf ux-autocomplete.tar.gz --directory /usr/app/vendor/symfony
|
||||||
RUN mv /usr/app/vendor/symfony/ux-autocomplete-2.7.1 /usr/app/vendor/symfony/ux-autocomplete
|
RUN mv /usr/app/vendor/symfony/ux-autocomplete-2.7.1 /usr/app/vendor/symfony/ux-autocomplete
|
||||||
COPY package.json yarn.lock .
|
COPY package.json yarn.lock ./
|
||||||
RUN yarn install
|
RUN yarn install
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN yarn build
|
RUN yarn build
|
||||||
|
|
@ -183,32 +183,19 @@ RUN set -eux; \
|
||||||
RUN rm -f .env.local.php
|
RUN rm -f .env.local.php
|
||||||
|
|
||||||
# Build Caddy with the Mercure and Vulcain modules
|
# Build Caddy with the Mercure and Vulcain modules
|
||||||
FROM caddy:${CADDY_VERSION}-builder-alpine AS app_caddy_builder
|
|
||||||
|
|
||||||
# Temporary fix for https://github.com/dunglas/mercure/issues/770
|
|
||||||
# https://github.com/dunglas/symfony-docker/pull/407/files
|
|
||||||
|
|
||||||
# FROM caddy:2.9.1-builder-alpine AS app_caddy_builder
|
|
||||||
|
|
||||||
|
|
||||||
# RUN xcaddy build \
|
|
||||||
# --with github.com/dunglas/mercure \
|
|
||||||
# --with github.com/dunglas/mercure/caddy \
|
|
||||||
# --with github.com/dunglas/vulcain \
|
|
||||||
# --with github.com/dunglas/vulcain/caddy
|
|
||||||
|
|
||||||
RUN xcaddy build \
|
|
||||||
--with github.com/dunglas/mercure/caddy \
|
|
||||||
--with github.com/dunglas/vulcain/caddy
|
|
||||||
|
|
||||||
# Caddy image
|
# Caddy image
|
||||||
FROM caddy:${CADDY_VERSION} AS app_caddy
|
FROM caddy:${CADDY_VERSION} AS app_caddy
|
||||||
|
|
||||||
|
ARG TARGETARCH
|
||||||
|
|
||||||
|
WORKDIR /srv/app
|
||||||
|
|
||||||
|
ADD --chmod=500 "https://caddyserver.com/api/download?os=linux&arch=$TARGETARCH&p=github.com/dunglas/mercure/caddy&p=github.com/dunglas/vulcain/caddy" /usr/bin/caddy
|
||||||
|
|
||||||
|
COPY --from=app_php /srv/app/public public/
|
||||||
|
COPY docker/caddy/Caddyfile /etc/caddy/Caddyfile
|
||||||
|
|
||||||
# needed for security update until base image is updated
|
# needed for security update until base image is updated
|
||||||
#RUN apk upgrade libcurl curl openssl openssl-dev libressl libcrypto1.1 libssl1.1 libcrypto3 libssl3
|
#RUN apk upgrade libcurl curl openssl openssl-dev libressl libcrypto1.1 libssl1.1 libcrypto3 libssl3
|
||||||
|
|
||||||
WORKDIR /srv/app
|
WORKDIR /srv/app
|
||||||
|
|
||||||
COPY --from=app_caddy_builder /usr/bin/caddy /usr/bin/caddy
|
|
||||||
COPY --from=app_php /srv/app/public public/
|
|
||||||
COPY docker/caddy/Caddyfile /etc/caddy/Caddyfile
|
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,9 @@
|
||||||
"php-http/discovery": true
|
"php-http/discovery": true
|
||||||
},
|
},
|
||||||
"optimize-autoloader": true,
|
"optimize-autoloader": true,
|
||||||
|
"platform": {
|
||||||
|
"php": "8.2.0"
|
||||||
|
},
|
||||||
"preferred-install": {
|
"preferred-install": {
|
||||||
"*": "dist"
|
"*": "dist"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
3840
composer.lock
generated
3840
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -85,7 +85,8 @@ postgresql:
|
||||||
# ref: https://kubernetes.io/docs/user-guide/persistent-volumes
|
# ref: https://kubernetes.io/docs/user-guide/persistent-volumes
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
image:
|
image:
|
||||||
repository: bitnami/postgresql
|
registry: docker.io
|
||||||
|
repository: bitnamilegacy/postgresql
|
||||||
tag: 14
|
tag: 14
|
||||||
primary:
|
primary:
|
||||||
persistence:
|
persistence:
|
||||||
|
|
|
||||||
|
|
@ -103,8 +103,7 @@ final class ProductController extends AbstractController
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render('pages/product/show.html.twig', compact('slug', 'id', 'product'));
|
return $this->render('pages/product/show.html.twig', compact('slug', 'id', 'product'));
|
||||||
} else {
|
}
|
||||||
throw new GoneHttpException();
|
throw new GoneHttpException();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -69,9 +69,8 @@ final class ServiceController extends AbstractController
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render('pages/product/new_service.html.twig', compact('form', 'product'));
|
return $this->render('pages/product/new_service.html.twig', compact('form', 'product'));
|
||||||
} else {
|
|
||||||
throw new GoneHttpException();
|
|
||||||
}
|
}
|
||||||
|
throw new GoneHttpException();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[Route([
|
#[Route([
|
||||||
|
|
@ -96,8 +95,7 @@ final class ServiceController extends AbstractController
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render('pages/product/edit_service.html.twig', compact('form', 'product'));
|
return $this->render('pages/product/edit_service.html.twig', compact('form', 'product'));
|
||||||
} else {
|
}
|
||||||
throw new GoneHttpException();
|
throw new GoneHttpException();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,8 +94,7 @@ final class UserProductsController extends AbstractController
|
||||||
|
|
||||||
if ($this->configurationRepository->getServicesParameter()) {
|
if ($this->configurationRepository->getServicesParameter()) {
|
||||||
return $this->render('pages/account/product/list.html.twig', compact('pagination', 'form'));
|
return $this->render('pages/account/product/list.html.twig', compact('pagination', 'form'));
|
||||||
} else {
|
}
|
||||||
throw new GoneHttpException('there is no services');
|
throw new GoneHttpException('there is no services');
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,8 @@ final class PayumManager
|
||||||
'groupOfferId' => (string) $offer->getId(),
|
'groupOfferId' => (string) $offer->getId(),
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
} else {
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
// method must be set as the default value is not retrieved from the gateway configuration
|
// method must be set as the default value is not retrieved from the gateway configuration
|
||||||
'method' => PaymentMethod::CREDITCARD->value,
|
'method' => PaymentMethod::CREDITCARD->value,
|
||||||
|
|
@ -90,7 +91,6 @@ final class PayumManager
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array<string, string> $afterParameters
|
* @param array<string, string> $afterParameters
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,8 @@ use Doctrine\ORM\QueryBuilder;
|
||||||
use Gedmo\Sortable\Entity\Repository\SortableRepository;
|
use Gedmo\Sortable\Entity\Repository\SortableRepository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @extends SortableRepository<MenuItem>
|
||||||
|
*
|
||||||
* @method MenuItem|null find($id, $lockMode = null, $lockVersion = null)
|
* @method MenuItem|null find($id, $lockMode = null, $lockVersion = null)
|
||||||
* @method MenuItem|null findOneBy(array $criteria, array $orderBy = null)
|
* @method MenuItem|null findOneBy(array $criteria, array $orderBy = null)
|
||||||
* @method MenuItem[] findAll()
|
* @method MenuItem[] findAll()
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ use App\Repository\GroupRepository;
|
||||||
final class GroupGetStatsProvider implements ProviderInterface
|
final class GroupGetStatsProvider implements ProviderInterface
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
readonly private GroupRepository $groupRepository,
|
private readonly GroupRepository $groupRepository,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ use App\Repository\UserRepository;
|
||||||
class GroupsProvider implements ProviderInterface
|
class GroupsProvider implements ProviderInterface
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
readonly private GroupRepository $groupRepository,
|
private readonly GroupRepository $groupRepository,
|
||||||
readonly private UserRepository $userRepository,
|
private readonly UserRepository $userRepository,
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,14 +6,14 @@ namespace App\Tests\Unit\Notifier;
|
||||||
|
|
||||||
use App\Entity\User;
|
use App\Entity\User;
|
||||||
use App\Notifier\SmsNotifier;
|
use App\Notifier\SmsNotifier;
|
||||||
use Monolog\Test\TestCase;
|
use Monolog\Test\MonologTestCase;
|
||||||
use PHPUnit\Framework\MockObject\MockObject;
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
use Symfony\Component\HttpClient\Response\MockResponse;
|
use Symfony\Component\HttpClient\Response\MockResponse;
|
||||||
use Symfony\Component\Notifier\Exception\TransportException;
|
use Symfony\Component\Notifier\Exception\TransportException;
|
||||||
use Symfony\Component\Notifier\TexterInterface;
|
use Symfony\Component\Notifier\TexterInterface;
|
||||||
|
|
||||||
final class SmsNotifierTest extends TestCase
|
final class SmsNotifierTest extends MonologTestCase
|
||||||
{
|
{
|
||||||
public function testNotify(): void
|
public function testNotify(): void
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue