Routes.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. use App\Core\Template\Output as Output;
  3. use Routes\RouteCollection as RouteCollection;
  4. use App\Core\Auth\AuthController as Auth;
  5. RouteCollection::get('*', function() {
  6. Output::addMenu('/auth/logout', 'Logout', icon('sign-out'), ['class' => 'nav-link', 'data-method' => 'reload'], 99999);
  7. Output::addOnSubmenu('config', '/auth', "Usuários", icon('user'), ['class' => 'nav-link']);
  8. }, -10)->doIgnore();
  9. RouteCollection::group("/auth", function () {
  10. // Default
  11. RouteCollection::get("/", "\App\Core\Auth\AuthController@index");
  12. RouteCollection::get("/form", "\App\Core\Auth\AuthController@create");
  13. RouteCollection::post("/", "\App\Core\Auth\AuthController@store");
  14. RouteCollection::get("/[i:id]", "\App\Core\Auth\AuthController@show");
  15. RouteCollection::get("/[i:id]/edit", "\App\Core\Auth\AuthController@edit");
  16. RouteCollection::put("/[i:id]/edit", "\App\Core\Auth\AuthController@update");
  17. RouteCollection::delete("/[i:id]", "\App\Core\Auth\AuthController@destroy");
  18. // Auth process
  19. RouteCollection::get('/logout', "\App\Core\Auth\AuthController@logout");
  20. RouteCollection::get('/login', "\App\Core\Auth\AuthController@loginForm")->middlewareIgnore('auth');
  21. RouteCollection::post('/login', "\App\Core\Auth\AuthController@login")->middlewareIgnore('auth')->doBlock();
  22. });
  23. RouteCollection::addDefaultMiddleware('auth', function () {
  24. global $ROUTE;
  25. return true;
  26. if($ROUTE->_verb == 'CLI' || $ROUTE->_verb[0] == 'CLI'){
  27. return true;
  28. }
  29. if(Auth::isTokenValid()){
  30. return true;
  31. }
  32. #ToDo use the Response API
  33. if (!Auth::isLoggedIn()) {
  34. header("location: /auth/login");
  35. die;
  36. }
  37. });
  38. /**
  39. * Checks if the loged user can access a specific permission
  40. */
  41. RouteCollection::registerMiddleware('canaccess', function ($permission) {
  42. if(!Auth::canAccess($permission)){
  43. Output::setTemplate('NullTemplate');
  44. Output::render('forbiden', ['action' => $permission]);
  45. return false;
  46. }
  47. return true;
  48. });