summaryrefslogtreecommitdiff
path: root/routes/web.php
diff options
context:
space:
mode:
Diffstat (limited to 'routes/web.php')
-rw-r--r--routes/web.php200
1 files changed, 47 insertions, 153 deletions
diff --git a/routes/web.php b/routes/web.php
index 5e6747cde1..94be3212a0 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -17,172 +17,66 @@ declare(strict_types=1);
namespace Fisharebest\Webtrees;
-use Fisharebest\Webtrees\Controller\AdminController;
-use Fisharebest\Webtrees\Controller\HomePageController;
-use Symfony\Component\HttpFoundation\RedirectResponse;
-use Symfony\Component\HttpFoundation\Request;
-
-// The HTTP request.
-$request = Request::createFromGlobals();
-$method = $request->getMethod();
-$route = $request->get('route');
-
-// POST request? Check the CSRF token.
-if ($method === 'POST' && !Filter::checkCsrf()) {
- $referer = $request->headers->get('referer', route('tree-page'));
-
- return new RedirectResponse($referer);
-}
-
-// Most requests will need the current tree and user.
-$all_tree_names = array_keys(Tree::getNameList());
-$first_tree_name = current($all_tree_names) ?? '';
-$previous_tree_name = Session::get('GEDCOM', $first_tree_name);
-$default_tree_name = $previous_tree_name ?: Site::getPreference('DEFAULT_GEDCOM');
-$tree_name = $request->get('ged', $default_tree_name);
-$tree = Tree::findByName($tree_name);
-if ($previous_tree_name !== $tree_name) {
- Session::put('GEDCOM', $tree_name);
-}
-
-$request->attributes->set('tree', $tree);
-$request->attributes->set('user', AUth::user());
+$routes = [];
// Admin routes.
if (Auth::isAdmin()) {
- switch ($method . ':' . $route) {
- case 'GET:admin-blocks':
- return ($controller = new AdminController)->blocks();
-
- case 'GET:admin-charts':
- return ($controller = new AdminController)->charts();
-
- case 'GET:admin-clean-data':
- return ($controller = new AdminController)->cleanData();
-
- case 'POST:admin-clean-data':
- return ($controller = new AdminController)->cleanDataAction($request);
-
- case 'GET:admin-control-panel':
- return ($controller = new AdminController)->controlPanel();
-
- case 'POST:admin-delete-module-settings':
- return ($controller = new AdminController)->deleteModuleSettings($request);
-
- case 'GET:admin-fix-level-0-media':
- return ($controller = new AdminController)->fixLevel0Media();
-
- case 'POST:admin-fix-level-0-media-action':
- return ($controller = new AdminController)->fixLevel0MediaAction($request);
-
- case 'GET:admin-fix-level-0-media-data':
- return ($controller = new AdminController)->fixLevel0MediaData($request);
-
- case 'GET:admin-menus':
- return ($controller = new AdminController)->menus();
-
- case 'GET:admin-modules':
- return ($controller = new AdminController)->modules();
-
- case 'GET:admin-reports':
- return ($controller = new AdminController)->reports();
-
- case 'GET:admin-server-information':
- return ($controller = new AdminController)->serverInformation();
-
- case 'GET:admin-sidebars':
- return ($controller = new AdminController)->sidebars();
-
- case 'GET:admin-tabs':
- return ($controller = new AdminController)->tabs();
-
- case 'POST:admin-update-module-access':
- return ($controller = new AdminController)->updateModuleAccess($request);
-
- case 'POST:admin-update-module-status':
- return ($controller = new AdminController)->updateModuleStatus($request);
-
- case 'GET:tree-page-default-edit':
- return ($controller = new HomePageController)->treePageDefaultEdit();
-
- case 'POST:tree-page-default-update':
- return ($controller = new HomePageController)->treePageDefaultUpdate($request);
-
- case 'GET:user-page-default-edit':
- return ($controller = new HomePageController)->userPageDefaultEdit();
-
- case 'POST:user-page-default-update':
- return ($controller = new HomePageController)->userPageDefaultUpdate($request);
-
- case 'GET:user-page-user-edit':
- return ($controller = new HomePageController)->userPageUserEdit($request);
-
- case 'POST:user-page-user-update':
- return ($controller = new HomePageController)->userPageUserUpdate($request);
- }
+ $routes += [
+ 'GET:admin-blocks' => 'AdminController@blocks',
+ 'GET:admin-charts' => 'AdminController@charts',
+ 'GET:admin-clean-data' => 'AdminController@cleanData',
+ 'POST:admin-clean-data' => 'AdminController@cleanDataAction',
+ 'GET:admin-control-panel' => 'AdminController@controlPanel',
+ 'POST:admin-delete-module-settings' => 'AdminController@deleteModuleSettings',
+ 'GET:admin-fix-level-0-media' => 'AdminController@fixLevel0Media',
+ 'POST:admin-fix-level-0-media-action' => 'AdminController@fixLevel0MediaAction',
+ 'GET:admin-fix-level-0-media-data' => 'AdminController@fixLevel0MediaData',
+ 'GET:admin-menus' => 'AdminController@menus',
+ 'GET:admin-modules' => 'AdminController@modules',
+ 'GET:admin-reports' => 'AdminController@reports',
+ 'GET:admin-server-information' => 'AdminController@serverInformation',
+ 'GET:admin-sidebars' => 'AdminController@sidebars',
+ 'GET:admin-tabs' => 'AdminController@tabs',
+ 'POST:admin-update-module-access' => 'AdminController@updateModuleAccess',
+ 'POST:admin-update-module-status' => 'AdminController@updateModuleStatus',
+ 'GET:tree-page-default-edit' => 'HomePageController@treePageDefaultEdit',
+ 'POST:tree-page-default-update' => 'HomePageController@treePageDefaultUpdate',
+ 'GET:user-page-default-edit' => 'HomePageController@userPageDefaultEdit',
+ 'POST:user-page-default-update' => 'HomePageController@userPageDefaultUpdate',
+ 'GET:user-page-user-edit' => 'HomePageController@userPageUserEdit',
+ 'POST:user-page-user-update' => 'HomePageController@userPageUserUpdate',
+ ];
}
// Manager routes.
if ($tree instanceof Tree && Auth::isManager($tree)) {
- switch ($method . ':' . $route) {
- case 'GET:admin-control-panel-manager':
- return ($controller = new AdminController)->controlPanelManager();
-
- case 'GET:admin-changes-log':
- return ($controller = new AdminController)->changesLog($request);
-
- case 'GET:admin-changes-log-data':
- return ($controller = new AdminController)->changesLogData($request);
-
- case 'GET:admin-changes-log-download':
- return ($controller = new AdminController)->changesLogDownload($request);
-
- case 'GET:tree-page-edit':
- return ($controller = new HomePageController)->treePageEdit($request);
-
- case 'POST:tree-page-update':
- return ($controller = new HomePageController)->treePageUpdate($request);
- }
+ $routes += [
+ 'GET:admin-control-panel-manager' => 'AdminController@controlPanelManager',
+ 'GET:admin-changes-log' => 'AdminController@changesLog',
+ 'GET:admin-changes-log-data' => 'AdminController@changesLogData',
+ 'GET:admin-changes-log-download' => 'AdminController@changesLogDownload',
+ 'GET:tree-page-edit' => 'HomePageController@treePageEdit',
+ 'POST:tree-page-update' => 'HomePageController@treePageUpdate',
+ ];
}
// Member routes.
-if ($tree instanceof Tree && Auth::isMember($tree) && $tree->getPreference('imported') === '1') {
- switch ($method . ':' . $route) {
- case 'GET:user-page':
- return ($controller = new HomePageController)->userPage($request);
-
- case 'GET:user-page-block':
- return ($controller = new HomePageController)->userPageBlock($request);
-
- case 'GET:user-page-edit':
- return ($controller = new HomePageController)->userPageEdit($request);
-
- case 'POST:user-page-update':
- return ($controller = new HomePageController)->userPageUpdate($request);
- }
+if ($tree instanceof Tree && $tree->getPreference('imported') === '1' && Auth::isMember($tree)) {
+ $routes += [
+ 'GET:user-page' => 'HomePageController@userPage',
+ 'GET:user-page-block' => 'HomePageController@userPageBlock',
+ 'GET:user-page-edit' => 'HomePageController@userPageEdit',
+ 'POST:user-page-update' => 'HomePageController@userPageUpdate',
+ ];
}
// Public routes.
if ($tree instanceof Tree && $tree->getPreference('imported') === '1') {
- switch ($method . ':' . $route) {
- case 'GET:tree-page':
- return ($controller = new HomePageController)->treePage($request);
-
- case 'GET:tree-page-block':
- return ($controller = new HomePageController)->treePageBlock($request);
-
- default:
- return new RedirectResponse(route('tree-page', ['ged' => $tree->getName()]));
- }
-} else {
- if (Auth::check()) {
- // No current tree? Import/create one.
- return new RedirectResponse(Html::url('admin_trees_manage.php', []));
- } else {
- // Log in and try again
- $referer = $request->headers->get('referer');
-
- return new RedirectResponse(route('login', ['url' => $referer]));
- }
+ $routes += [
+ 'GET:' => 'HomePageController@treePage',
+ 'GET:tree-page' => 'HomePageController@treePage',
+ 'GET:tree-page-block' => 'HomePageController@treePageBlock',
+ ];
}
+return $routes;