Skip to content

Commit 8c5ade5

Browse files
committed
Merge branch 'easyadmin-routes'
2 parents 8af8f6e + c5d0b90 commit 8c5ade5

23 files changed

Lines changed: 97 additions & 125 deletions

config/routes/easyadmin.yaml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# EasyAdmin route loader for pretty URLs, not used by Dirigent yet
2-
#easyadmin:
3-
# resource: .
4-
# type: easyadmin.routes
1+
easyadmin:
2+
resource: .
3+
type: easyadmin.routes

src/Controller/Dashboard/DashboardAccessTokenController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use CodedMonkey\Dirigent\Doctrine\Entity\AccessToken;
66
use CodedMonkey\Dirigent\Doctrine\Entity\User;
77
use Doctrine\ORM\QueryBuilder;
8+
use EasyCorp\Bundle\EasyAdminBundle\Attribute\AdminCrud;
89
use EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection;
910
use EasyCorp\Bundle\EasyAdminBundle\Collection\FilterCollection;
1011
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
@@ -19,6 +20,7 @@
1920
use EasyCorp\Bundle\EasyAdminBundle\Orm\EntityRepository;
2021
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
2122

23+
#[AdminCrud(routePath: '/access-tokens', routeName: 'access_tokens')]
2224
class DashboardAccessTokenController extends AbstractCrudController implements EventSubscriberInterface
2325
{
2426
public static function getEntityFqcn(): string

src/Controller/Dashboard/DashboardAccountController.php

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
use CodedMonkey\Dirigent\Doctrine\Repository\UserRepository;
77
use CodedMonkey\Dirigent\Form\AccountFormType;
88
use CodedMonkey\Dirigent\Form\ChangePasswordFormType;
9-
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
109
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
1110
use Symfony\Component\Form\FormError;
1211
use Symfony\Component\HttpFoundation\Request;
@@ -18,20 +17,13 @@
1817

1918
class DashboardAccountController extends AbstractController
2019
{
21-
public static function getSubscribedServices(): array
22-
{
23-
return array_merge(parent::getSubscribedServices(), [
24-
AdminUrlGenerator::class => AdminUrlGenerator::class,
25-
]);
26-
}
27-
2820
public function __construct(
2921
private readonly UserRepository $userRepository,
3022
private readonly UserPasswordHasherInterface $passwordHasher,
3123
) {
3224
}
3325

34-
#[Route('/dashboard/account', name: 'dashboard_account')]
26+
#[Route('/account', name: 'dashboard_account')]
3527
#[IsGranted('ROLE_USER')]
3628
public function account(Request $request, #[CurrentUser] User $user): Response
3729
{
@@ -45,9 +37,7 @@ public function account(Request $request, #[CurrentUser] User $user): Response
4537

4638
$this->addFlash('success', 'Your account was successfully updated.');
4739

48-
$url = $this->container->get(AdminUrlGenerator::class)->setRoute('dashboard_account')->generateUrl();
49-
50-
return $this->redirect($url);
40+
return $this->redirectToRoute('dashboard_account');
5141
}
5242

5343
$passwordForm->handleRequest($request);
@@ -66,9 +56,7 @@ public function account(Request $request, #[CurrentUser] User $user): Response
6656

6757
$this->addFlash('success', 'Your password was successfully updated.');
6858

69-
$url = $this->container->get(AdminUrlGenerator::class)->setRoute('dashboard_account')->generateUrl();
70-
71-
return $this->redirect($url);
59+
return $this->redirectToRoute('dashboard_account');
7260
}
7361
}
7462

src/Controller/Dashboard/DashboardCredentialsController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44

55
use CodedMonkey\Dirigent\Doctrine\Entity\Credentials;
66
use CodedMonkey\Dirigent\Doctrine\Entity\CredentialsType;
7+
use EasyCorp\Bundle\EasyAdminBundle\Attribute\AdminCrud;
78
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
89
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;
910
use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField;
1011
use EasyCorp\Bundle\EasyAdminBundle\Field\TextareaField;
1112
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
1213

14+
#[AdminCrud(routePath: '/credentials', routeName: 'credentials')]
1315
class DashboardCredentialsController extends AbstractCrudController
1416
{
1517
public static function getEntityFqcn(): string

src/Controller/Dashboard/DashboardPackagesController.php

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public function __construct(
3434
) {
3535
}
3636

37-
#[Route('/dashboard/packages', name: 'dashboard_packages')]
37+
#[Route('/packages', name: 'dashboard_packages')]
3838
#[IsGrantedAccess]
3939
public function list(Request $request): Response
4040
{
@@ -57,31 +57,33 @@ public function list(Request $request): Response
5757
]);
5858
}
5959

60-
#[Route('/dashboard/packages/info/{packageName}/{packageVersion}', name: 'dashboard_packages_info', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
60+
#[Route('/packages/{packageName}', name: 'dashboard_packages_info', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
6161
#[IsGrantedAccess]
62-
public function info(string $packageName, ?string $packageVersion = null): Response
62+
public function info(string $packageName): Response
6363
{
6464
$package = $this->packageRepository->findOneBy(['name' => $packageName]);
65+
$version = $package->getLatestVersion();
6566

66-
$versions = $package->getVersions()->toArray();
67-
$latestVersion = $package->getDefaultVersion();
68-
69-
usort($versions, Package::class . '::sortVersions');
67+
return $this->render('dashboard/packages/package_info.html.twig', [
68+
'package' => $package,
69+
'version' => $version,
70+
]);
71+
}
7072

71-
if (null !== $packageVersion) {
72-
$version = $package->getVersion((new VersionParser())->normalize($packageVersion));
73-
} else {
74-
$version = $package->getLatestVersion();
75-
}
73+
#[Route('/packages/{packageName}/v/{packageVersion}', name: 'dashboard_packages_version_info', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
74+
#[IsGrantedAccess]
75+
public function versionInfo(string $packageName, string $packageVersion): Response
76+
{
77+
$package = $this->packageRepository->findOneBy(['name' => $packageName]);
78+
$version = $package->getVersion((new VersionParser())->normalize($packageVersion));
7679

7780
return $this->render('dashboard/packages/package_info.html.twig', [
7881
'package' => $package,
79-
'latestVersion' => $latestVersion,
8082
'version' => $version,
8183
]);
8284
}
8385

84-
#[Route('/dashboard/packages/versions/{packageName}', name: 'dashboard_packages_versions', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
86+
#[Route('/packages/{packageName}/versions', name: 'dashboard_packages_versions', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
8587
#[IsGrantedAccess]
8688
public function versions(string $packageName): Response
8789
{
@@ -96,7 +98,7 @@ public function versions(string $packageName): Response
9698
]);
9799
}
98100

