function routes($config)
{
// only mess with the cms
Route::group(['prefix' => $config['cms_path'], 'middleware' => ['cms.language', 'cms.view']], function () use($config) {
Route::group(['namespace' => '\\Thorazine\\Cms\\Http\\Controllers'], function () use($config) {
// pickup on first contact
Route::get('/', ['as' => 'cms.auth.first', 'uses' => 'AuthController@first']);
Route::post('/', ['as' => 'cms.auth.first.create', 'uses' => 'AuthController@create']);
// auth
Route::post('/login/submit', ['as' => 'cms.auth.check', 'before' => 'csrf', 'uses' => 'AuthController@check']);
Route::get('/login', ['as' => 'cms.auth.login', 'uses' => 'AuthController@index']);
// All routes that do require auth
Route::group(['middleware' => ['cms.auth']], function () use($config) {
// logout
Route::get('/logout', ['as' => 'cms.auth.logout', 'uses' => 'AuthController@destroy']);
// cms home
Route::get('/base', ['as' => 'cms.base', 'uses' => 'CmsController@index']);
// flexible auth routes
Route::group(['middleware' => ['cms.model']], function () use($config) {
// flexible restfull routes
Route::get('/{module}/{model}/index', ['as' => 'module.model.index', 'uses' => 'PreController@index']);
Route::get('/{module}/{model}/create', ['as' => 'module.model.create', 'uses' => 'PreController@create']);
Route::post('/{module}/{model}/store', ['as' => 'module.model.store', 'uses' => 'PreController@store']);
Route::get('/{module}/{model}/show/{id}', ['as' => 'module.model.show', 'uses' => 'PreController@show']);
Route::get('/{module}/{model}/edit/{id}', ['as' => 'module.model.edit', 'uses' => 'PreController@edit']);
Route::put('/{module}/{model}/update/{id}', ['as' => 'module.model.update', 'uses' => 'PreController@update']);
Route::delete('/{module}/{model}/destroy/{id}', ['as' => 'module.model.destroy', 'uses' => 'PreController@destroy']);
Route::post('/{module}/{model}/order', ['as' => 'module.model.order', 'uses' => 'PreController@order']);
Route::get('/{module}/{model}/{action}', ['as' => 'module.model.action', 'uses' => 'PreController@custom']);
});
});
});
});
}