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/{segments}',
78  'controller' => \Elgg\Ajax\Controller::class,
79  'requirements' => [
80  'segments' => '.+',
81  ],
82  'middleware' => [
83  \Elgg\Router\Middleware\AjaxGatekeeper::class,
84  ]
85  ],
86  'robots.txt' => [
87  'path' => '/robots.txt',
88  'resource' => 'robots.txt',
89  'walled' => false,
90  ],
91  'favicon.ico' => [
92  'path' => '/favicon.ico',
93  'resource' => 'favicon.ico',
94  'walled' => false,
95  ],
96  'manifest.json' => [
97  'path' => '/manifest.json',
98  'resource' => 'manifest.json',
99  'walled' => false,
100  ],
101  'admin:plugin_settings' => [
102  // needs to be registered before global admin route
103  'path' => '/admin/plugin_settings/{plugin_id}',
104  'resource' => 'admin/plugin_settings',
105  'middleware' => [
106  \Elgg\Router\Middleware\AdminGatekeeper::class,
107  ],
108  ],
109  'admin' => [
110  'path' => '/admin/{segments?}',
111  'resource' => 'admin',
112  'requirements' => [
113  'segments' => '.+',
114  ],
115  'middleware' => [
116  \Elgg\Router\Middleware\AdminGatekeeper::class,
117  ],
118  ],
119  'admin_plugin_text_file' => [
120  'path' => '/admin_plugin_text_file/{plugin_id}/{filename}',
121  'resource' => 'admin/plugin_text_file',
122  'middleware' => [
123  \Elgg\Router\Middleware\AdminGatekeeper::class,
124  ],
125  ],
126  'phpinfo' => [
127  'path' => '/phpinfo',
128  'resource' => 'phpinfo',
129  'middleware' => [
130  \Elgg\Router\Middleware\AdminGatekeeper::class,
131  ],
132  ],
133  'cron' => [
134  'path' => '/cron/{segments}',
135  'controller' => \Elgg\Controllers\Cron::class,
136  'requirements' => [
137  'segments' => '.+',
138  ],
139  'walled' => false,
140  ],
141  'serve-icon' => [
142  'path' => '/serve-icon/{guid}/{size}',
143  'controller' => \Elgg\Controllers\ServeIcon::class,
144  'walled' => false,
145  ],
146  'livesearch' => [
147  'path' => '/livesearch/{match_on?}',
148  'resource' => 'livesearch',
149  'requirements' => [
150  'match_on' => '\w+',
151  ],
152  ],
153  'security.txt' => [
154  'path' => '/security.txt',
155  'controller' => \Elgg\Controllers\SecurityTxt::class,
156  'walled' => false,
157  ],
158  'settings:index' => [
159  'path' => '/settings',
160  'resource' => 'settings/account',
161  'middleware' => [
162  \Elgg\Router\Middleware\Gatekeeper::class,
163  ],
164  ],
165  'settings:account' => [
166  'path' => '/settings/user/{username?}',
167  'resource' => 'settings/account',
168  'middleware' => [
169  \Elgg\Router\Middleware\Gatekeeper::class,
170  ],
171  'detect_page_owner' => true,
172  ],
173  'settings:notifications' => [
174  'path' => '/settings/notifications/{username}',
175  'resource' => 'settings/notifications',
176  'middleware' => [
177  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
178  ],
179  'detect_page_owner' => true,
180  ],
181  'settings:notifications:users' => [
182  'path' => '/settings/notifications/users/{username}',
183  'resource' => 'settings/notifications/users',
184  'middleware' => [
185  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
186  ],
187  'detect_page_owner' => true,
188  ],
189  'settings:statistics' => [
190  'path' => '/settings/statistics/{username?}',
191  'resource' => 'settings/statistics',
192  'middleware' => [
193  \Elgg\Router\Middleware\Gatekeeper::class,
194  ],
195  'detect_page_owner' => true,
196  ],
197  'settings:tools' => [
198  'path' => '/settings/plugins/{username}/{plugin_id}',
199  'resource' => 'settings/tools',
200  'middleware' => [
201  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
202  ],
203  'detect_page_owner' => true,
204  ],
205  'widgets:add_panel' => [
206  // @todo this route could also be a ajax view or have some parameters (context/container) in the route definition
207  'path' => '/widgets/add_panel',
208  'resource' => 'widgets/add_panel',
209  'middleware' => [
210  \Elgg\Router\Middleware\Gatekeeper::class,
211  ],
212  ],
213  'view:object:comment' => [
214  'path' => '/comment/view/{guid}/{container_guid?}',
215  'controller' => \Elgg\Controllers\CommentEntityRedirector::class,
216  ],
217  'view:user' => [
218  'path' => '/user/{guid}',
219  'resource' => 'user/view',
220  ],
221  'delete:user' => [
222  'path' => '/user/delete/{guid}',
223  'resource' => 'user/delete',
224  'middleware' => [
225  \Elgg\Router\Middleware\AdminGatekeeper::class,
226  ],
227  ],
228  'edit:user:avatar' => [
229  'path' => '/avatar/edit/{username}',
230  'resource' => 'avatar/edit',
231  'middleware' => [
232  \Elgg\Router\Middleware\UserPageOwnerCanEditGatekeeper::class,
233  ],
234  ],
235  'notifications:mute' => [
236  'path' => 'notifications/mute/{entity_guid}/{recipient_guid}',
237  'resource' => 'notifications/mute',
238  'requirements' => [
239  'entity_guid' => '\d+',
240  'recipient_guid' => '\d+',
241  ],
242  'middleware' => [
243  \Elgg\Router\Middleware\SignedRequestGatekeeper::class,
244  ],
245  'walled' => false,
246  ],
247 ];