99-
#[Route('/dashboard/packages/statistics/{packageName}', name: 'dashboard_packages_statistics', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
101+
#[Route('/packages/{packageName}/statistics', name: 'dashboard_packages_statistics', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
100102
#[IsGrantedAccess]
101103
public function statistics(string $packageName): Response
102104
{
@@ -138,7 +140,7 @@ public function statistics(string $packageName): Response
138140
]);
139141
}
140142

141-
#[Route('/dashboard/packages/add-mirroring', name: 'dashboard_packages_add_mirroring')]
143+
#[Route('/packages/add-mirroring', name: 'dashboard_packages_add_mirroring')]
142144
#[IsGranted('ROLE_ADMIN')]
143145
public function addMirroring(Request $request): Response
144146
{
@@ -221,7 +223,7 @@ public function addMirroring(Request $request): Response
221223
]);
222224
}
223225

224-
#[Route('/dashboard/packages/add-vcs', name: 'dashboard_packages_add_vcs')]
226+
#[Route('/packages/add-vcs', name: 'dashboard_packages_add_vcs')]
225227
#[IsGranted('ROLE_ADMIN')]
226228
public function addVcsRepository(Request $request): Response
227229
{
@@ -236,15 +238,15 @@ public function addVcsRepository(Request $request): Response
236238

237239
$this->messenger->dispatch(new UpdatePackage($package->getId()));
238240

239-
return $this->redirect($this->adminUrlGenerator->setRoute('dashboard_packages')->generateUrl());
241+
return $this->redirectToRoute('dashboard_packages');
240242
}
241243

242244
return $this->render('dashboard/packages/add_vcs.html.twig', [
243245
'form' => $form,
244246
]);
245247
}
246248

247-
#[Route('/dashboard/packages/edit/{packageName}', name: 'dashboard_packages_edit', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
249+
#[Route('/packages/{packageName}/edit', name: 'dashboard_packages_edit', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
248250
#[IsGranted('ROLE_ADMIN')]
249251
public function edit(Request $request, string $packageName): Response
250252
{
@@ -261,7 +263,7 @@ public function edit(Request $request, string $packageName): Response
261263

262264
$this->messenger->dispatch(new UpdatePackage($package->getId()));
263265

264-
return $this->redirect($this->adminUrlGenerator->setRoute('dashboard_packages_info', ['packageName' => $package->getName()])->generateUrl());
266+
return $this->redirectToRoute('dashboard_packages_info', ['packageName' => $package->getName()]);
265267
}
266268

267269
return $this->render('dashboard/packages/package_edit.html.twig', [
@@ -270,25 +272,25 @@ public function edit(Request $request, string $packageName): Response
270272
]);
271273
}
272274

273-
#[Route('/dashboard/packages/update/{packageName}', name: 'dashboard_packages_update', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
275+
#[Route('/packages/{packageName}/update', name: 'dashboard_packages_update', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
274276
#[IsGranted('ROLE_ADMIN')]
275277
public function update(string $packageName): Response
276278
{
277279
$package = $this->packageRepository->findOneByName($packageName);
278280

279281
$this->messenger->dispatch(new UpdatePackage($package->getId(), forceRefresh: true));
280282

281-
return $this->redirect($this->adminUrlGenerator->setRoute('dashboard_packages_info', ['packageName' => $package->getName()])->generateUrl());
283+
return $this->redirectToRoute('dashboard_packages_info', ['packageName' => $package->getName()]);
282284
}
283285

