Elgg  Version master
routes.php
Go to the documentation of this file.
1 <?php
2 
3 return [
4  'index' => [
5  'path' => '/',
6  'resource' => 'index',
7  'walled' => false,
8  ],
9  'upgrade:init' => [
10  'path' => '/upgrade/init',
11  'resource' => 'upgrade',
12  'walled' => false,
13  'middleware' => [
14  \Elgg\Router\Middleware\UpgradeGatekeeper::class,
15  \Elgg\Router\Middleware\RewriteTest::class,
16  ],
17  ],
18  'upgrade:run' => [
19  'path' => '/upgrade/run',
20  'controller' => \Elgg\Upgrade\UpgradeController::class,
21  'walled' => false,
22  'middleware' => [
23  \Elgg\Router\Middleware\UpgradeGatekeeper::class,
24  ],
25  ],
26  'account:register' => [
27  'path' => '/register',
28  'resource' => 'account/register',
29  'walled' => false,
30  'middleware' => [
31  \Elgg\Router\Middleware\LoggedOutGatekeeper::class,
32  \Elgg\Router\Middleware\RegistrationAllowedGatekeeper::class,
33  ],
34  ],
35  'account:login' => [
36  'path' => '/login',
37  'resource' => 'account/login',
38  'walled' => false,
39  'middleware' => [
40  \Elgg\Router\Middleware\LoggedOutGatekeeper::class,
41  ],
42  ],
43  'account:password:reset' => [
44  'path' => '/forgotpassword',
45  'resource' => 'account/forgotten_password',
46  'walled' => false,
47  'middleware' => [
48  \Elgg\Router\Middleware\LoggedOutGatekeeper::class,
49  ],
50  ],
51  'account:password:change' => [
52  'path' => '/changepassword',
53  'resource' => 'account/change_password',
54  'walled' => false,
55  'middleware' => [
56  \Elgg\Router\Middleware\LoggedOutGatekeeper::class,
57  \Elgg\Router\Middleware\SignedRequestGatekeeper::class,
58  ],
59  ],
60  'account:email:confirm' => [
61  'path' => '/emailconfirm/{guid}',
62  'controller' => \Elgg\Users\EmailChangeController::class,
63  'walled' => false,
64  'middleware' => [
65  \Elgg\Router\Middleware\SignedRequestGatekeeper::class,
66  ],
67  ],
68  'account:validation:pending' => [
69  'path' => '/validation_pending',
70  'resource' => 'account/validation_pending',
71  'walled' => false,
72  'middleware' => [
73  \Elgg\Router\Middleware\LoggedOutGatekeeper::class,
74  ],
75  ],
76  'ajax' => [
77  'path' => '/ajax/{type}/{segments}',
78  'controller' => \Elgg\Ajax\Controller::class,
79  'requirements' => [
80  'segments' => '.+',
81  'type' => 'view|form',
82  ],
83  'middleware' => [
84  \Elgg\Router\Middleware\AjaxGatekeeper::class,
85  ]
86  ],
87  'robots.txt' => [
88  'path' => '/robots.txt',
89  'resource' => 'robots.txt',
90  'walled' => false,
91  ],
92  'favicon.ico' => [
93  'path' => '/favicon.ico',
94  'resource' => 'favicon.ico',
95  'walled' => false,
96  ],
97  'manifest.json' => [
98  'path' => '/manifest.json',
99  'resource' => 'manifest.json',
100  'walled' => false,
101  ],
102  'admin' => [
103  'path' => '/admin/{segments?}',
104  'resource' => 'admin',
105  'requirements' => [
106  'segments' => '.+',
107  ],
108  'middleware' => [
109  \Elgg\Router\Middleware\AdminGatekeeper::class,
110  ],
111  'priority' => -1, // use as a fallback for all admin pages
112  ],
113  'admin:online_users_count' => [
114  'path' => '/admin/online_users_count',
115  'controller' => \Elgg\Controllers\OnlineUsersCount::class,
116  'middleware' => [
117  \Elgg\Router\Middleware\AdminGatekeeper::class,
118  ],
119  ],
120  'admin:plugin_settings' => [
121  'path' => '/admin/plugin_settings/{plugin_id?}', // optional plugin id so we also handle the route if plugin_id is missing in the path
122  'resource' => 'admin/plugin_settings',
123  'middleware' => [
124  \Elgg\Router\Middleware\AdminGatekeeper::class,
125  ],
126  ],
127  'admin_plugin_text_file' => [
128  'path' => '/admin_plugin_text_file/{plugin_id}/{filename}',
129  'resource' => 'admin/plugin_text_file',
130  'middleware' => [
131  \Elgg\Router\Middleware\AdminGatekeeper::class,
132  ],
133  ],
134  'phpinfo' => [
135  'path' => '/phpinfo',
136  'resource' => 'phpinfo',
137  'middleware' => [
138  \Elgg\Router\Middleware\AdminGatekeeper::class,
139  ],
140  ],
141  'cron' => [
142  'path' => '/cron/{segments}',
143  'controller' => \Elgg\Controllers\Cron::class,
144  'requirements' => [
145  'segments' => '.+',
146  ],
147  'walled' => false,
148  ],
149  'serve-icon' => [
150  'path' => '/serve-icon/{guid}/{size}',
151  'controller' => \Elgg\Controllers\ServeIcon::class,
152  'walled' => false,
153  ],
154  'livesearch' => [
155  'path' => '/livesearch/{match_on?}',
156  'resource' => 'livesearch',
157  'requirements' => [
158  'match_on' => '\w+',
159  ],
160  ],
161  'security.txt' => [
162  'path' => '/security.txt',
163  'controller' => \Elgg\Controllers\SecurityTxt::class,
164  'walled' => false,
165  ],
166  'settings:index' => [
167  'path' => '/settings',
168  'resource' => 'settings/account',
169  'middleware' => [
170  \Elgg\Router\Middleware\Gatekeeper::class,
171  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
172  ],
173  'use_logged_in' => true,
174  ],
175  'settings:account' => [
176  'path' => '/settings/user/{username}',
177  'resource' => 'settings/account',
178  'middleware' => [
179  \Elgg\Router\Middleware\Gatekeeper::class,
180  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
181  ],
182  'use_logged_in' => true,
183  ],
184  'settings:notifications' => [
185  'path' => '/settings/notifications/{username}',
186  'resource' => 'settings/notifications',
187  'middleware' => [
188  \Elgg\Router\Middleware\Gatekeeper::class,
189  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
190  ],
191  'use_logged_in' => true,
192  ],
193  'settings:notifications:users' => [
194  'path' => '/settings/notifications/users/{username}',
195  'resource' => 'settings/notifications/users',
196  'middleware' => [
197  \Elgg\Router\Middleware\Gatekeeper::class,
198  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
199  ],
200  'use_logged_in' => true,
201  'priority' => 1,
202  ],
203  'settings:statistics' => [
204  'path' => '/settings/statistics/{username}',
205  'resource' => 'settings/statistics',
206  'middleware' => [
207  \Elgg\Router\Middleware\Gatekeeper::class,
208  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
209  ],
210  'use_logged_in' => true,
211  ],
212  'settings:tools' => [
213  'path' => '/settings/plugins/{username}/{plugin_id}',
214  'resource' => 'settings/tools',
215  'middleware' => [
216  \Elgg\Router\Middleware\Gatekeeper::class,
217  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
218  ],
219  'use_logged_in' => true,
220  ],
221  'view:object:comment' => [
222  'path' => '/comment/view/{guid}/{container_guid?}',
223  'controller' => \Elgg\Controllers\CommentEntityRedirector::class,
224  ],
225  'view:user' => [
226  'path' => '/user/{guid}',
227  'resource' => 'user/view',
228  'middleware' => [
229  \Elgg\Router\Middleware\UserPageOwnerGatekeeper::class,
230  ],
231  'use_logged_in' => true,
232  ],
233  'delete:user' => [
234  'path' => '/user/delete/{guid}',
235  'resource' => 'user/delete',
236  'middleware' => [
237  \Elgg\Router\Middleware\AdminGatekeeper::class,
238  \Elgg\Router\Middleware\UserPageOwnerGatekeeper::class,
239  ],
240  ],
241  'edit:user:avatar' => [
242  'path' => '/avatar/edit/{username}',
243  'resource' => 'avatar/edit',
244  'middleware' => [
245  \Elgg\Router\Middleware\Gatekeeper::class,
246  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
247  ],
248  ],
249  'notifications:mute' => [
250  'path' => 'notifications/mute/{entity_guid}/{recipient_guid}',
251  'resource' => 'notifications/mute',
252  'requirements' => [
253  'entity_guid' => '\d+',
254  'recipient_guid' => '\d+',
255  ],
256  'middleware' => [
257  \Elgg\Router\Middleware\SignedRequestGatekeeper::class,
258  ],
259  'walled' => false,
260  ],
261  'trash:owner' => [
262  'path' => '/settings/trash/{username}',
263  'resource' => 'trash/owner',
264  'middleware' => [
265  \Elgg\Router\Middleware\Gatekeeper::class,
266  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
267  ],
268  ],
269  'trash:group' => [
270  'path' => '/trash/group/{guid}',
271  'resource' => 'trash/group',
272  'middleware' => [
273  \Elgg\Router\Middleware\Gatekeeper::class,
274  \Elgg\Router\Middleware\GroupPageOwnerCanEditGatekeeper::class,
275  ],
276  ],
277 ];