Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Which images to pull for production deployment
VERSION=2.4.3
VERSION=2.4.4

# Impact containers names, see
# https://docs.docker.com/compose/how-tos/environment-variables/envvars/#compose_project_name
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog of AgentJ

## 2026-01-29 - 2.4.4

### Bug fixes

- Fix redirecting to the "Referer" URL ([ec585b3a](https://github.com/Probesys/agentj/commit/ec585b3a))

## 2026-01-16 - 2.4.3

### Bug fixes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ export default class extends Controller {
const url = this.urlValue;
const response = await fetch(url, {
method: 'GET',
headers: {
'Accept': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
},
});

if (!response.ok) {
Expand Down
1 change: 1 addition & 0 deletions app/assets/controllers/form-group_controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ btnSubmitTarget.disabled = true
method: 'POST',
headers: {
'Accept': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
},
body: formData
})
Expand Down
11 changes: 7 additions & 4 deletions app/assets/controllers/form-ldap-connector_controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export default class extends Controller {
method: 'POST',
headers: {
'Accept': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
},
body: formData
})
Expand Down Expand Up @@ -74,6 +75,7 @@ export default class extends Controller {
method: 'POST',
headers: {
'Accept': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
},
body: formData
})
Expand All @@ -100,6 +102,7 @@ export default class extends Controller {
method: 'POST',
headers: {
'Accept': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
},
body: formData
})
Expand All @@ -113,8 +116,8 @@ export default class extends Controller {
}

}


showHideGroupInfoEventClick(event) {
this.showHideGroupInfo(event.target.checked);
}
Expand All @@ -140,7 +143,7 @@ export default class extends Controller {
showHideBindInfoEventClick(event) {

this.showHideBindInfo(event.target.checked);
}
}

showHideBindInfo(checked) {
const divBindingInfo = this.element.querySelector('#info-binding-ldap');
Expand All @@ -158,5 +161,5 @@ export default class extends Controller {
});
}
this.checkConnection();
}
}
}
8 changes: 7 additions & 1 deletion app/assets/controllers/message-counter_controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,13 @@ export default class extends Controller {
this[`${name}Target`].textContent = '...';
});

fetch(this.urlValue)
fetch(this.urlValue, {
method: 'GET',
headers: {
'Accept': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
},
})
.then(response => {
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
Expand Down
18 changes: 8 additions & 10 deletions app/src/Controller/DefaultController.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use App\Entity\User;
use App\Repository\UserRepository;
use App\Repository\MsgrcptRepository;
use App\Service\Referrer;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Bundle\SecurityBundle\Security;
Expand All @@ -19,6 +20,7 @@ class DefaultController extends AbstractController
{
public function __construct(
private Security $security,
private Referrer $referrer,
) {
}

Expand Down Expand Up @@ -49,11 +51,6 @@ public function setLocaleAction(Request $request, EntityManagerInterface $em, ?s
$request->getSession()->set('_locale', $language);
}

$url = $request->headers->get('referer');
if (empty($url)) {
$url = $this->container->get('router')->generate('message');
}

/** @var User $user */
$user = $this->getUser();
if (!$this->security->isGranted('ROLE_PREVIOUS_ADMIN')) {
Expand All @@ -66,21 +63,22 @@ public function setLocaleAction(Request $request, EntityManagerInterface $em, ?s
$em->persist($user);
$em->flush();

return new RedirectResponse($url);
return new RedirectResponse($this->referrer->get());
}

#[Route('/per_page/{nbItems}', name: 'per_page')]
public function perPage(int $nbItems, Request $request): Response
{
$referer = $request->headers->get('referer');
$session = $request->getSession();
$session->set('perPage', $nbItems);
$urlParts = parse_url($referer);

$referrer = $this->referrer->get();
$urlParts = parse_url($referrer);
parse_str($urlParts['query'] ?? '', $query);
$query['page'] = 1;
$newQuery = http_build_query($query);
$newReferer = strtok($referer, '?') . '?' . $newQuery;
$newReferrer = strtok($referrer, '?') . '?' . $newQuery;

return $referer ? $this->redirect($newReferer) : $this->redirectToRoute('homepage');
return new RedirectResponse($newReferrer);
}
}
24 changes: 11 additions & 13 deletions app/src/Controller/ImportController.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use App\Entity\Wblist;
use App\Form\ImportType;
use App\Service\GroupService;
use App\Service\Referrer;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Filesystem\Filesystem;
Expand All @@ -26,15 +27,12 @@ class ImportController extends AbstractController
use ControllerCommonTrait;
use ControllerWBListTrait;

private TranslatorInterface $translator;
private EntityManagerInterface $em;
private GroupService $groupService;

public function __construct(TranslatorInterface $translator, EntityManagerInterface $em, GroupService $groupService)
{
$this->translator = $translator;
$this->em = $em;
$this->groupService = $groupService;
public function __construct(
private TranslatorInterface $translator,
private EntityManagerInterface $em,
private GroupService $groupService,
private Referrer $referrer,
) {
}

#[Route(path: '/users', name: 'import_user_email', options: ['expose' => true])]
Expand Down Expand Up @@ -66,8 +64,8 @@ public function index(Request $request): Response
} else {
$this->addFlash('danger', 'Generics.flash.BadFormatcsv');
}
$referer = $request->headers->get('referer');
return $this->redirect($referer);

return $this->redirect($this->referrer->get());
}

return $this->render('import/index.html.twig', [
Expand Down Expand Up @@ -270,8 +268,8 @@ public function indexAlias(Request $request): Response
} else {
$this->addFlash('danger', 'Generics.flash.BadFormatcsv');
}
$referer = $request->headers->get('referer');
return $this->redirect($referer);

return $this->redirect($this->referrer->get());
}

return $this->render('import/index_alias.html.twig', [
Expand Down
36 changes: 9 additions & 27 deletions app/src/Controller/MessageController.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ class MessageController extends AbstractController
public function __construct(
private TranslatorInterface $translator,
private EntityManagerInterface $em,
private Service\MessageService $messageService
private Service\MessageService $messageService,
private Service\Referrer $referrer,
) {
}

Expand Down Expand Up @@ -249,11 +250,7 @@ public function deleteAction(
$logService->addLog('delete', $mailId);
}

if (!empty($request->headers->get('referer'))) {
return new RedirectResponse($request->headers->get('referer'));
} else {
return $this->redirectToRoute("message");
}
return new RedirectResponse($this->referrer->get());
}

#[Route(path: '/batch/{action}', name: 'message_batch', methods: 'POST', options: ['expose' => true])]
Expand Down Expand Up @@ -290,8 +287,7 @@ public function batchMessageAction(
}
}

$referer = $request->headers->get('referer');
return $this->redirect($referer);
return new RedirectResponse($this->referrer->get());
}

#[Route(path: '/{partitionTag}/{mailId}/{rid}/authorized', name: 'message_authorized')]
Expand Down Expand Up @@ -321,11 +317,7 @@ public function authorized(
$logService->addLog('authorized', $mailId);
}

if (!empty($request->headers->get('referer'))) {
return new RedirectResponse($request->headers->get('referer'));
} else {
return $this->redirectToRoute("message");
}
return new RedirectResponse($this->referrer->get());
}