284-
#[Route('/dashboard/packages/delete/{packageName}', name: 'dashboard_packages_delete', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
286+
#[Route('/packages/{packageName}/delete', name: 'dashboard_packages_delete', requirements: ['packageName' => '[a-z0-9_.-]+/[a-z0-9_.-]+'])]
285287
#[IsGranted('ROLE_ADMIN')]
286288
public function delete(string $packageName): Response
287289
{
288290
$package = $this->packageRepository->findOneByName($packageName);
289291

290292
$this->packageRepository->remove($package, true);
291293

292-
return $this->redirect($this->adminUrlGenerator->setRoute('dashboard_packages')->generateUrl());
294+
return $this->redirectToRoute('dashboard_packages');
293295
}
294296
}

src/Controller/Dashboard/DashboardRegistryController.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
use CodedMonkey\Dirigent\Doctrine\Entity\RegistryPackageMirroring;
77
use CodedMonkey\Dirigent\Doctrine\Repository\RegistryRepository;
88
use CodedMonkey\Dirigent\EasyAdmin\DateIntervalField;
9+
use EasyCorp\Bundle\EasyAdminBundle\Attribute\AdminAction;
10+
use EasyCorp\Bundle\EasyAdminBundle\Attribute\AdminCrud;
911
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
1012
use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
1113
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
@@ -19,6 +21,7 @@
1921
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
2022
use Symfony\Component\HttpFoundation\RedirectResponse;
2123

24+
#[AdminCrud(routePath: '/registries', routeName: 'registries')]
2225
class DashboardRegistryController extends AbstractCrudController
2326
{
2427
public static function getEntityFqcn(): string
@@ -84,6 +87,7 @@ public function configureFields(string $pageName): iterable
8487
->onlyOnForms();
8588
}
8689

90+
#[AdminAction(routePath: '/{entityId}/move-up', routeName: 'moveUp')]
8791
public function moveUp(AdminContext $context, RegistryRepository $registryRepository): RedirectResponse
8892
{
8993
$registry = $context->getEntity()->getInstance();
@@ -95,6 +99,7 @@ public function moveUp(AdminContext $context, RegistryRepository $registryReposi
9599
return $this->redirect($url);
96100
}
97101

102+
#[AdminAction(routePath: '/{entityId}/move-down', routeName: 'moveDown')]
98103
public function moveDown(AdminContext $context, RegistryRepository $registryRepository): RedirectResponse
99104
{
100105
$registry = $context->getEntity()->getInstance();

src/Controller/Dashboard/DashboardResetPasswordController.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
use CodedMonkey\Dirigent\Form\ResetPasswordFormType;
77
use CodedMonkey\Dirigent\Form\ResetPasswordRequestFormType;
88
use Doctrine\ORM\EntityManagerInterface;
9-
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
109
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
1110
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
1211
use Symfony\Component\HttpFoundation\RedirectResponse;
@@ -27,7 +26,6 @@ public function __construct(
2726
private readonly EntityManagerInterface $entityManager,
2827
private readonly MailerInterface $mailer,
2928
private readonly ResetPasswordHelperInterface $resetPasswordHelper,
30-
private readonly AdminUrlGenerator $adminUrlGenerator,
3129
) {
3230
}
3331

@@ -64,7 +62,7 @@ public function passwordReset(Request $request, ?string $token = null): Response
6462
if ($token) {
6563
$this->storeTokenInSession($token);
6664

67-
return $this->redirect($this->adminUrlGenerator->setRoute('dashboard_reset_password')->generateUrl());
65+
return $this->redirectToRoute('dashboard_reset_password');
6866
}
6967

7068
$token = $this->getTokenFromSession();
@@ -82,7 +80,7 @@ public function passwordReset(Request $request, ?string $token = null): Response
8280
$exception->getReason()
8381
));
8482

85-
return $this->redirect($this->adminUrlGenerator->setRoute('dashboard_reset_password_request')->generateUrl());
83+
return $this->redirectToRoute('dashboard_reset_password_request');
8684
}
8785

8886
$form = $this->createForm(ResetPasswordFormType::class);
@@ -96,7 +94,7 @@ public function passwordReset(Request $request, ?string $token = null): Response
9694

9795
$this->cleanSessionAfterReset();
9896

99-
return $this->redirect($this->adminUrlGenerator->setRoute('dashboard_login')->generateUrl());
97+
return $this->redirectToRoute('dashboard_login');
10098
}
10199

102100
return $this->render('dashboard/reset_password/reset.html.twig', [
@@ -130,6 +128,6 @@ private function processSendingPasswordResetEmail(string $email): RedirectRespon
130128
}
131129
}
132130

133-
return $this->redirect($this->adminUrlGenerator->setRoute('dashboard_reset_password_sent')->generateUrl());
131+
return $this->redirectToRoute('dashboard_reset_password_sent');
134132
}
135133
}

0 commit comments

Comments
 (0)