Route::filter('ajax', function () { if (!Request::ajax()) { return Response::error('404'); } }); Route::filter('project', function () { // find project id from issue object if (Request::route()->parameters[0] == 0) { return; } Project::load_project(Request::route()->parameters[0]); if (!Project::current()) { return Response::error('404'); } }); Route::filter('issue', function () { Project\Issue::load_issue(Request::route()->parameters[1]); if (!Project\Issue::current()) { return Response::error('404'); } // load project if (Request::route()->parameters[0] == 0) { Request::route()->parameters = array(Project\Issue::current()->project_id, Project\Issue::current()->id); Project::load_project(Request::route()->parameters[0]); } }); Route::filter('permission', function ($permission) { if (!Auth::user()->permission($permission)) { return Response::error('500'); } });