feat(profils): Ajoute la fonctionnalité de suppression d'avatar.

🐛 fix(vich_uploader): Active l'injection sur chargement pour VichUploader.
🔧 chore(ansible): Modifie l'heure de la tâche cron pour la vérification du serveur mail.
🐛 fix(CustomerController): Corrige la récupération des données du contact.
This commit is contained in:
Serreau Jovann
2025-10-08 08:50:00 +02:00
parent 0c3054d7ed
commit 57eac4d32a
5 changed files with 24 additions and 3 deletions

View File

@@ -220,7 +220,7 @@
cron:
name: "Mainframe - Check Server mail"
minute: "0"
hour: "6,16"
hour: "6"
job: "php {{ path }}/bin/console mainframe:mailserver:check"
user: root
- name: "Cron Task purge email delete"

View File

@@ -6,7 +6,7 @@ vich_uploader:
upload_destination: '%kernel.project_dir%/public/storage/avatar'
namer: App\VichUploader\Namer\Account\AvatarName # Replaced namer
directory_namer: App\VichUploader\DirectoryNamer\Account\AvatarName
inject_on_load: false
inject_on_load: true
delete_on_update: true
delete_on_remove: true
devis:

View File

@@ -653,7 +653,7 @@ class CustomerController extends AbstractController
$entityManager->persist($customer);
// Récupération sécurisée des données du contact via Request, à privilégier à $_POST direct
$contactData = $request->request->get('customer', []);
$contactData = $request->request->all()['customer'];
$customerContact = new CustomerContact();
$customerContact->setIsMain(true);

View File

@@ -2,6 +2,7 @@
namespace App\Controller\Artemis;
use App\Entity\Account;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
@@ -19,11 +20,25 @@ class ProfilsController extends AbstractController
RoleHierarchyInterface $hierarchy,
Request $request
): Response {
/** @var Account $user */
$user = $this->getUser();
if (!$user) {
throw $this->createAccessDeniedException();
}
if($request->query->has('deleteAvatar')) {
$user->setAvatar(null);
$user->setAvatarFileName(null);
$user->setAvatarDimensions(null);
$user->setAvatarSize(null);
$user->setAvatarMineType(null);
$user->setAvatarOriginalName(null);
$user->setUpdateAt(new \DateTimeImmutable());
$entityManager->persist($user);
$entityManager->flush();
$this->addFlash('success', 'Suppression effectuée');
return $this->redirectToRoute('artemis_profils');
}
if ($request->isMethod('POST')) {
// Gestion upload avatar
$file = $request->files->get('avatar_upload');

View File

@@ -25,6 +25,12 @@
<label for="avatar_upload" class="px-4 py-2 bg-yellow-500 text-white font-semibold rounded-lg shadow-md hover:bg-yellow-600 cursor-pointer transition-colors duration-200">
Changer d'avatar
</label>
{% if app.user.avatarOriginalName is defined and app.user.avatarOriginalName is not empty %}
<a href="{{ path('artemis_profils',{deleteAvatar:true}) }}" class="px-4 py-2 bg-red-500 text-white font-semibold rounded-lg shadow-md hover:bg-red-600 cursor-pointer transition-colors duration-200">
Supprimer l'avatar
</a>
{% endif %}
{# The submit button for avatar upload is removed as requested. #}
</form>
</div>