Rbac.php 618 B

12345678910111213141516171819202122
  1. <?php
  2. namespace App\Utility;
  3. use Illuminate\Support\Collection;
  4. use Illuminate\Support\Facades\Route;
  5. class Rbac
  6. {
  7. public static function getAllRoutes(): Collection
  8. {
  9. return (new Collection(Route::getRoutes()))
  10. ->filter(function ($route) {
  11. $actions = $route->getAction();
  12. return isset($actions['as']) && $actions['as'] === 'rbac';
  13. })
  14. ->map(function ($route) {
  15. $method = $route->methods[0];
  16. $route->rbacRule = "{$method}:{$route->uri}";
  17. return $route;
  18. });
  19. }
  20. }