#[Route(path: '/{partitionTag}/{mailId}/{rid}/banned', name: 'message_banned')]
Expand Down Expand Up @@ -355,11 +347,7 @@ public function banned(
$logService->addLog('banned', $mailId);
}

if (!empty($request->headers->get('referer'))) {
return new RedirectResponse($request->headers->get('referer'));
} else {
return $this->redirectToRoute("message");
}
return new RedirectResponse($this->referrer->get());
}

/**
Expand Down Expand Up @@ -391,11 +379,7 @@ public function restore(
$this->addFlash('success', $this->translator->trans('Message.Flash.messagePendingRelease'));
$logService->addLog('restore', $mailId);

if (!empty($request->headers->get('referer'))) {
return new RedirectResponse($request->headers->get('referer'));
} else {
return $this->redirectToRoute("message");
}
return new RedirectResponse($this->referrer->get());
}

#[IsGranted('ROLE_ADMIN')]
Expand All @@ -412,8 +396,7 @@ public function authorizedDomain(
$logService->addLog('authorize for domain ', $mailId);
}

$referer = $request->headers->get('referer');
return new RedirectResponse($referer);
return new RedirectResponse($this->referrer->get());
}

#[IsGranted('ROLE_ADMIN')]
Expand All @@ -430,8 +413,7 @@ public function bannedDomain(
$logService->addLog('banned for domain ', $mailId);
}

$referer = $request->headers->get('referer');
return new RedirectResponse($referer);
return new RedirectResponse($this->referrer->get());
}

/**
Expand Down
23 changes: 10 additions & 13 deletions app/src/Controller/UserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use App\Form\UserType;
use App\Repository\UserRepository;
use App\Service\GroupService;
use App\Service\Referrer;
use App\Service\UserService;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
Expand All @@ -28,13 +29,11 @@ class UserController extends AbstractController
{
use ControllerWBListTrait;

private TranslatorInterface $translator;
private EntityManagerInterface $em;

public function __construct(TranslatorInterface $translator, EntityManagerInterface $em)
{
$this->translator = $translator;
$this->em = $em;
public function __construct(
private TranslatorInterface $translator,
private EntityManagerInterface $em,
private Referrer $referrer,
) {
}

#[Route(path: '/local', name: 'users_local_index', methods: 'GET')]
Expand Down Expand Up @@ -302,8 +301,7 @@ public function deleteEmail(Request $request, User $user): Response
$this->em->flush();
}

$referer = $request->headers->get('referer');
return $this->redirect($referer);
return $this->redirect($this->referrer->get());
}

#[Route(path: '/email/batchDelete', name: 'user_email_batch_delete', methods: 'POST')]
Expand All @@ -314,8 +312,7 @@ public function batchDeleteEmail(Request $request): Response

if (!$this->isCsrfTokenValid('delete user', $csrfToken)) {
$this->addFlash('error', $this->translator->trans('Generics.flash.invalidCsrfToken', [], 'errors'));
$referer = $request->headers->get('referer');
return $this->redirect($referer);
return $this->redirect($this->referrer->get());
}

foreach ($request->request->all('id') as $id) {
Expand All @@ -325,8 +322,8 @@ public function batchDeleteEmail(Request $request): Response
}
}
$this->em->flush();
$referer = $request->headers->get('referer');
return $this->redirect($referer);

return $this->redirect($this->referrer->get());
}

#[Route(path: '/email/newUser', name: 'user_email_new', methods: 'GET|POST')]
Expand Down
Loading
Loading