✨ 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:
@@ -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"
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user