Am configurat o pagină personalizată în sistemul meu care se așteaptă la 2 parametri care vor fi utilizați pentru a genera o parte a conținutului de pe pagina respectivă, sunt capabil să recuperez informațiile de pe pagina mea, dar mă întreb care este cel mai bun metoda de returnare a unui acces refuzat atunci când criteriile mele nu eșuează
am găsit această pagină care arată cum puteți configura un controler de acces personalizat, dar acest exemplu transmite entitatea utilizator, când ceea ce mă interesează mai mult sunt „slug-urile” URL-ului pe care l-au accesat
rutare.yml
my_module.user_subscribe:
cale: /my-module/subscribe/{entity_type}/{entity_id}
implicite:
_controller: \Drupal\my-module\Controller\SubscriptionPages::subscribe
_title: Abonament prin e-mail reușit
tip: nod
entitate: 1
cerinte:
_permission: „accesează conținut”
_entity_check: „TRUE”
Servicii.yml
Servicii:
my_module.entity_check:
clasa: Drupal\my-module\Access\EntityCheck
Etichete:
- { name: access_check, applies_to: _entity_check }
Apoi am a mea src/Controller/SubscriptionPages
dosar și unul pentru src/Access/EntityCheck
etc, toată acea parte pare să funcționeze, pot aplica manual codul din EntityCheck pentru a returna un acces refuzat, dar ceea ce vreau să știu este cum pot trage {tip de entitate}
și {entity_id}
de la adresa URL pe care au accesat-o, astfel încât să pot verifica că nu încearcă să acceseze ceva ce nu ar trebui
de exemplu
mywebsite.com/my-module/subscribe/node/15 - ar fi bine
mywebsite.com/my-module/subscribe/foo/bar - ar returna accesul refuzat, deoarece vreau să rulez verificarea în codul meu EntityCheck
În linkul de mai sus are argumente: ['@current_user']
în interiorul fișierului services.yml, există unul echivalent pentru URL-ul curent sau unul în care pot prelua în mod mai specific fiecare dintre elemente în mod individual?