summaryrefslogtreecommitdiff
path: root/routes/web.php
blob: ad1733853d1d7eea8656a4fad78517602b6b8973 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
<?php
/**
 * webtrees: online genealogy
 * Copyright (C) 2018 webtrees development team
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
declare(strict_types=1);

namespace Fisharebest\Webtrees;

$routes = [];

// Admin routes.
if (Auth::isAdmin()) {
	$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:admin-webtrees1-thumbs'          => 'AdminController@webtrees1Thumbnails',
		'POST:admin-webtrees1-thumbs-action'  => 'AdminController@webtrees1ThumbnailsAction',
		'GET:admin-webtrees1-thumbs-data'     => 'AdminController@webtrees1ThumbnailsData',
		'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',
		'GET:unused-media-thumbnail'          => 'MediaFileController@unusedMediaThumbnail',
		'GET:broadcast'                       => 'MessageController@broadcastPage',
		'POST:broadcast'                      => 'MessageController@broadcastAction',
		'POST:select2-flag'                   => 'AutocompleteController@select2Flag',
	];
}

// Manager routes.
if ($tree instanceof Tree && Auth::isManager($tree)) {
	$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',
		'GET:merge-records'               => 'AdminController@mergeRecords',
		'POST:merge-records'              => 'AdminController@mergeRecordsAction',
		'GET:tree-page-block-edit'        => 'HomePageController@treePageBlockEdit',
		'POST:tree-page-block-edit'       => 'HomePageController@treePageBlockUpdate',
		'GET:tree-preferences'            => 'AdminController@treePreferencesEdit',
		'POST:tree-preferences'           => 'AdminController@treePreferencesUpdate',
		'GET:tree-privacy'                => 'AdminController@treePrivacyEdit',
		'POST:tree-privacy'               => 'AdminController@treePrivacyUpdate',
	];
}

// Moderator routes.
if ($tree instanceof Tree && $tree->getPreference('imported') === '1' && Auth::isModerator($tree)) {
	$routes += [
		'GET:show-pending'        => 'PendingChangesController@showChanges',
		'POST:accept-pending'     => 'PendingChangesController@acceptChange',
		'POST:reject-pending'     => 'PendingChangesController@rejectChange',
		'POST:accept-all-pending' => 'PendingChangesController@acceptAllChanges',
		'POST:reject-all-pending' => 'PendingChangesController@rejectAllChanges',
	];
}

// Editor routes.
if ($tree instanceof Tree && $tree->getPreference('imported') === '1' && Auth::isEditor($tree)) {
	$routes += [
		'GET:add-media-file'          => 'EditMediaController@addMediaFile',
		'POST:add-media-file'         => 'EditMediaController@addMediaFileAction',
		'GET:edit-media-file'         => 'EditMediaController@editMediaFile',
		'POST:edit-media-file'        => 'EditMediaController@editMediaFileAction',
		'GET:create-media-object'     => 'EditMediaController@createMediaObject',
		'POST:create-media-object'    => 'EditMediaController@createMediaObjectAction',
		'POST:create-media-from-file' => 'EditMediaController@createMediaObjectFromFileAction',
		'GET:create-note-object'      => 'EditNoteController@createNoteObject',
		'POST:create-note-object'     => 'EditNoteController@createNoteObjectAction',
		'GET:create-repository'       => 'EditRepositoryController@createRepository',
		'POST:create-repository'      => 'EditRepositoryController@createRepositoryAction',
		'GET:create-source'           => 'EditSourceController@createSource',
		'POST:create-source'          => 'EditSourceController@createSourceAction',
		'GET:create-submitter'        => 'EditSubmitterController@createSubmitter',
		'POST:create-submitter'       => 'EditSubmitterController@createSubmitterAction',
		'GET:reorder-children'        => 'EditFamilyController@reorderChildren',
		'POST:reorder-children'       => 'EditFamilyController@reorderChildrenAction',
		'GET:reorder-media'           => 'EditIndividualController@reorderMedia',
		'POST:reorder-media'          => 'EditIndividualController@reorderMediaAction',
		'GET:reorder-names'           => 'EditIndividualController@reorderNames',
		'POST:reorder-names'          => 'EditIndividualController@reorderNamesAction',
		'GET:reorder-spouses'         => 'EditIndividualController@reorderSpouses',
		'POST:reorder-spouses'        => 'EditIndividualController@reorderSpousesAction',
		'GET:edit-raw-record'         => 'EditGedcomRecordController@editRawRecord',
		'POST:edit-raw-record'        => 'EditGedcomRecordController@editRawRecordAction',
		'GET:edit-raw-fact'           => 'EditGedcomRecordController@editRawFact',
		'POST:edit-raw-fact'          => 'EditGedcomRecordController@editRawFactAction',
		'POST:copy-fact'              => 'EditGedcomRecordController@copyFact',
		'POST:delete-fact'            => 'EditGedcomRecordController@deleteFact',
		'POST:paste-fact'             => 'EditGedcomRecordController@pasteFact',
		'POST:delete-record'          => 'EditGedcomRecordController@deleteRecord',
	];
}

// Member routes.
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',
		'GET:user-page-block-edit'  => 'HomePageController@userPageBlockEdit',
		'POST:user-page-block-edit' => 'HomePageController@userPageBlockUpdate',
		'GET:my-account'            => 'AccountController@edit',
		'POST:my-account'           => 'AccountController@update',
		'POST:delete-account'       => 'AccountController@delete',
	];
}

// Public routes (that need a tree).
if ($tree instanceof Tree && $tree->getPreference('imported') === '1') {
	$routes += [
		'GET:autocomplete-folder'    => 'AutocompleteController@folder',
		'GET:autocomplete-place'     => 'AutocompleteController@place',
		'GET:branches'               => 'BranchesController@page',
		'GET:branches-list'          => 'BranchesController@list',
		'GET:calendar'               => 'CalendarController@page',
		'GET:calendar-events'        => 'CalendarController@calendar',
		'POST:expand-chart-box'      => 'IndividualController@expandChartBox',
		'GET:help-text'              => 'HelpTextController@helpText',
		'GET:tree-page'              => 'HomePageController@treePage',
		'GET:tree-page-block'        => 'HomePageController@treePageBlock',
		'GET:media-thumbnail'        => 'MediaFileController@mediaThumbnail',
		'GET:media-download'         => 'MediaFileController@mediaDownload',
		'GET:family'                 => 'FamilyController@show',
		'GET:individual'             => 'IndividualController@show',
		'GET:individual-tab'         => 'IndividualController@tab',
		'GET:media'                  => 'MediaController@show',
		'GET:contact'                => 'MessageController@contactPage',
		'POST:contact'               => 'MessageController@contactAction',
		'GET:message'                => 'MessageController@messagePage',
		'POST:message'               => 'MessageController@messageAction',
		'GET:note'                   => 'NoteController@show',
		'GET:source'                 => 'SourceController@show',
		'GET:record'                 => 'GedcomRecordController@show',
		'GET:repository'             => 'RepositoryController@show',
		'GET:report-list'            => 'ReportEngineController@reportList',
		'GET:report-setup'           => 'ReportEngineController@reportSetup',
		'GET:report-run'             => 'ReportEngineController@reportRun',
		'GET:family-list'            => 'ListController@familyList',
		'GET:individual-list'        => 'ListController@individualList',
		'GET:media-list'             => 'ListController@mediaList',
		'GET:note-list'              => 'ListController@noteList',
		'GET:repository-list'        => 'ListController@repositoryList',
		'GET:source-list'            => 'ListController@sourceList',
		'GET:ancestors'              => 'AncestorsChartController@page',
		'GET:ancestors-chart'        => 'AncestorsChartController@chart',
		'GET:compact-tree'           => 'CompactTreeChartController@page',
		'GET:compact-tree-chart'     => 'CompactTreeChartController@chart',
		'GET:descendants'            => 'DescendantsChartController@page',
		'GET:descendants-chart'      => 'DescendantsChartController@chart',
		'GET:family-book'            => 'FamilyBookChartController@page',
		'GET:family-book-chart'      => 'FamilyBookChartController@chart',
		'GET:fan'                    => 'FanChartController@page',
		'GET:fan-chart'              => 'FanChartController@chart',
		'GET:hourglass'              => 'HourglassChartController@page',
		'GET:hourglass-chart'        => 'HourglassChartController@chart',
		'POST:hourglass-add-asc'     => 'HourglassChartController@chartAddAncestor',
		'POST:hourglass-add-desc'    => 'HourglassChartController@chartAddDescendant',
		'GET:interactive'            => 'InteractiveChartController@page',
		'GET:interactive-chart'      => 'InteractiveChartController@chart',
		'GET:lifespans'              => 'LifespansChartController@page',
		'GET:lifespans-chart'        => 'LifespansChartController@chart',
		'GET:pedigree'               => 'PedigreeChartController@page',
		'GET:pedigree-chart'         => 'PedigreeChartController@chart',
		'GET:relationships'          => 'RelationshipsChartController@page',
		'GET:relationships-chart'    => 'RelationshipsChartController@chart',
		'GET:statistics'             => 'StatisticsChartController@page',
		'GET:statistics-families'    => 'StatisticsChartController@chartFamilies',
		'GET:statistics-individuals' => 'StatisticsChartController@chartIndividuals',
		'GET:statistics-other'       => 'StatisticsChartController@chartOther',
		'GET:statistics-options'     => 'StatisticsChartController@chartCustomOptions',
		'GET:statistics-chart'       => 'StatisticsChartController@chartCustomChart',
		'GET:timeline'               => 'TimelineChartController@page',
		'GET:timeline-chart'         => 'TimelineChartController@chart',
		'POST:accept-changes'        => 'PendingChangesController@acceptChanges',
		'POST:reject-changes'        => 'PendingChangesController@rejectChanges',
		'POST:select2-family'        => 'AutocompleteController@select2Family',
		'POST:select2-individual'    => 'AutocompleteController@select2Individual',
		'POST:select2-media'         => 'AutocompleteController@select2MediaObject',
		'POST:select2-note'          => 'AutocompleteController@select2Note',
		'POST:select2-source'        => 'AutocompleteController@select2Source',
		'POST:select2-submitter'     => 'AutocompleteController@select2Submitter',
		'POST:select2-repository'    => 'AutocompleteController@select2Repository',
	];
}

// Public routes (that do not need a tree).
$routes += [
	'GET:module'           => 'ModuleController@action',
	'POST:module'          => 'ModuleController@action',
	'GET:login'            => 'Auth\\LoginController@loginPage',
	'POST:login'           => 'Auth\\LoginController@loginAction',
	'GET:logout'           => 'Auth\\LoginController@logoutAction',
	'POST:logout'          => 'Auth\\LoginController@logoutAction',
	'GET:register'         => 'Auth\\RegisterController@registerPage',
	'POST:register'        => 'Auth\\RegisterController@registerAction',
	'GET:verify'           => 'Auth\\VerifyEmailController@verify',
	'GET:forgot-password'  => 'Auth\\ForgotPasswordController@forgotPasswordPage',
	'POST:forgot-password' => 'Auth\\ForgotPasswordController@forgotPasswordAction',
	'POST:delete-user'     => 'UserController@delete',
	'POST:language'        => 'UserController@language',
	'POST:masquerade'      => 'UserController@masquerade',
	'POST:theme'           => 'UserController@theme',
];

return $routes;