##// END OF EJS Templates
application: not use config.scan(), and replace all @add_view decorator into a explicit add_view call for faster app start.
milka -
r4610:1c249462 stable
parent child Browse files
Show More
@@ -527,6 +527,14 b' class jsonrpc_deprecated_method(object):'
527 527 return result
528 528
529 529
530 def add_api_methods(config):
531 from rhodecode.api.views import (
532 deprecated_api, gist_api, pull_request_api, repo_api, repo_group_api,
533 server_api, search_api, testing_api, user_api, user_group_api)
534
535 config.scan('rhodecode.api.views')
536
537
530 538 def includeme(config):
531 539 plugin_module = 'rhodecode.api'
532 540 plugin_settings = get_plugin_settings(
@@ -549,7 +557,8 b' def includeme(config):'
549 557 config.add_route(
550 558 'apiv2', plugin_settings.get('url', DEFAULT_URL), jsonrpc_call=True)
551 559
552 config.scan(plugin_module, ignore='rhodecode.api.tests')
553 560 # register some exception handling view
554 561 config.add_view(exception_view, context=JSONRPCBaseError)
555 562 config.add_notfound_view(exception_view, jsonrpc_method_not_found=True)
563
564 add_api_methods(config)
@@ -144,3 +144,5 b' def includeme(config):'
144 144 labs_active = str2bool(settings.get('labs_settings_active', False))
145 145 navigation_registry_instance = NavigationRegistry(labs_active=labs_active)
146 146 config.registry.registerUtility(navigation_registry_instance)
147 log.debug('Created new nabigation instance, %s', navigation_registry_instance)
148
This diff has been collapsed as it changes many lines, (619 lines changed) Show them Hide them
@@ -26,441 +26,1030 b' def admin_routes(config):'
26 26 """
27 27 Admin prefixed routes
28 28 """
29 from rhodecode.apps.admin.views.audit_logs import AdminAuditLogsView
30 from rhodecode.apps.admin.views.defaults import AdminDefaultSettingsView
31 from rhodecode.apps.admin.views.exception_tracker import ExceptionsTrackerView
32 from rhodecode.apps.admin.views.main_views import AdminMainView
33 from rhodecode.apps.admin.views.open_source_licenses import OpenSourceLicensesAdminSettingsView
34 from rhodecode.apps.admin.views.permissions import AdminPermissionsView
35 from rhodecode.apps.admin.views.process_management import AdminProcessManagementView
36 from rhodecode.apps.admin.views.repo_groups import AdminRepoGroupsView
37 from rhodecode.apps.admin.views.repositories import AdminReposView
38 from rhodecode.apps.admin.views.sessions import AdminSessionSettingsView
39 from rhodecode.apps.admin.views.settings import AdminSettingsView
40 from rhodecode.apps.admin.views.svn_config import AdminSvnConfigView
41 from rhodecode.apps.admin.views.system_info import AdminSystemInfoSettingsView
42 from rhodecode.apps.admin.views.user_groups import AdminUserGroupsView
43 from rhodecode.apps.admin.views.users import AdminUsersView, UsersView
44
29 45 config.add_route(
30 46 name='admin_audit_logs',
31 47 pattern='/audit_logs')
48 config.add_view(
49 AdminAuditLogsView,
50 attr='admin_audit_logs',
51 route_name='admin_audit_logs', request_method='GET',
52 renderer='rhodecode:templates/admin/admin_audit_logs.mako')
32 53
33 54 config.add_route(
34 55 name='admin_audit_log_entry',
35 56 pattern='/audit_logs/{audit_log_id}')
36
37 config.add_route(
38 name='pull_requests_global_0', # backward compat
39 pattern='/pull_requests/{pull_request_id:\d+}')
40 config.add_route(
41 name='pull_requests_global_1', # backward compat
42 pattern='/pull-requests/{pull_request_id:\d+}')
43 config.add_route(
44 name='pull_requests_global',
45 pattern='/pull-request/{pull_request_id:\d+}')
57 config.add_view(
58 AdminAuditLogsView,
59 attr='admin_audit_log_entry',
60 route_name='admin_audit_log_entry', request_method='GET',
61 renderer='rhodecode:templates/admin/admin_audit_log_entry.mako')
46 62
47 63 config.add_route(
48 64 name='admin_settings_open_source',
49 65 pattern='/settings/open_source')
66 config.add_view(
67 OpenSourceLicensesAdminSettingsView,
68 attr='open_source_licenses',
69 route_name='admin_settings_open_source', request_method='GET',
70 renderer='rhodecode:templates/admin/settings/settings.mako')
71
50 72 config.add_route(
51 73 name='admin_settings_vcs_svn_generate_cfg',
52 74 pattern='/settings/vcs/svn_generate_cfg')
75 config.add_view(
76 AdminSvnConfigView,
77 attr='vcs_svn_generate_config',
78 route_name='admin_settings_vcs_svn_generate_cfg',
79 request_method='POST', renderer='json')
53 80
54 81 config.add_route(
55 82 name='admin_settings_system',
56 83 pattern='/settings/system')
84 config.add_view(
85 AdminSystemInfoSettingsView,
86 attr='settings_system_info',
87 route_name='admin_settings_system', request_method='GET',
88 renderer='rhodecode:templates/admin/settings/settings.mako')
89
57 90 config.add_route(
58 91 name='admin_settings_system_update',
59 92 pattern='/settings/system/updates')
93 config.add_view(
94 AdminSystemInfoSettingsView,
95 attr='settings_system_info_check_update',
96 route_name='admin_settings_system_update', request_method='GET',
97 renderer='rhodecode:templates/admin/settings/settings_system_update.mako')
60 98
61 99 config.add_route(
62 100 name='admin_settings_exception_tracker',
63 101 pattern='/settings/exceptions')
102 config.add_view(
103 ExceptionsTrackerView,
104 attr='browse_exceptions',
105 route_name='admin_settings_exception_tracker', request_method='GET',
106 renderer='rhodecode:templates/admin/settings/settings.mako')
107
64 108 config.add_route(
65 109 name='admin_settings_exception_tracker_delete_all',
66 pattern='/settings/exceptions/delete')
110 pattern='/settings/exceptions_delete_all')
111 config.add_view(
112 ExceptionsTrackerView,
113 attr='exception_delete_all',
114 route_name='admin_settings_exception_tracker_delete_all', request_method='POST',
115 renderer='rhodecode:templates/admin/settings/settings.mako')
116
67 117 config.add_route(
68 118 name='admin_settings_exception_tracker_show',
69 119 pattern='/settings/exceptions/{exception_id}')
120 config.add_view(
121 ExceptionsTrackerView,
122 attr='exception_show',
123 route_name='admin_settings_exception_tracker_show', request_method='GET',
124 renderer='rhodecode:templates/admin/settings/settings.mako')
125
70 126 config.add_route(
71 127 name='admin_settings_exception_tracker_delete',
72 128 pattern='/settings/exceptions/{exception_id}/delete')
129 config.add_view(
130 ExceptionsTrackerView,
131 attr='exception_delete',
132 route_name='admin_settings_exception_tracker_delete', request_method='POST',
133 renderer='rhodecode:templates/admin/settings/settings.mako')
73 134
74 135 config.add_route(
75 136 name='admin_settings_sessions',
76 137 pattern='/settings/sessions')
138 config.add_view(
139 AdminSessionSettingsView,
140 attr='settings_sessions',
141 route_name='admin_settings_sessions', request_method='GET',
142 renderer='rhodecode:templates/admin/settings/settings.mako')
143
77 144 config.add_route(
78 145 name='admin_settings_sessions_cleanup',
79 146 pattern='/settings/sessions/cleanup')
147 config.add_view(
148 AdminSessionSettingsView,
149 attr='settings_sessions_cleanup',
150 route_name='admin_settings_sessions_cleanup', request_method='POST')
80 151
81 152 config.add_route(
82 153 name='admin_settings_process_management',
83 154 pattern='/settings/process_management')
155 config.add_view(
156 AdminProcessManagementView,
157 attr='process_management',
158 route_name='admin_settings_process_management', request_method='GET',
159 renderer='rhodecode:templates/admin/settings/settings.mako')
160
84 161 config.add_route(
85 162 name='admin_settings_process_management_data',
86 163 pattern='/settings/process_management/data')
164 config.add_view(
165 AdminProcessManagementView,
166 attr='process_management_data',
167 route_name='admin_settings_process_management_data', request_method='GET',
168 renderer='rhodecode:templates/admin/settings/settings_process_management_data.mako')
169
87 170 config.add_route(
88 171 name='admin_settings_process_management_signal',
89 172 pattern='/settings/process_management/signal')
173 config.add_view(
174 AdminProcessManagementView,
175 attr='process_management_signal',
176 route_name='admin_settings_process_management_signal',
177 request_method='POST', renderer='json_ext')
178
90 179 config.add_route(
91 180 name='admin_settings_process_management_master_signal',
92 181 pattern='/settings/process_management/master_signal')
182 config.add_view(
183 AdminProcessManagementView,
184 attr='process_management_master_signal',
185 route_name='admin_settings_process_management_master_signal',
186 request_method='POST', renderer='json_ext')
93 187
94 188 # default settings
95 189 config.add_route(
96 190 name='admin_defaults_repositories',
97 191 pattern='/defaults/repositories')
192 config.add_view(
193 AdminDefaultSettingsView,
194 attr='defaults_repository_show',
195 route_name='admin_defaults_repositories', request_method='GET',
196 renderer='rhodecode:templates/admin/defaults/defaults.mako')
197
98 198 config.add_route(
99 199 name='admin_defaults_repositories_update',
100 200 pattern='/defaults/repositories/update')
201 config.add_view(
202 AdminDefaultSettingsView,
203 attr='defaults_repository_update',
204 route_name='admin_defaults_repositories_update', request_method='POST',
205 renderer='rhodecode:templates/admin/defaults/defaults.mako')
101 206
102 207 # admin settings
103 208
104 209 config.add_route(
105 210 name='admin_settings',
106 211 pattern='/settings')
212 config.add_view(
213 AdminSettingsView,
214 attr='settings_global',
215 route_name='admin_settings', request_method='GET',
216 renderer='rhodecode:templates/admin/settings/settings.mako')
217
107 218 config.add_route(
108 219 name='admin_settings_update',
109 220 pattern='/settings/update')
221 config.add_view(
222 AdminSettingsView,
223 attr='settings_global_update',
224 route_name='admin_settings_update', request_method='POST',
225 renderer='rhodecode:templates/admin/settings/settings.mako')
110 226
111 227 config.add_route(
112 228 name='admin_settings_global',
113 229 pattern='/settings/global')
230 config.add_view(
231 AdminSettingsView,
232 attr='settings_global',
233 route_name='admin_settings_global', request_method='GET',
234 renderer='rhodecode:templates/admin/settings/settings.mako')
235
114 236 config.add_route(
115 237 name='admin_settings_global_update',
116 238 pattern='/settings/global/update')
239 config.add_view(
240 AdminSettingsView,
241 attr='settings_global_update',
242 route_name='admin_settings_global_update', request_method='POST',
243 renderer='rhodecode:templates/admin/settings/settings.mako')
117 244
118 245 config.add_route(
119 246 name='admin_settings_vcs',
120 247 pattern='/settings/vcs')
248 config.add_view(
249 AdminSettingsView,
250 attr='settings_vcs',
251 route_name='admin_settings_vcs', request_method='GET',
252 renderer='rhodecode:templates/admin/settings/settings.mako')
253
121 254 config.add_route(
122 255 name='admin_settings_vcs_update',
123 256 pattern='/settings/vcs/update')
257 config.add_view(
258 AdminSettingsView,
259 attr='settings_vcs_update',
260 route_name='admin_settings_vcs_update', request_method='POST',
261 renderer='rhodecode:templates/admin/settings/settings.mako')
262
124 263 config.add_route(
125 264 name='admin_settings_vcs_svn_pattern_delete',
126 265 pattern='/settings/vcs/svn_pattern_delete')
266 config.add_view(
267 AdminSettingsView,
268 attr='settings_vcs_delete_svn_pattern',
269 route_name='admin_settings_vcs_svn_pattern_delete', request_method='POST',
270 renderer='json_ext', xhr=True)
127 271
128 272 config.add_route(
129 273 name='admin_settings_mapping',
130 274 pattern='/settings/mapping')
275 config.add_view(
276 AdminSettingsView,
277 attr='settings_mapping',
278 route_name='admin_settings_mapping', request_method='GET',
279 renderer='rhodecode:templates/admin/settings/settings.mako')
280
131 281 config.add_route(
132 282 name='admin_settings_mapping_update',
133 283 pattern='/settings/mapping/update')
284 config.add_view(
285 AdminSettingsView,
286 attr='settings_mapping_update',
287 route_name='admin_settings_mapping_update', request_method='POST',
288 renderer='rhodecode:templates/admin/settings/settings.mako')
134 289
135 290 config.add_route(
136 291 name='admin_settings_visual',
137 292 pattern='/settings/visual')
293 config.add_view(
294 AdminSettingsView,
295 attr='settings_visual',
296 route_name='admin_settings_visual', request_method='GET',
297 renderer='rhodecode:templates/admin/settings/settings.mako')
298
138 299 config.add_route(
139 300 name='admin_settings_visual_update',
140 301 pattern='/settings/visual/update')
302 config.add_view(
303 AdminSettingsView,
304 attr='settings_visual_update',
305 route_name='admin_settings_visual_update', request_method='POST',
306 renderer='rhodecode:templates/admin/settings/settings.mako')
141 307
142 308 config.add_route(
143 309 name='admin_settings_issuetracker',
144 310 pattern='/settings/issue-tracker')
311 config.add_view(
312 AdminSettingsView,
313 attr='settings_issuetracker',
314 route_name='admin_settings_issuetracker', request_method='GET',
315 renderer='rhodecode:templates/admin/settings/settings.mako')
316
145 317 config.add_route(
146 318 name='admin_settings_issuetracker_update',
147 319 pattern='/settings/issue-tracker/update')
320 config.add_view(
321 AdminSettingsView,
322 attr='settings_issuetracker_update',
323 route_name='admin_settings_issuetracker_update', request_method='POST',
324 renderer='rhodecode:templates/admin/settings/settings.mako')
325
148 326 config.add_route(
149 327 name='admin_settings_issuetracker_test',
150 328 pattern='/settings/issue-tracker/test')
329 config.add_view(
330 AdminSettingsView,
331 attr='settings_issuetracker_test',
332 route_name='admin_settings_issuetracker_test', request_method='POST',
333 renderer='string', xhr=True)
334
151 335 config.add_route(
152 336 name='admin_settings_issuetracker_delete',
153 337 pattern='/settings/issue-tracker/delete')
338 config.add_view(
339 AdminSettingsView,
340 attr='settings_issuetracker_delete',
341 route_name='admin_settings_issuetracker_delete', request_method='POST',
342 renderer='json_ext', xhr=True)
154 343
155 344 config.add_route(
156 345 name='admin_settings_email',
157 346 pattern='/settings/email')
347 config.add_view(
348 AdminSettingsView,
349 attr='settings_email',
350 route_name='admin_settings_email', request_method='GET',
351 renderer='rhodecode:templates/admin/settings/settings.mako')
352
158 353 config.add_route(
159 354 name='admin_settings_email_update',
160 355 pattern='/settings/email/update')
356 config.add_view(
357 AdminSettingsView,
358 attr='settings_email_update',
359 route_name='admin_settings_email_update', request_method='POST',
360 renderer='rhodecode:templates/admin/settings/settings.mako')
161 361
162 362 config.add_route(
163 363 name='admin_settings_hooks',
164 364 pattern='/settings/hooks')
365 config.add_view(
366 AdminSettingsView,
367 attr='settings_hooks',
368 route_name='admin_settings_hooks', request_method='GET',
369 renderer='rhodecode:templates/admin/settings/settings.mako')
370
165 371 config.add_route(
166 372 name='admin_settings_hooks_update',
167 373 pattern='/settings/hooks/update')
374 config.add_view(
375 AdminSettingsView,
376 attr='settings_hooks_update',
377 route_name='admin_settings_hooks_update', request_method='POST',
378 renderer='rhodecode:templates/admin/settings/settings.mako')
379
168 380 config.add_route(
169 381 name='admin_settings_hooks_delete',
170 382 pattern='/settings/hooks/delete')
383 config.add_view(
384 AdminSettingsView,
385 attr='settings_hooks_update',
386 route_name='admin_settings_hooks_delete', request_method='POST',
387 renderer='rhodecode:templates/admin/settings/settings.mako')
171 388
172 389 config.add_route(
173 390 name='admin_settings_search',
174 391 pattern='/settings/search')
392 config.add_view(
393 AdminSettingsView,
394 attr='settings_search',
395 route_name='admin_settings_search', request_method='GET',
396 renderer='rhodecode:templates/admin/settings/settings.mako')
175 397
176 398 config.add_route(
177 399 name='admin_settings_labs',
178 400 pattern='/settings/labs')
401 config.add_view(
402 AdminSettingsView,
403 attr='settings_labs',
404 route_name='admin_settings_labs', request_method='GET',
405 renderer='rhodecode:templates/admin/settings/settings.mako')
406
179 407 config.add_route(
180 408 name='admin_settings_labs_update',
181 409 pattern='/settings/labs/update')
410 config.add_view(
411 AdminSettingsView,
412 attr='settings_labs_update',
413 route_name='admin_settings_labs_update', request_method='POST',
414 renderer='rhodecode:templates/admin/settings/settings.mako')
182 415
183 416 # Automation EE feature
184 417 config.add_route(
185 418 'admin_settings_automation',
186 419 pattern=ADMIN_PREFIX + '/settings/automation')
420 config.add_view(
421 AdminSettingsView,
422 attr='settings_automation',
423 route_name='admin_settings_automation', request_method='GET',
424 renderer='rhodecode:templates/admin/settings/settings.mako')
187 425
188 426 # global permissions
189 427
190 428 config.add_route(
191 429 name='admin_permissions_application',
192 430 pattern='/permissions/application')
431 config.add_view(
432 AdminPermissionsView,
433 attr='permissions_application',
434 route_name='admin_permissions_application', request_method='GET',
435 renderer='rhodecode:templates/admin/permissions/permissions.mako')
436
193 437 config.add_route(
194 438 name='admin_permissions_application_update',
195 439 pattern='/permissions/application/update')
440 config.add_view(
441 AdminPermissionsView,
442 attr='permissions_application_update',
443 route_name='admin_permissions_application_update', request_method='POST',
444 renderer='rhodecode:templates/admin/permissions/permissions.mako')
196 445
197 446 config.add_route(
198 447 name='admin_permissions_global',
199 448 pattern='/permissions/global')
449 config.add_view(
450 AdminPermissionsView,
451 attr='permissions_global',
452 route_name='admin_permissions_global', request_method='GET',
453 renderer='rhodecode:templates/admin/permissions/permissions.mako')
454
200 455 config.add_route(
201 456 name='admin_permissions_global_update',
202 457 pattern='/permissions/global/update')
458 config.add_view(
459 AdminPermissionsView,
460 attr='permissions_global_update',
461 route_name='admin_permissions_global_update', request_method='POST',
462 renderer='rhodecode:templates/admin/permissions/permissions.mako')
203 463
204 464 config.add_route(
205 465 name='admin_permissions_object',
206 466 pattern='/permissions/object')
467 config.add_view(
468 AdminPermissionsView,
469 attr='permissions_objects',
470 route_name='admin_permissions_object', request_method='GET',
471 renderer='rhodecode:templates/admin/permissions/permissions.mako')
472
207 473 config.add_route(
208 474 name='admin_permissions_object_update',
209 475 pattern='/permissions/object/update')
476 config.add_view(
477 AdminPermissionsView,
478 attr='permissions_objects_update',
479 route_name='admin_permissions_object_update', request_method='POST',
480 renderer='rhodecode:templates/admin/permissions/permissions.mako')
210 481
211 482 # Branch perms EE feature
212 483 config.add_route(
213 484 name='admin_permissions_branch',
214 485 pattern='/permissions/branch')
486 config.add_view(
487 AdminPermissionsView,
488 attr='permissions_branch',
489 route_name='admin_permissions_branch', request_method='GET',
490 renderer='rhodecode:templates/admin/permissions/permissions.mako')
215 491
216 492 config.add_route(
217 493 name='admin_permissions_ips',
218 494 pattern='/permissions/ips')
495 config.add_view(
496 AdminPermissionsView,
497 attr='permissions_ips',
498 route_name='admin_permissions_ips', request_method='GET',
499 renderer='rhodecode:templates/admin/permissions/permissions.mako')
219 500
220 501 config.add_route(
221 502 name='admin_permissions_overview',
222 503 pattern='/permissions/overview')
504 config.add_view(
505 AdminPermissionsView,
506 attr='permissions_overview',
507 route_name='admin_permissions_overview', request_method='GET',
508 renderer='rhodecode:templates/admin/permissions/permissions.mako')
223 509
224 510 config.add_route(
225 511 name='admin_permissions_auth_token_access',
226 512 pattern='/permissions/auth_token_access')
513 config.add_view(
514 AdminPermissionsView,
515 attr='auth_token_access',
516 route_name='admin_permissions_auth_token_access', request_method='GET',
517 renderer='rhodecode:templates/admin/permissions/permissions.mako')
227 518
228 519 config.add_route(
229 520 name='admin_permissions_ssh_keys',
230 521 pattern='/permissions/ssh_keys')
522 config.add_view(
523 AdminPermissionsView,
524 attr='ssh_keys',
525 route_name='admin_permissions_ssh_keys', request_method='GET',
526 renderer='rhodecode:templates/admin/permissions/permissions.mako')
527
231 528 config.add_route(
232 529 name='admin_permissions_ssh_keys_data',
233 530 pattern='/permissions/ssh_keys/data')
531 config.add_view(
532 AdminPermissionsView,
533 attr='ssh_keys_data',
534 route_name='admin_permissions_ssh_keys_data', request_method='GET',
535 renderer='json_ext', xhr=True)
536
234 537 config.add_route(
235 538 name='admin_permissions_ssh_keys_update',
236 539 pattern='/permissions/ssh_keys/update')
540 config.add_view(
541 AdminPermissionsView,
542 attr='ssh_keys_update',
543 route_name='admin_permissions_ssh_keys_update', request_method='POST',
544 renderer='rhodecode:templates/admin/permissions/permissions.mako')
237 545
238 546 # users admin
239 547 config.add_route(
240 548 name='users',
241 549 pattern='/users')
550 config.add_view(
551 AdminUsersView,
552 attr='users_list',
553 route_name='users', request_method='GET',
554 renderer='rhodecode:templates/admin/users/users.mako')
242 555
243 556 config.add_route(
244 557 name='users_data',
245 558 pattern='/users_data')
559 config.add_view(
560 AdminUsersView,
561 attr='users_list_data',
562 # renderer defined below
563 route_name='users_data', request_method='GET',
564 renderer='json_ext', xhr=True)
246 565
247 566 config.add_route(
248 567 name='users_create',
249 568 pattern='/users/create')
569 config.add_view(
570 AdminUsersView,
571 attr='users_create',
572 route_name='users_create', request_method='POST',
573 renderer='rhodecode:templates/admin/users/user_add.mako')
250 574
251 575 config.add_route(
252 576 name='users_new',
253 577 pattern='/users/new')
578 config.add_view(
579 AdminUsersView,
580 attr='users_new',
581 route_name='users_new', request_method='GET',
582 renderer='rhodecode:templates/admin/users/user_add.mako')
254 583
255 584 # user management
256 585 config.add_route(
257 586 name='user_edit',
258 587 pattern='/users/{user_id:\d+}/edit',
259 588 user_route=True)
589 config.add_view(
590 UsersView,
591 attr='user_edit',
592 route_name='user_edit', request_method='GET',
593 renderer='rhodecode:templates/admin/users/user_edit.mako')
594
260 595 config.add_route(
261 596 name='user_edit_advanced',
262 597 pattern='/users/{user_id:\d+}/edit/advanced',
263 598 user_route=True)
599 config.add_view(
600 UsersView,
601 attr='user_edit_advanced',
602 route_name='user_edit_advanced', request_method='GET',
603 renderer='rhodecode:templates/admin/users/user_edit.mako')
604
264 605 config.add_route(
265 606 name='user_edit_global_perms',
266 607 pattern='/users/{user_id:\d+}/edit/global_permissions',
267 608 user_route=True)
609 config.add_view(
610 UsersView,
611 attr='user_edit_global_perms',
612 route_name='user_edit_global_perms', request_method='GET',
613 renderer='rhodecode:templates/admin/users/user_edit.mako')
614
268 615 config.add_route(
269 616 name='user_edit_global_perms_update',
270 617 pattern='/users/{user_id:\d+}/edit/global_permissions/update',
271 618 user_route=True)
619 config.add_view(
620 UsersView,
621 attr='user_edit_global_perms_update',
622 route_name='user_edit_global_perms_update', request_method='POST',
623 renderer='rhodecode:templates/admin/users/user_edit.mako')
624
272 625 config.add_route(
273 626 name='user_update',
274 627 pattern='/users/{user_id:\d+}/update',
275 628 user_route=True)
629 config.add_view(
630 UsersView,
631 attr='user_update',
632 route_name='user_update', request_method='POST',
633 renderer='rhodecode:templates/admin/users/user_edit.mako')
634
276 635 config.add_route(
277 636 name='user_delete',
278 637 pattern='/users/{user_id:\d+}/delete',
279 638 user_route=True)
639 config.add_view(
640 UsersView,
641 attr='user_delete',
642 route_name='user_delete', request_method='POST',
643 renderer='rhodecode:templates/admin/users/user_edit.mako')
644
280 645 config.add_route(
281 646 name='user_enable_force_password_reset',
282 647 pattern='/users/{user_id:\d+}/password_reset_enable',
283 648 user_route=True)
649 config.add_view(
650 UsersView,
651 attr='user_enable_force_password_reset',
652 route_name='user_enable_force_password_reset', request_method='POST',
653 renderer='rhodecode:templates/admin/users/user_edit.mako')
654
284 655 config.add_route(
285 656 name='user_disable_force_password_reset',
286 657 pattern='/users/{user_id:\d+}/password_reset_disable',
287 658 user_route=True)
659 config.add_view(
660 UsersView,
661 attr='user_disable_force_password_reset',
662 route_name='user_disable_force_password_reset', request_method='POST',
663 renderer='rhodecode:templates/admin/users/user_edit.mako')
664
288 665 config.add_route(
289 666 name='user_create_personal_repo_group',
290 667 pattern='/users/{user_id:\d+}/create_repo_group',
291 668 user_route=True)
669 config.add_view(
670 UsersView,
671 attr='user_create_personal_repo_group',
672 route_name='user_create_personal_repo_group', request_method='POST',
673 renderer='rhodecode:templates/admin/users/user_edit.mako')
292 674
293 675 # user notice
294 676 config.add_route(
295 677 name='user_notice_dismiss',
296 678 pattern='/users/{user_id:\d+}/notice_dismiss',
297 679 user_route=True)
680 config.add_view(
681 UsersView,
682 attr='user_notice_dismiss',
683 route_name='user_notice_dismiss', request_method='POST',
684 renderer='json_ext', xhr=True)
298 685
299 686 # user auth tokens
300 687 config.add_route(
301 688 name='edit_user_auth_tokens',
302 689 pattern='/users/{user_id:\d+}/edit/auth_tokens',
303 690 user_route=True)
691 config.add_view(
692 UsersView,
693 attr='auth_tokens',
694 route_name='edit_user_auth_tokens', request_method='GET',
695 renderer='rhodecode:templates/admin/users/user_edit.mako')
696
304 697 config.add_route(
305 698 name='edit_user_auth_tokens_view',
306 699 pattern='/users/{user_id:\d+}/edit/auth_tokens/view',
307 700 user_route=True)
701 config.add_view(
702 UsersView,
703 attr='auth_tokens_view',
704 route_name='edit_user_auth_tokens_view', request_method='POST',
705 renderer='json_ext', xhr=True)
706
308 707 config.add_route(
309 708 name='edit_user_auth_tokens_add',
310 709 pattern='/users/{user_id:\d+}/edit/auth_tokens/new',
311 710 user_route=True)
711 config.add_view(
712 UsersView,
713 attr='auth_tokens_add',
714 route_name='edit_user_auth_tokens_add', request_method='POST')
715
312 716 config.add_route(
313 717 name='edit_user_auth_tokens_delete',
314 718 pattern='/users/{user_id:\d+}/edit/auth_tokens/delete',
315 719 user_route=True)
720 config.add_view(
721 UsersView,
722 attr='auth_tokens_delete',
723 route_name='edit_user_auth_tokens_delete', request_method='POST')
316 724
317 725 # user ssh keys
318 726 config.add_route(
319 727 name='edit_user_ssh_keys',
320 728 pattern='/users/{user_id:\d+}/edit/ssh_keys',
321 729 user_route=True)
730 config.add_view(
731 UsersView,
732 attr='ssh_keys',
733 route_name='edit_user_ssh_keys', request_method='GET',
734 renderer='rhodecode:templates/admin/users/user_edit.mako')
735
322 736 config.add_route(
323 737 name='edit_user_ssh_keys_generate_keypair',
324 738 pattern='/users/{user_id:\d+}/edit/ssh_keys/generate',
325 739 user_route=True)
740 config.add_view(
741 UsersView,
742 attr='ssh_keys_generate_keypair',
743 route_name='edit_user_ssh_keys_generate_keypair', request_method='GET',
744 renderer='rhodecode:templates/admin/users/user_edit.mako')
745
326 746 config.add_route(
327 747 name='edit_user_ssh_keys_add',
328 748 pattern='/users/{user_id:\d+}/edit/ssh_keys/new',
329 749 user_route=True)
750 config.add_view(
751 UsersView,
752 attr='ssh_keys_add',
753 route_name='edit_user_ssh_keys_add', request_method='POST')
754
330 755 config.add_route(
331 756 name='edit_user_ssh_keys_delete',
332 757 pattern='/users/{user_id:\d+}/edit/ssh_keys/delete',
333 758 user_route=True)
759 config.add_view(
760 UsersView,
761 attr='ssh_keys_delete',
762 route_name='edit_user_ssh_keys_delete', request_method='POST')
334 763
335 764 # user emails
336 765 config.add_route(
337 766 name='edit_user_emails',
338 767 pattern='/users/{user_id:\d+}/edit/emails',
339 768 user_route=True)
769 config.add_view(
770 UsersView,
771 attr='emails',
772 route_name='edit_user_emails', request_method='GET',
773 renderer='rhodecode:templates/admin/users/user_edit.mako')
774
340 775 config.add_route(
341 776 name='edit_user_emails_add',
342 777 pattern='/users/{user_id:\d+}/edit/emails/new',
343 778 user_route=True)
779 config.add_view(
780 UsersView,
781 attr='emails_add',
782 route_name='edit_user_emails_add', request_method='POST')
783
344 784 config.add_route(
345 785 name='edit_user_emails_delete',
346 786 pattern='/users/{user_id:\d+}/edit/emails/delete',
347 787 user_route=True)
788 config.add_view(
789 UsersView,
790 attr='emails_delete',
791 route_name='edit_user_emails_delete', request_method='POST')
348 792
349 793 # user IPs
350 794 config.add_route(
351 795 name='edit_user_ips',
352 796 pattern='/users/{user_id:\d+}/edit/ips',
353 797 user_route=True)
798 config.add_view(
799 UsersView,
800 attr='ips',
801 route_name='edit_user_ips', request_method='GET',
802 renderer='rhodecode:templates/admin/users/user_edit.mako')
803
354 804 config.add_route(
355 805 name='edit_user_ips_add',
356 806 pattern='/users/{user_id:\d+}/edit/ips/new',
357 807 user_route_with_default=True) # enabled for default user too
808 config.add_view(
809 UsersView,
810 attr='ips_add',
811 route_name='edit_user_ips_add', request_method='POST')
812
358 813 config.add_route(
359 814 name='edit_user_ips_delete',
360 815 pattern='/users/{user_id:\d+}/edit/ips/delete',
361 816 user_route_with_default=True) # enabled for default user too
817 config.add_view(
818 UsersView,
819 attr='ips_delete',
820 route_name='edit_user_ips_delete', request_method='POST')
362 821
363 822 # user perms
364 823 config.add_route(
365 824 name='edit_user_perms_summary',
366 825 pattern='/users/{user_id:\d+}/edit/permissions_summary',
367 826 user_route=True)
827 config.add_view(
828 UsersView,
829 attr='user_perms_summary',
830 route_name='edit_user_perms_summary', request_method='GET',
831 renderer='rhodecode:templates/admin/users/user_edit.mako')
832
368 833 config.add_route(
369 834 name='edit_user_perms_summary_json',
370 835 pattern='/users/{user_id:\d+}/edit/permissions_summary/json',
371 836 user_route=True)
837 config.add_view(
838 UsersView,
839 attr='user_perms_summary_json',
840 route_name='edit_user_perms_summary_json', request_method='GET',
841 renderer='json_ext')
372 842
373 843 # user user groups management
374 844 config.add_route(
375 845 name='edit_user_groups_management',
376 846 pattern='/users/{user_id:\d+}/edit/groups_management',
377 847 user_route=True)
848 config.add_view(
849 UsersView,
850 attr='groups_management',
851 route_name='edit_user_groups_management', request_method='GET',
852 renderer='rhodecode:templates/admin/users/user_edit.mako')
378 853
379 854 config.add_route(
380 855 name='edit_user_groups_management_updates',
381 856 pattern='/users/{user_id:\d+}/edit/edit_user_groups_management/updates',
382 857 user_route=True)
858 config.add_view(
859 UsersView,
860 attr='groups_management_updates',
861 route_name='edit_user_groups_management_updates', request_method='POST')
383 862
384 863 # user audit logs
385 864 config.add_route(
386 865 name='edit_user_audit_logs',
387 866 pattern='/users/{user_id:\d+}/edit/audit', user_route=True)
867 config.add_view(
868 UsersView,
869 attr='user_audit_logs',
870 route_name='edit_user_audit_logs', request_method='GET',
871 renderer='rhodecode:templates/admin/users/user_edit.mako')
388 872
389 873 config.add_route(
390 874 name='edit_user_audit_logs_download',
391 875 pattern='/users/{user_id:\d+}/edit/audit/download', user_route=True)
876 config.add_view(
877 UsersView,
878 attr='user_audit_logs_download',
879 route_name='edit_user_audit_logs_download', request_method='GET',
880 renderer='string')
392 881
393 882 # user caches
394 883 config.add_route(
395 884 name='edit_user_caches',
396 885 pattern='/users/{user_id:\d+}/edit/caches',
397 886 user_route=True)
887 config.add_view(
888 UsersView,
889 attr='user_caches',
890 route_name='edit_user_caches', request_method='GET',
891 renderer='rhodecode:templates/admin/users/user_edit.mako')
892
398 893 config.add_route(
399 894 name='edit_user_caches_update',
400 895 pattern='/users/{user_id:\d+}/edit/caches/update',
401 896 user_route=True)
897 config.add_view(
898 UsersView,
899 attr='user_caches_update',
900 route_name='edit_user_caches_update', request_method='POST')
402 901
403 902 # user-groups admin
404 903 config.add_route(
405 904 name='user_groups',
406 905 pattern='/user_groups')
906 config.add_view(
907 AdminUserGroupsView,
908 attr='user_groups_list',
909 route_name='user_groups', request_method='GET',
910 renderer='rhodecode:templates/admin/user_groups/user_groups.mako')
407 911
408 912 config.add_route(
409 913 name='user_groups_data',
410 914 pattern='/user_groups_data')
915 config.add_view(
916 AdminUserGroupsView,
917 attr='user_groups_list_data',
918 route_name='user_groups_data', request_method='GET',
919 renderer='json_ext', xhr=True)
411 920
412 921 config.add_route(
413 922 name='user_groups_new',
414 923 pattern='/user_groups/new')
924 config.add_view(
925 AdminUserGroupsView,
926 attr='user_groups_new',
927 route_name='user_groups_new', request_method='GET',
928 renderer='rhodecode:templates/admin/user_groups/user_group_add.mako')
415 929
416 930 config.add_route(
417 931 name='user_groups_create',
418 932 pattern='/user_groups/create')
933 config.add_view(
934 AdminUserGroupsView,
935 attr='user_groups_create',
936 route_name='user_groups_create', request_method='POST',
937 renderer='rhodecode:templates/admin/user_groups/user_group_add.mako')
419 938
420 939 # repos admin
421 940 config.add_route(
422 941 name='repos',
423 942 pattern='/repos')
943 config.add_view(
944 AdminReposView,
945 attr='repository_list',
946 route_name='repos', request_method='GET',
947 renderer='rhodecode:templates/admin/repos/repos.mako')
424 948
425 949 config.add_route(
426 950 name='repos_data',
427 951 pattern='/repos_data')
952 config.add_view(
953 AdminReposView,
954 attr='repository_list_data',
955 route_name='repos_data', request_method='GET',
956 renderer='json_ext', xhr=True)
428 957
429 958 config.add_route(
430 959 name='repo_new',
431 960 pattern='/repos/new')
961 config.add_view(
962 AdminReposView,
963 attr='repository_new',
964 route_name='repo_new', request_method='GET',
965 renderer='rhodecode:templates/admin/repos/repo_add.mako')
432 966
433 967 config.add_route(
434 968 name='repo_create',
435 969 pattern='/repos/create')
970 config.add_view(
971 AdminReposView,
972 attr='repository_create',
973 route_name='repo_create', request_method='POST',
974 renderer='rhodecode:templates/admin/repos/repos.mako')
436 975
437 976 # repo groups admin
438 977 config.add_route(
439 978 name='repo_groups',
440 979 pattern='/repo_groups')
980 config.add_view(
981 AdminRepoGroupsView,
982 attr='repo_group_list',
983 route_name='repo_groups', request_method='GET',
984 renderer='rhodecode:templates/admin/repo_groups/repo_groups.mako')
441 985
442 986 config.add_route(
443 987 name='repo_groups_data',
444 988 pattern='/repo_groups_data')
989 config.add_view(
990 AdminRepoGroupsView,
991 attr='repo_group_list_data',
992 route_name='repo_groups_data', request_method='GET',
993 renderer='json_ext', xhr=True)
445 994
446 995 config.add_route(
447 996 name='repo_group_new',
448 997 pattern='/repo_group/new')
998 config.add_view(
999 AdminRepoGroupsView,
1000 attr='repo_group_new',
1001 route_name='repo_group_new', request_method='GET',
1002 renderer='rhodecode:templates/admin/repo_groups/repo_group_add.mako')
449 1003
450 1004 config.add_route(
451 1005 name='repo_group_create',
452 1006 pattern='/repo_group/create')
1007 config.add_view(
1008 AdminRepoGroupsView,
1009 attr='repo_group_create',
1010 route_name='repo_group_create', request_method='POST',
1011 renderer='rhodecode:templates/admin/repo_groups/repo_group_add.mako')
453 1012
454 1013
455 1014 def includeme(config):
456 1015 from rhodecode.apps._base.navigation import includeme as nav_includeme
1016 from rhodecode.apps.admin.views.main_views import AdminMainView
457 1017
458 1018 # Create admin navigation registry and add it to the pyramid registry.
459 1019 nav_includeme(config)
460 1020
461 1021 # main admin routes
462 config.add_route(name='admin_home', pattern=ADMIN_PREFIX)
463 config.include(admin_routes, route_prefix=ADMIN_PREFIX)
1022 config.add_route(
1023 name='admin_home', pattern=ADMIN_PREFIX)
1024 config.add_view(
1025 AdminMainView,
1026 attr='admin_main',
1027 route_name='admin_home', request_method='GET',
1028 renderer='rhodecode:templates/admin/main.mako')
1029
1030 # pr global redirect
1031 config.add_route(
1032 name='pull_requests_global_0', # backward compat
1033 pattern=ADMIN_PREFIX + '/pull_requests/{pull_request_id:\d+}')
1034 config.add_view(
1035 AdminMainView,
1036 attr='pull_requests',
1037 route_name='pull_requests_global_0', request_method='GET')
464 1038
465 # Scan module for configuration decorators.
466 config.scan('.views', ignore='.tests')
1039 config.add_route(
1040 name='pull_requests_global_1', # backward compat
1041 pattern=ADMIN_PREFIX + '/pull-requests/{pull_request_id:\d+}')
1042 config.add_view(
1043 AdminMainView,
1044 attr='pull_requests',
1045 route_name='pull_requests_global_1', request_method='GET')
1046
1047 config.add_route(
1048 name='pull_requests_global',
1049 pattern=ADMIN_PREFIX + '/pull-request/{pull_request_id:\d+}')
1050 config.add_view(
1051 AdminMainView,
1052 attr='pull_requests',
1053 route_name='pull_requests_global', request_method='GET')
1054
1055 config.include(admin_routes, route_prefix=ADMIN_PREFIX)
@@ -21,7 +21,6 b''
21 21 import logging
22 22
23 23 from pyramid.httpexceptions import HTTPNotFound
24 from pyramid.view import view_config
25 24
26 25 from rhodecode.apps._base import BaseAppView
27 26 from rhodecode.model.db import joinedload, UserLog
@@ -34,15 +33,13 b' log = logging.getLogger(__name__)'
34 33
35 34
36 35 class AdminAuditLogsView(BaseAppView):
36
37 37 def load_default_context(self):
38 38 c = self._get_local_tmpl_context()
39 39 return c
40 40
41 41 @LoginRequired()
42 42 @HasPermissionAllDecorator('hg.admin')
43 @view_config(
44 route_name='admin_audit_logs', request_method='GET',
45 renderer='rhodecode:templates/admin/admin_audit_logs.mako')
46 43 def admin_audit_logs(self):
47 44 c = self.load_default_context()
48 45
@@ -76,9 +73,6 b' class AdminAuditLogsView(BaseAppView):'
76 73
77 74 @LoginRequired()
78 75 @HasPermissionAllDecorator('hg.admin')
79 @view_config(
80 route_name='admin_audit_log_entry', request_method='GET',
81 renderer='rhodecode:templates/admin/admin_audit_log_entry.mako')
82 76 def admin_audit_log_entry(self):
83 77 c = self.load_default_context()
84 78 audit_log_id = self.request.matchdict['audit_log_id']
@@ -23,7 +23,6 b' import logging'
23 23 import formencode
24 24 import formencode.htmlfill
25 25
26 from pyramid.view import view_config
27 26 from pyramid.httpexceptions import HTTPFound
28 27 from pyramid.renderers import render
29 28 from pyramid.response import Response
@@ -41,17 +40,13 b' log = logging.getLogger(__name__)'
41 40
42 41
43 42 class AdminDefaultSettingsView(BaseAppView):
43
44 44 def load_default_context(self):
45 45 c = self._get_local_tmpl_context()
46
47
48 46 return c
49 47
50 48 @LoginRequired()
51 49 @HasPermissionAllDecorator('hg.admin')
52 @view_config(
53 route_name='admin_defaults_repositories', request_method='GET',
54 renderer='rhodecode:templates/admin/defaults/defaults.mako')
55 50 def defaults_repository_show(self):
56 51 c = self.load_default_context()
57 52 c.backends = BACKENDS.keys()
@@ -72,9 +67,6 b' class AdminDefaultSettingsView(BaseAppVi'
72 67 @LoginRequired()
73 68 @HasPermissionAllDecorator('hg.admin')
74 69 @CSRFRequired()
75 @view_config(
76 route_name='admin_defaults_repositories_update', request_method='POST',
77 renderer='rhodecode:templates/admin/defaults/defaults.mako')
78 70 def defaults_repository_update(self):
79 71 _ = self.request.translate
80 72 c = self.load_default_context()
@@ -21,7 +21,6 b' import os'
21 21 import logging
22 22
23 23 from pyramid.httpexceptions import HTTPFound
24 from pyramid.view import view_config
25 24
26 25 from rhodecode.apps._base import BaseAppView
27 26 from rhodecode.apps._base.navigation import navigation_list
@@ -99,9 +98,6 b' class ExceptionsTrackerView(BaseAppView)'
99 98
100 99 @LoginRequired()
101 100 @HasPermissionAllDecorator('hg.admin')
102 @view_config(
103 route_name='admin_settings_exception_tracker', request_method='GET',
104 renderer='rhodecode:templates/admin/settings/settings.mako')
105 101 def browse_exceptions(self):
106 102 _ = self.request.translate
107 103 c = self.load_default_context()
@@ -117,9 +113,6 b' class ExceptionsTrackerView(BaseAppView)'
117 113
118 114 @LoginRequired()
119 115 @HasPermissionAllDecorator('hg.admin')
120 @view_config(
121 route_name='admin_settings_exception_tracker_show', request_method='GET',
122 renderer='rhodecode:templates/admin/settings/settings.mako')
123 116 def exception_show(self):
124 117 _ = self.request.translate
125 118 c = self.load_default_context()
@@ -132,9 +125,6 b' class ExceptionsTrackerView(BaseAppView)'
132 125 @LoginRequired()
133 126 @HasPermissionAllDecorator('hg.admin')
134 127 @CSRFRequired()
135 @view_config(
136 route_name='admin_settings_exception_tracker_delete_all', request_method='POST',
137 renderer='rhodecode:templates/admin/settings/settings.mako')
138 128 def exception_delete_all(self):
139 129 _ = self.request.translate
140 130 c = self.load_default_context()
@@ -159,9 +149,6 b' class ExceptionsTrackerView(BaseAppView)'
159 149 @LoginRequired()
160 150 @HasPermissionAllDecorator('hg.admin')
161 151 @CSRFRequired()
162 @view_config(
163 route_name='admin_settings_exception_tracker_delete', request_method='POST',
164 renderer='rhodecode:templates/admin/settings/settings.mako')
165 152 def exception_delete(self):
166 153 _ = self.request.translate
167 154 c = self.load_default_context()
@@ -21,7 +21,6 b''
21 21 import logging
22 22
23 23 from pyramid.httpexceptions import HTTPFound, HTTPNotFound
24 from pyramid.view import view_config
25 24
26 25 from rhodecode.apps._base import BaseAppView
27 26 from rhodecode.lib import helpers as h
@@ -39,9 +38,6 b' class AdminMainView(BaseAppView):'
39 38
40 39 @LoginRequired()
41 40 @NotAnonymous()
42 @view_config(
43 route_name='admin_home', request_method='GET',
44 renderer='rhodecode:templates/admin/main.mako')
45 41 def admin_main(self):
46 42 c = self.load_default_context()
47 43 c.active = 'admin'
@@ -52,9 +48,6 b' class AdminMainView(BaseAppView):'
52 48 return self._get_template_context(c)
53 49
54 50 @LoginRequired()
55 @view_config(route_name='pull_requests_global_0', request_method='GET')
56 @view_config(route_name='pull_requests_global_1', request_method='GET')
57 @view_config(route_name='pull_requests_global', request_method='GET')
58 51 def pull_requests(self):
59 52 """
60 53 Global redirect for Pull Requests
@@ -21,8 +21,6 b''
21 21 import collections
22 22 import logging
23 23
24 from pyramid.view import view_config
25
26 24 from rhodecode.apps._base import BaseAppView
27 25 from rhodecode.apps._base.navigation import navigation_list
28 26 from rhodecode.lib.auth import (LoginRequired, HasPermissionAllDecorator)
@@ -39,9 +37,6 b' class OpenSourceLicensesAdminSettingsVie'
39 37
40 38 @LoginRequired()
41 39 @HasPermissionAllDecorator('hg.admin')
42 @view_config(
43 route_name='admin_settings_open_source', request_method='GET',
44 renderer='rhodecode:templates/admin/settings/settings.mako')
45 40 def open_source_licenses(self):
46 41 c = self.load_default_context()
47 42 c.active = 'open_source'
@@ -25,7 +25,6 b' import formencode.htmlfill'
25 25 import datetime
26 26 from pyramid.interfaces import IRoutesMapper
27 27
28 from pyramid.view import view_config
29 28 from pyramid.httpexceptions import HTTPFound
30 29 from pyramid.renderers import render
31 30 from pyramid.response import Response
@@ -59,9 +58,6 b' class AdminPermissionsView(BaseAppView, '
59 58
60 59 @LoginRequired()
61 60 @HasPermissionAllDecorator('hg.admin')
62 @view_config(
63 route_name='admin_permissions_application', request_method='GET',
64 renderer='rhodecode:templates/admin/permissions/permissions.mako')
65 61 def permissions_application(self):
66 62 c = self.load_default_context()
67 63 c.active = 'application'
@@ -90,9 +86,6 b' class AdminPermissionsView(BaseAppView, '
90 86 @LoginRequired()
91 87 @HasPermissionAllDecorator('hg.admin')
92 88 @CSRFRequired()
93 @view_config(
94 route_name='admin_permissions_application_update', request_method='POST',
95 renderer='rhodecode:templates/admin/permissions/permissions.mako')
96 89 def permissions_application_update(self):
97 90 _ = self.request.translate
98 91 c = self.load_default_context()
@@ -149,9 +142,6 b' class AdminPermissionsView(BaseAppView, '
149 142
150 143 @LoginRequired()
151 144 @HasPermissionAllDecorator('hg.admin')
152 @view_config(
153 route_name='admin_permissions_object', request_method='GET',
154 renderer='rhodecode:templates/admin/permissions/permissions.mako')
155 145 def permissions_objects(self):
156 146 c = self.load_default_context()
157 147 c.active = 'objects'
@@ -174,9 +164,6 b' class AdminPermissionsView(BaseAppView, '
174 164 @LoginRequired()
175 165 @HasPermissionAllDecorator('hg.admin')
176 166 @CSRFRequired()
177 @view_config(
178 route_name='admin_permissions_object_update', request_method='POST',
179 renderer='rhodecode:templates/admin/permissions/permissions.mako')
180 167 def permissions_objects_update(self):
181 168 _ = self.request.translate
182 169 c = self.load_default_context()
@@ -225,9 +212,6 b' class AdminPermissionsView(BaseAppView, '
225 212
226 213 @LoginRequired()
227 214 @HasPermissionAllDecorator('hg.admin')
228 @view_config(
229 route_name='admin_permissions_branch', request_method='GET',
230 renderer='rhodecode:templates/admin/permissions/permissions.mako')
231 215 def permissions_branch(self):
232 216 c = self.load_default_context()
233 217 c.active = 'branch'
@@ -249,9 +233,6 b' class AdminPermissionsView(BaseAppView, '
249 233
250 234 @LoginRequired()
251 235 @HasPermissionAllDecorator('hg.admin')
252 @view_config(
253 route_name='admin_permissions_global', request_method='GET',
254 renderer='rhodecode:templates/admin/permissions/permissions.mako')
255 236 def permissions_global(self):
256 237 c = self.load_default_context()
257 238 c.active = 'global'
@@ -274,9 +255,6 b' class AdminPermissionsView(BaseAppView, '
274 255 @LoginRequired()
275 256 @HasPermissionAllDecorator('hg.admin')
276 257 @CSRFRequired()
277 @view_config(
278 route_name='admin_permissions_global_update', request_method='POST',
279 renderer='rhodecode:templates/admin/permissions/permissions.mako')
280 258 def permissions_global_update(self):
281 259 _ = self.request.translate
282 260 c = self.load_default_context()
@@ -327,9 +305,6 b' class AdminPermissionsView(BaseAppView, '
327 305
328 306 @LoginRequired()
329 307 @HasPermissionAllDecorator('hg.admin')
330 @view_config(
331 route_name='admin_permissions_ips', request_method='GET',
332 renderer='rhodecode:templates/admin/permissions/permissions.mako')
333 308 def permissions_ips(self):
334 309 c = self.load_default_context()
335 310 c.active = 'ips'
@@ -342,9 +317,6 b' class AdminPermissionsView(BaseAppView, '
342 317
343 318 @LoginRequired()
344 319 @HasPermissionAllDecorator('hg.admin')
345 @view_config(
346 route_name='admin_permissions_overview', request_method='GET',
347 renderer='rhodecode:templates/admin/permissions/permissions.mako')
348 320 def permissions_overview(self):
349 321 c = self.load_default_context()
350 322 c.active = 'perms'
@@ -355,9 +327,6 b' class AdminPermissionsView(BaseAppView, '
355 327
356 328 @LoginRequired()
357 329 @HasPermissionAllDecorator('hg.admin')
358 @view_config(
359 route_name='admin_permissions_auth_token_access', request_method='GET',
360 renderer='rhodecode:templates/admin/permissions/permissions.mako')
361 330 def auth_token_access(self):
362 331 from rhodecode import CONFIG
363 332
@@ -415,9 +384,6 b' class AdminPermissionsView(BaseAppView, '
415 384
416 385 @LoginRequired()
417 386 @HasPermissionAllDecorator('hg.admin')
418 @view_config(
419 route_name='admin_permissions_ssh_keys', request_method='GET',
420 renderer='rhodecode:templates/admin/permissions/permissions.mako')
421 387 def ssh_keys(self):
422 388 c = self.load_default_context()
423 389 c.active = 'ssh_keys'
@@ -426,9 +392,6 b' class AdminPermissionsView(BaseAppView, '
426 392
427 393 @LoginRequired()
428 394 @HasPermissionAllDecorator('hg.admin')
429 @view_config(
430 route_name='admin_permissions_ssh_keys_data', request_method='GET',
431 renderer='json_ext', xhr=True)
432 395 def ssh_keys_data(self):
433 396 _ = self.request.translate
434 397 self.load_default_context()
@@ -498,9 +461,6 b' class AdminPermissionsView(BaseAppView, '
498 461 @LoginRequired()
499 462 @HasPermissionAllDecorator('hg.admin')
500 463 @CSRFRequired()
501 @view_config(
502 route_name='admin_permissions_ssh_keys_update', request_method='POST',
503 renderer='rhodecode:templates/admin/permissions/permissions.mako')
504 464 def ssh_keys_update(self):
505 465 _ = self.request.translate
506 466 self.load_default_context()
@@ -22,7 +22,7 b' import logging'
22 22
23 23 import psutil
24 24 import signal
25 from pyramid.view import view_config
25
26 26
27 27 from rhodecode.apps._base import BaseAppView
28 28 from rhodecode.apps._base.navigation import navigation_list
@@ -84,9 +84,6 b' class AdminProcessManagementView(BaseApp'
84 84
85 85 @LoginRequired()
86 86 @HasPermissionAllDecorator('hg.admin')
87 @view_config(
88 route_name='admin_settings_process_management', request_method='GET',
89 renderer='rhodecode:templates/admin/settings/settings.mako')
90 87 def process_management(self):
91 88 _ = self.request.translate
92 89 c = self.load_default_context()
@@ -99,9 +96,6 b' class AdminProcessManagementView(BaseApp'
99 96
100 97 @LoginRequired()
101 98 @HasPermissionAllDecorator('hg.admin')
102 @view_config(
103 route_name='admin_settings_process_management_data', request_method='GET',
104 renderer='rhodecode:templates/admin/settings/settings_process_management_data.mako')
105 99 def process_management_data(self):
106 100 _ = self.request.translate
107 101 c = self.load_default_context()
@@ -111,9 +105,6 b' class AdminProcessManagementView(BaseApp'
111 105 @LoginRequired()
112 106 @HasPermissionAllDecorator('hg.admin')
113 107 @CSRFRequired()
114 @view_config(
115 route_name='admin_settings_process_management_signal',
116 request_method='POST', renderer='json_ext')
117 108 def process_management_signal(self):
118 109 pids = self.request.json.get('pids', [])
119 110 result = []
@@ -155,9 +146,6 b' class AdminProcessManagementView(BaseApp'
155 146 @LoginRequired()
156 147 @HasPermissionAllDecorator('hg.admin')
157 148 @CSRFRequired()
158 @view_config(
159 route_name='admin_settings_process_management_master_signal',
160 request_method='POST', renderer='json_ext')
161 149 def process_management_master_signal(self):
162 150 pid_data = self.request.json.get('pid_data', {})
163 151 pid = safe_int(pid_data['pid'])
@@ -25,7 +25,7 b' import formencode'
25 25 import formencode.htmlfill
26 26
27 27 from pyramid.httpexceptions import HTTPFound, HTTPForbidden
28 from pyramid.view import view_config
28
29 29 from pyramid.renderers import render
30 30 from pyramid.response import Response
31 31
@@ -96,9 +96,6 b' class AdminRepoGroupsView(BaseAppView, D'
96 96 # `repo_group_list_data` via RepoGroupList
97 97 @LoginRequired()
98 98 @NotAnonymous()
99 @view_config(
100 route_name='repo_groups', request_method='GET',
101 renderer='rhodecode:templates/admin/repo_groups/repo_groups.mako')
102 99 def repo_group_list(self):
103 100 c = self.load_default_context()
104 101 return self._get_template_context(c)
@@ -106,9 +103,6 b' class AdminRepoGroupsView(BaseAppView, D'
106 103 # permission check inside
107 104 @LoginRequired()
108 105 @NotAnonymous()
109 @view_config(
110 route_name='repo_groups_data', request_method='GET',
111 renderer='json_ext', xhr=True)
112 106 def repo_group_list_data(self):
113 107 self.load_default_context()
114 108 column_map = {
@@ -254,9 +248,6 b' class AdminRepoGroupsView(BaseAppView, D'
254 248 @LoginRequired()
255 249 @NotAnonymous()
256 250 # perm checks inside
257 @view_config(
258 route_name='repo_group_new', request_method='GET',
259 renderer='rhodecode:templates/admin/repo_groups/repo_group_add.mako')
260 251 def repo_group_new(self):
261 252 c = self.load_default_context()
262 253
@@ -296,9 +287,6 b' class AdminRepoGroupsView(BaseAppView, D'
296 287 @NotAnonymous()
297 288 @CSRFRequired()
298 289 # perm checks inside
299 @view_config(
300 route_name='repo_group_create', request_method='POST',
301 renderer='rhodecode:templates/admin/repo_groups/repo_group_add.mako')
302 290 def repo_group_create(self):
303 291 c = self.load_default_context()
304 292 _ = self.request.translate
@@ -23,7 +23,7 b' import formencode'
23 23 import formencode.htmlfill
24 24
25 25 from pyramid.httpexceptions import HTTPFound, HTTPForbidden
26 from pyramid.view import view_config
26
27 27 from pyramid.renderers import render
28 28 from pyramid.response import Response
29 29
@@ -52,7 +52,6 b' class AdminReposView(BaseAppView, DataGr'
52 52
53 53 def load_default_context(self):
54 54 c = self._get_local_tmpl_context()
55
56 55 return c
57 56
58 57 def _load_form_data(self, c):
@@ -65,9 +64,6 b' class AdminReposView(BaseAppView, DataGr'
65 64 @LoginRequired()
66 65 @NotAnonymous()
67 66 # perms check inside
68 @view_config(
69 route_name='repos', request_method='GET',
70 renderer='rhodecode:templates/admin/repos/repos.mako')
71 67 def repository_list(self):
72 68 c = self.load_default_context()
73 69 return self._get_template_context(c)
@@ -75,9 +71,6 b' class AdminReposView(BaseAppView, DataGr'
75 71 @LoginRequired()
76 72 @NotAnonymous()
77 73 # perms check inside
78 @view_config(
79 route_name='repos_data', request_method='GET',
80 renderer='json_ext', xhr=True)
81 74 def repository_list_data(self):
82 75 self.load_default_context()
83 76 column_map = {
@@ -162,9 +155,6 b' class AdminReposView(BaseAppView, DataGr'
162 155 @LoginRequired()
163 156 @NotAnonymous()
164 157 # perms check inside
165 @view_config(
166 route_name='repo_new', request_method='GET',
167 renderer='rhodecode:templates/admin/repos/repo_add.mako')
168 158 def repository_new(self):
169 159 c = self.load_default_context()
170 160
@@ -216,9 +206,6 b' class AdminReposView(BaseAppView, DataGr'
216 206 @NotAnonymous()
217 207 @CSRFRequired()
218 208 # perms check inside
219 @view_config(
220 route_name='repo_create', request_method='POST',
221 renderer='rhodecode:templates/admin/repos/repos.mako')
222 209 def repository_create(self):
223 210 c = self.load_default_context()
224 211
@@ -20,7 +20,7 b''
20 20
21 21 import logging
22 22
23 from pyramid.view import view_config
23
24 24 from pyramid.httpexceptions import HTTPFound
25 25
26 26 from rhodecode.apps._base import BaseAppView
@@ -37,17 +37,13 b' log = logging.getLogger(__name__)'
37 37
38 38
39 39 class AdminSessionSettingsView(BaseAppView):
40
40 41 def load_default_context(self):
41 42 c = self._get_local_tmpl_context()
42
43
44 43 return c
45 44
46 45 @LoginRequired()
47 46 @HasPermissionAllDecorator('hg.admin')
48 @view_config(
49 route_name='admin_settings_sessions', request_method='GET',
50 renderer='rhodecode:templates/admin/settings/settings.mako')
51 47 def settings_sessions(self):
52 48 c = self.load_default_context()
53 49
@@ -71,8 +67,6 b' class AdminSessionSettingsView(BaseAppVi'
71 67 @LoginRequired()
72 68 @HasPermissionAllDecorator('hg.admin')
73 69 @CSRFRequired()
74 @view_config(
75 route_name='admin_settings_sessions_cleanup', request_method='POST')
76 70 def settings_sessions_cleanup(self):
77 71 _ = self.request.translate
78 72 expire_days = safe_int(self.request.params.get('expire_days'))
@@ -27,7 +27,7 b' import formencode'
27 27 import formencode.htmlfill
28 28
29 29 import rhodecode
30 from pyramid.view import view_config
30
31 31 from pyramid.httpexceptions import HTTPFound, HTTPNotFound
32 32 from pyramid.renderers import render
33 33 from pyramid.response import Response
@@ -68,7 +68,6 b' class AdminSettingsView(BaseAppView):'
68 68 c.labs_active = str2bool(
69 69 rhodecode.CONFIG.get('labs_settings_active', 'true'))
70 70 c.navlist = navigation_list(self.request)
71
72 71 return c
73 72
74 73 @classmethod
@@ -109,9 +108,6 b' class AdminSettingsView(BaseAppView):'
109 108
110 109 @LoginRequired()
111 110 @HasPermissionAllDecorator('hg.admin')
112 @view_config(
113 route_name='admin_settings_vcs', request_method='GET',
114 renderer='rhodecode:templates/admin/settings/settings.mako')
115 111 def settings_vcs(self):
116 112 c = self.load_default_context()
117 113 c.active = 'vcs'
@@ -139,9 +135,6 b' class AdminSettingsView(BaseAppView):'
139 135 @LoginRequired()
140 136 @HasPermissionAllDecorator('hg.admin')
141 137 @CSRFRequired()
142 @view_config(
143 route_name='admin_settings_vcs_update', request_method='POST',
144 renderer='rhodecode:templates/admin/settings/settings.mako')
145 138 def settings_vcs_update(self):
146 139 _ = self.request.translate
147 140 c = self.load_default_context()
@@ -207,9 +200,6 b' class AdminSettingsView(BaseAppView):'
207 200 @LoginRequired()
208 201 @HasPermissionAllDecorator('hg.admin')
209 202 @CSRFRequired()
210 @view_config(
211 route_name='admin_settings_vcs_svn_pattern_delete', request_method='POST',
212 renderer='json_ext', xhr=True)
213 203 def settings_vcs_delete_svn_pattern(self):
214 204 delete_pattern_id = self.request.POST.get('delete_svn_pattern')
215 205 model = VcsSettingsModel()
@@ -225,9 +215,6 b' class AdminSettingsView(BaseAppView):'
225 215
226 216 @LoginRequired()
227 217 @HasPermissionAllDecorator('hg.admin')
228 @view_config(
229 route_name='admin_settings_mapping', request_method='GET',
230 renderer='rhodecode:templates/admin/settings/settings.mako')
231 218 def settings_mapping(self):
232 219 c = self.load_default_context()
233 220 c.active = 'mapping'
@@ -245,9 +232,6 b' class AdminSettingsView(BaseAppView):'
245 232 @LoginRequired()
246 233 @HasPermissionAllDecorator('hg.admin')
247 234 @CSRFRequired()
248 @view_config(
249 route_name='admin_settings_mapping_update', request_method='POST',
250 renderer='rhodecode:templates/admin/settings/settings.mako')
251 235 def settings_mapping_update(self):
252 236 _ = self.request.translate
253 237 c = self.load_default_context()
@@ -274,12 +258,6 b' class AdminSettingsView(BaseAppView):'
274 258
275 259 @LoginRequired()
276 260 @HasPermissionAllDecorator('hg.admin')
277 @view_config(
278 route_name='admin_settings', request_method='GET',
279 renderer='rhodecode:templates/admin/settings/settings.mako')
280 @view_config(
281 route_name='admin_settings_global', request_method='GET',
282 renderer='rhodecode:templates/admin/settings/settings.mako')
283 261 def settings_global(self):
284 262 c = self.load_default_context()
285 263 c.active = 'global'
@@ -299,12 +277,6 b' class AdminSettingsView(BaseAppView):'
299 277 @LoginRequired()
300 278 @HasPermissionAllDecorator('hg.admin')
301 279 @CSRFRequired()
302 @view_config(
303 route_name='admin_settings_update', request_method='POST',
304 renderer='rhodecode:templates/admin/settings/settings.mako')
305 @view_config(
306 route_name='admin_settings_global_update', request_method='POST',
307 renderer='rhodecode:templates/admin/settings/settings.mako')
308 280 def settings_global_update(self):
309 281 _ = self.request.translate
310 282 c = self.load_default_context()
@@ -359,9 +331,6 b' class AdminSettingsView(BaseAppView):'
359 331
360 332 @LoginRequired()
361 333 @HasPermissionAllDecorator('hg.admin')
362 @view_config(
363 route_name='admin_settings_visual', request_method='GET',
364 renderer='rhodecode:templates/admin/settings/settings.mako')
365 334 def settings_visual(self):
366 335 c = self.load_default_context()
367 336 c.active = 'visual'
@@ -379,9 +348,6 b' class AdminSettingsView(BaseAppView):'
379 348 @LoginRequired()
380 349 @HasPermissionAllDecorator('hg.admin')
381 350 @CSRFRequired()
382 @view_config(
383 route_name='admin_settings_visual_update', request_method='POST',
384 renderer='rhodecode:templates/admin/settings/settings.mako')
385 351 def settings_visual_update(self):
386 352 _ = self.request.translate
387 353 c = self.load_default_context()
@@ -441,9 +407,6 b' class AdminSettingsView(BaseAppView):'
441 407
442 408 @LoginRequired()
443 409 @HasPermissionAllDecorator('hg.admin')
444 @view_config(
445 route_name='admin_settings_issuetracker', request_method='GET',
446 renderer='rhodecode:templates/admin/settings/settings.mako')
447 410 def settings_issuetracker(self):
448 411 c = self.load_default_context()
449 412 c.active = 'issuetracker'
@@ -470,9 +433,6 b' class AdminSettingsView(BaseAppView):'
470 433 @LoginRequired()
471 434 @HasPermissionAllDecorator('hg.admin')
472 435 @CSRFRequired()
473 @view_config(
474 route_name='admin_settings_issuetracker_test', request_method='POST',
475 renderer='string', xhr=True)
476 436 def settings_issuetracker_test(self):
477 437 error_container = []
478 438
@@ -490,9 +450,6 b' class AdminSettingsView(BaseAppView):'
490 450 @LoginRequired()
491 451 @HasPermissionAllDecorator('hg.admin')
492 452 @CSRFRequired()
493 @view_config(
494 route_name='admin_settings_issuetracker_update', request_method='POST',
495 renderer='rhodecode:templates/admin/settings/settings.mako')
496 453 def settings_issuetracker_update(self):
497 454 _ = self.request.translate
498 455 self.load_default_context()
@@ -527,9 +484,6 b' class AdminSettingsView(BaseAppView):'
527 484 @LoginRequired()
528 485 @HasPermissionAllDecorator('hg.admin')
529 486 @CSRFRequired()
530 @view_config(
531 route_name='admin_settings_issuetracker_delete', request_method='POST',
532 renderer='json_ext', xhr=True)
533 487 def settings_issuetracker_delete(self):
534 488 _ = self.request.translate
535 489 self.load_default_context()
@@ -547,9 +501,6 b' class AdminSettingsView(BaseAppView):'
547 501
548 502 @LoginRequired()
549 503 @HasPermissionAllDecorator('hg.admin')
550 @view_config(
551 route_name='admin_settings_email', request_method='GET',
552 renderer='rhodecode:templates/admin/settings/settings.mako')
553 504 def settings_email(self):
554 505 c = self.load_default_context()
555 506 c.active = 'email'
@@ -568,9 +519,6 b' class AdminSettingsView(BaseAppView):'
568 519 @LoginRequired()
569 520 @HasPermissionAllDecorator('hg.admin')
570 521 @CSRFRequired()
571 @view_config(
572 route_name='admin_settings_email_update', request_method='POST',
573 renderer='rhodecode:templates/admin/settings/settings.mako')
574 522 def settings_email_update(self):
575 523 _ = self.request.translate
576 524 c = self.load_default_context()
@@ -600,9 +548,6 b' class AdminSettingsView(BaseAppView):'
600 548
601 549 @LoginRequired()
602 550 @HasPermissionAllDecorator('hg.admin')
603 @view_config(
604 route_name='admin_settings_hooks', request_method='GET',
605 renderer='rhodecode:templates/admin/settings/settings.mako')
606 551 def settings_hooks(self):
607 552 c = self.load_default_context()
608 553 c.active = 'hooks'
@@ -624,12 +569,6 b' class AdminSettingsView(BaseAppView):'
624 569 @LoginRequired()
625 570 @HasPermissionAllDecorator('hg.admin')
626 571 @CSRFRequired()
627 @view_config(
628 route_name='admin_settings_hooks_update', request_method='POST',
629 renderer='rhodecode:templates/admin/settings/settings.mako')
630 @view_config(
631 route_name='admin_settings_hooks_delete', request_method='POST',
632 renderer='rhodecode:templates/admin/settings/settings.mako')
633 572 def settings_hooks_update(self):
634 573 _ = self.request.translate
635 574 c = self.load_default_context()
@@ -671,9 +610,6 b' class AdminSettingsView(BaseAppView):'
671 610
672 611 @LoginRequired()
673 612 @HasPermissionAllDecorator('hg.admin')
674 @view_config(
675 route_name='admin_settings_search', request_method='GET',
676 renderer='rhodecode:templates/admin/settings/settings.mako')
677 613 def settings_search(self):
678 614 c = self.load_default_context()
679 615 c.active = 'search'
@@ -685,9 +621,6 b' class AdminSettingsView(BaseAppView):'
685 621
686 622 @LoginRequired()
687 623 @HasPermissionAllDecorator('hg.admin')
688 @view_config(
689 route_name='admin_settings_automation', request_method='GET',
690 renderer='rhodecode:templates/admin/settings/settings.mako')
691 624 def settings_automation(self):
692 625 c = self.load_default_context()
693 626 c.active = 'automation'
@@ -696,9 +629,6 b' class AdminSettingsView(BaseAppView):'
696 629
697 630 @LoginRequired()
698 631 @HasPermissionAllDecorator('hg.admin')
699 @view_config(
700 route_name='admin_settings_labs', request_method='GET',
701 renderer='rhodecode:templates/admin/settings/settings.mako')
702 632 def settings_labs(self):
703 633 c = self.load_default_context()
704 634 if not c.labs_active:
@@ -720,9 +650,6 b' class AdminSettingsView(BaseAppView):'
720 650 @LoginRequired()
721 651 @HasPermissionAllDecorator('hg.admin')
722 652 @CSRFRequired()
723 @view_config(
724 route_name='admin_settings_labs_update', request_method='POST',
725 renderer='rhodecode:templates/admin/settings/settings.mako')
726 653 def settings_labs_update(self):
727 654 _ = self.request.translate
728 655 c = self.load_default_context()
@@ -20,7 +20,7 b''
20 20
21 21 import logging
22 22
23 from pyramid.view import view_config
23
24 24
25 25 from rhodecode.apps._base import BaseAppView
26 26 from rhodecode.apps.svn_support.utils import generate_mod_dav_svn_config
@@ -30,14 +30,11 b' from rhodecode.lib.auth import ('
30 30 log = logging.getLogger(__name__)
31 31
32 32
33 class SvnConfigAdminSettingsView(BaseAppView):
33 class AdminSvnConfigView(BaseAppView):
34 34
35 35 @LoginRequired()
36 36 @HasPermissionAllDecorator('hg.admin')
37 37 @CSRFRequired()
38 @view_config(
39 route_name='admin_settings_vcs_svn_generate_cfg',
40 request_method='POST', renderer='json')
41 38 def vcs_svn_generate_config(self):
42 39 _ = self.request.translate
43 40 try:
@@ -21,7 +21,7 b''
21 21 import logging
22 22 import urllib2
23 23
24 from pyramid.view import view_config
24
25 25
26 26 import rhodecode
27 27 from rhodecode.apps._base import BaseAppView
@@ -42,9 +42,6 b' class AdminSystemInfoSettingsView(BaseAp'
42 42
43 43 @LoginRequired()
44 44 @HasPermissionAllDecorator('hg.admin')
45 @view_config(
46 route_name='admin_settings_system', request_method='GET',
47 renderer='rhodecode:templates/admin/settings/settings.mako')
48 45 def settings_system_info(self):
49 46 _ = self.request.translate
50 47 c = self.load_default_context()
@@ -169,9 +166,6 b' class AdminSystemInfoSettingsView(BaseAp'
169 166
170 167 @LoginRequired()
171 168 @HasPermissionAllDecorator('hg.admin')
172 @view_config(
173 route_name='admin_settings_system_update', request_method='GET',
174 renderer='rhodecode:templates/admin/settings/settings_system_update.mako')
175 169 def settings_system_info_check_update(self):
176 170 _ = self.request.translate
177 171 c = self.load_default_context()
@@ -24,7 +24,7 b' import formencode'
24 24 import formencode.htmlfill
25 25
26 26 from pyramid.httpexceptions import HTTPFound
27 from pyramid.view import view_config
27
28 28 from pyramid.response import Response
29 29 from pyramid.renderers import render
30 30
@@ -51,19 +51,14 b' class AdminUserGroupsView(BaseAppView, D'
51 51
52 52 def load_default_context(self):
53 53 c = self._get_local_tmpl_context()
54
55 54 PermissionModel().set_global_permission_choices(
56 55 c, gettext_translator=self.request.translate)
57
58 56 return c
59 57
60 58 # permission check in data loading of
61 59 # `user_groups_list_data` via UserGroupList
62 60 @LoginRequired()
63 61 @NotAnonymous()
64 @view_config(
65 route_name='user_groups', request_method='GET',
66 renderer='rhodecode:templates/admin/user_groups/user_groups.mako')
67 62 def user_groups_list(self):
68 63 c = self.load_default_context()
69 64 return self._get_template_context(c)
@@ -71,9 +66,6 b' class AdminUserGroupsView(BaseAppView, D'
71 66 # permission check inside
72 67 @LoginRequired()
73 68 @NotAnonymous()
74 @view_config(
75 route_name='user_groups_data', request_method='GET',
76 renderer='json_ext', xhr=True)
77 69 def user_groups_list_data(self):
78 70 self.load_default_context()
79 71 column_map = {
@@ -197,9 +189,6 b' class AdminUserGroupsView(BaseAppView, D'
197 189
198 190 @LoginRequired()
199 191 @HasPermissionAnyDecorator('hg.admin', 'hg.usergroup.create.true')
200 @view_config(
201 route_name='user_groups_new', request_method='GET',
202 renderer='rhodecode:templates/admin/user_groups/user_group_add.mako')
203 192 def user_groups_new(self):
204 193 c = self.load_default_context()
205 194 return self._get_template_context(c)
@@ -207,9 +196,6 b' class AdminUserGroupsView(BaseAppView, D'
207 196 @LoginRequired()
208 197 @HasPermissionAnyDecorator('hg.admin', 'hg.usergroup.create.true')
209 198 @CSRFRequired()
210 @view_config(
211 route_name='user_groups_create', request_method='POST',
212 renderer='rhodecode:templates/admin/user_groups/user_group_add.mako')
213 199 def user_groups_create(self):
214 200 _ = self.request.translate
215 201 c = self.load_default_context()
@@ -24,7 +24,6 b' import formencode'
24 24 import formencode.htmlfill
25 25
26 26 from pyramid.httpexceptions import HTTPFound
27 from pyramid.view import view_config
28 27 from pyramid.renderers import render
29 28 from pyramid.response import Response
30 29
@@ -72,19 +71,12 b' class AdminUsersView(BaseAppView, DataGr'
72 71
73 72 @LoginRequired()
74 73 @HasPermissionAllDecorator('hg.admin')
75 @view_config(
76 route_name='users', request_method='GET',
77 renderer='rhodecode:templates/admin/users/users.mako')
78 74 def users_list(self):
79 75 c = self.load_default_context()
80 76 return self._get_template_context(c)
81 77
82 78 @LoginRequired()
83 79 @HasPermissionAllDecorator('hg.admin')
84 @view_config(
85 # renderer defined below
86 route_name='users_data', request_method='GET',
87 renderer='json_ext', xhr=True)
88 80 def users_list_data(self):
89 81 self.load_default_context()
90 82 column_map = {
@@ -183,9 +175,6 b' class AdminUsersView(BaseAppView, DataGr'
183 175
184 176 @LoginRequired()
185 177 @HasPermissionAllDecorator('hg.admin')
186 @view_config(
187 route_name='users_new', request_method='GET',
188 renderer='rhodecode:templates/admin/users/user_add.mako')
189 178 def users_new(self):
190 179 _ = self.request.translate
191 180 c = self.load_default_context()
@@ -196,9 +185,6 b' class AdminUsersView(BaseAppView, DataGr'
196 185 @LoginRequired()
197 186 @HasPermissionAllDecorator('hg.admin')
198 187 @CSRFRequired()
199 @view_config(
200 route_name='users_create', request_method='POST',
201 renderer='rhodecode:templates/admin/users/user_add.mako')
202 188 def users_create(self):
203 189 _ = self.request.translate
204 190 c = self.load_default_context()
@@ -309,9 +295,6 b' class UsersView(UserAppView):'
309 295 @LoginRequired()
310 296 @HasPermissionAllDecorator('hg.admin')
311 297 @CSRFRequired()
312 @view_config(
313 route_name='user_update', request_method='POST',
314 renderer='rhodecode:templates/admin/users/user_edit.mako')
315 298 def user_update(self):
316 299 _ = self.request.translate
317 300 c = self.load_default_context()
@@ -371,9 +354,6 b' class UsersView(UserAppView):'
371 354 @LoginRequired()
372 355 @HasPermissionAllDecorator('hg.admin')
373 356 @CSRFRequired()
374 @view_config(
375 route_name='user_delete', request_method='POST',
376 renderer='rhodecode:templates/admin/users/user_edit.mako')
377 357 def user_delete(self):
378 358 _ = self.request.translate
379 359 c = self.load_default_context()
@@ -496,9 +476,6 b' class UsersView(UserAppView):'
496 476
497 477 @LoginRequired()
498 478 @HasPermissionAllDecorator('hg.admin')
499 @view_config(
500 route_name='user_edit', request_method='GET',
501 renderer='rhodecode:templates/admin/users/user_edit.mako')
502 479 def user_edit(self):
503 480 _ = self.request.translate
504 481 c = self.load_default_context()
@@ -525,9 +502,6 b' class UsersView(UserAppView):'
525 502
526 503 @LoginRequired()
527 504 @HasPermissionAllDecorator('hg.admin')
528 @view_config(
529 route_name='user_edit_advanced', request_method='GET',
530 renderer='rhodecode:templates/admin/users/user_edit.mako')
531 505 def user_edit_advanced(self):
532 506 _ = self.request.translate
533 507 c = self.load_default_context()
@@ -584,9 +558,6 b' class UsersView(UserAppView):'
584 558
585 559 @LoginRequired()
586 560 @HasPermissionAllDecorator('hg.admin')
587 @view_config(
588 route_name='user_edit_global_perms', request_method='GET',
589 renderer='rhodecode:templates/admin/users/user_edit.mako')
590 561 def user_edit_global_perms(self):
591 562 _ = self.request.translate
592 563 c = self.load_default_context()
@@ -614,9 +585,6 b' class UsersView(UserAppView):'
614 585 @LoginRequired()
615 586 @HasPermissionAllDecorator('hg.admin')
616 587 @CSRFRequired()
617 @view_config(
618 route_name='user_edit_global_perms_update', request_method='POST',
619 renderer='rhodecode:templates/admin/users/user_edit.mako')
620 588 def user_edit_global_perms_update(self):
621 589 _ = self.request.translate
622 590 c = self.load_default_context()
@@ -682,9 +650,6 b' class UsersView(UserAppView):'
682 650 @LoginRequired()
683 651 @HasPermissionAllDecorator('hg.admin')
684 652 @CSRFRequired()
685 @view_config(
686 route_name='user_enable_force_password_reset', request_method='POST',
687 renderer='rhodecode:templates/admin/users/user_edit.mako')
688 653 def user_enable_force_password_reset(self):
689 654 _ = self.request.translate
690 655 c = self.load_default_context()
@@ -711,9 +676,6 b' class UsersView(UserAppView):'
711 676 @LoginRequired()
712 677 @HasPermissionAllDecorator('hg.admin')
713 678 @CSRFRequired()
714 @view_config(
715 route_name='user_disable_force_password_reset', request_method='POST',
716 renderer='rhodecode:templates/admin/users/user_edit.mako')
717 679 def user_disable_force_password_reset(self):
718 680 _ = self.request.translate
719 681 c = self.load_default_context()
@@ -741,9 +703,6 b' class UsersView(UserAppView):'
741 703 @LoginRequired()
742 704 @HasPermissionAllDecorator('hg.admin')
743 705 @CSRFRequired()
744 @view_config(
745 route_name='user_notice_dismiss', request_method='POST',
746 renderer='json_ext', xhr=True)
747 706 def user_notice_dismiss(self):
748 707 _ = self.request.translate
749 708 c = self.load_default_context()
@@ -767,9 +726,6 b' class UsersView(UserAppView):'
767 726 @LoginRequired()
768 727 @HasPermissionAllDecorator('hg.admin')
769 728 @CSRFRequired()
770 @view_config(
771 route_name='user_create_personal_repo_group', request_method='POST',
772 renderer='rhodecode:templates/admin/users/user_edit.mako')
773 729 def user_create_personal_repo_group(self):
774 730 """
775 731 Create personal repository group for this user
@@ -821,9 +777,6 b' class UsersView(UserAppView):'
821 777
822 778 @LoginRequired()
823 779 @HasPermissionAllDecorator('hg.admin')
824 @view_config(
825 route_name='edit_user_auth_tokens', request_method='GET',
826 renderer='rhodecode:templates/admin/users/user_edit.mako')
827 780 def auth_tokens(self):
828 781 _ = self.request.translate
829 782 c = self.load_default_context()
@@ -843,9 +796,6 b' class UsersView(UserAppView):'
843 796
844 797 @LoginRequired()
845 798 @HasPermissionAllDecorator('hg.admin')
846 @view_config(
847 route_name='edit_user_auth_tokens_view', request_method='POST',
848 renderer='json_ext', xhr=True)
849 799 def auth_tokens_view(self):
850 800 _ = self.request.translate
851 801 c = self.load_default_context()
@@ -867,8 +817,6 b' class UsersView(UserAppView):'
867 817 @LoginRequired()
868 818 @HasPermissionAllDecorator('hg.admin')
869 819 @CSRFRequired()
870 @view_config(
871 route_name='edit_user_auth_tokens_add', request_method='POST')
872 820 def auth_tokens_add(self):
873 821 _ = self.request.translate
874 822 c = self.load_default_context()
@@ -899,8 +847,6 b' class UsersView(UserAppView):'
899 847 @LoginRequired()
900 848 @HasPermissionAllDecorator('hg.admin')
901 849 @CSRFRequired()
902 @view_config(
903 route_name='edit_user_auth_tokens_delete', request_method='POST')
904 850 def auth_tokens_delete(self):
905 851 _ = self.request.translate
906 852 c = self.load_default_context()
@@ -928,9 +874,6 b' class UsersView(UserAppView):'
928 874
929 875 @LoginRequired()
930 876 @HasPermissionAllDecorator('hg.admin')
931 @view_config(
932 route_name='edit_user_ssh_keys', request_method='GET',
933 renderer='rhodecode:templates/admin/users/user_edit.mako')
934 877 def ssh_keys(self):
935 878 _ = self.request.translate
936 879 c = self.load_default_context()
@@ -943,9 +886,6 b' class UsersView(UserAppView):'
943 886
944 887 @LoginRequired()
945 888 @HasPermissionAllDecorator('hg.admin')
946 @view_config(
947 route_name='edit_user_ssh_keys_generate_keypair', request_method='GET',
948 renderer='rhodecode:templates/admin/users/user_edit.mako')
949 889 def ssh_keys_generate_keypair(self):
950 890 _ = self.request.translate
951 891 c = self.load_default_context()
@@ -964,8 +904,6 b' class UsersView(UserAppView):'
964 904 @LoginRequired()
965 905 @HasPermissionAllDecorator('hg.admin')
966 906 @CSRFRequired()
967 @view_config(
968 route_name='edit_user_ssh_keys_add', request_method='POST')
969 907 def ssh_keys_add(self):
970 908 _ = self.request.translate
971 909 c = self.load_default_context()
@@ -1017,8 +955,6 b' class UsersView(UserAppView):'
1017 955 @LoginRequired()
1018 956 @HasPermissionAllDecorator('hg.admin')
1019 957 @CSRFRequired()
1020 @view_config(
1021 route_name='edit_user_ssh_keys_delete', request_method='POST')
1022 958 def ssh_keys_delete(self):
1023 959 _ = self.request.translate
1024 960 c = self.load_default_context()
@@ -1048,9 +984,6 b' class UsersView(UserAppView):'
1048 984
1049 985 @LoginRequired()
1050 986 @HasPermissionAllDecorator('hg.admin')
1051 @view_config(
1052 route_name='edit_user_emails', request_method='GET',
1053 renderer='rhodecode:templates/admin/users/user_edit.mako')
1054 987 def emails(self):
1055 988 _ = self.request.translate
1056 989 c = self.load_default_context()
@@ -1065,8 +998,6 b' class UsersView(UserAppView):'
1065 998 @LoginRequired()
1066 999 @HasPermissionAllDecorator('hg.admin')
1067 1000 @CSRFRequired()
1068 @view_config(
1069 route_name='edit_user_emails_add', request_method='POST')
1070 1001 def emails_add(self):
1071 1002 _ = self.request.translate
1072 1003 c = self.load_default_context()
@@ -1105,8 +1036,6 b' class UsersView(UserAppView):'
1105 1036 @LoginRequired()
1106 1037 @HasPermissionAllDecorator('hg.admin')
1107 1038 @CSRFRequired()
1108 @view_config(
1109 route_name='edit_user_emails_delete', request_method='POST')
1110 1039 def emails_delete(self):
1111 1040 _ = self.request.translate
1112 1041 c = self.load_default_context()
@@ -1131,9 +1060,6 b' class UsersView(UserAppView):'
1131 1060
1132 1061 @LoginRequired()
1133 1062 @HasPermissionAllDecorator('hg.admin')
1134 @view_config(
1135 route_name='edit_user_ips', request_method='GET',
1136 renderer='rhodecode:templates/admin/users/user_edit.mako')
1137 1063 def ips(self):
1138 1064 _ = self.request.translate
1139 1065 c = self.load_default_context()
@@ -1152,8 +1078,6 b' class UsersView(UserAppView):'
1152 1078 @LoginRequired()
1153 1079 @HasPermissionAllDecorator('hg.admin')
1154 1080 @CSRFRequired()
1155 @view_config(
1156 route_name='edit_user_ips_add', request_method='POST')
1157 1081 # NOTE(marcink): this view is allowed for default users, as we can
1158 1082 # edit their IP white list
1159 1083 def ips_add(self):
@@ -1207,8 +1131,6 b' class UsersView(UserAppView):'
1207 1131 @LoginRequired()
1208 1132 @HasPermissionAllDecorator('hg.admin')
1209 1133 @CSRFRequired()
1210 @view_config(
1211 route_name='edit_user_ips_delete', request_method='POST')
1212 1134 # NOTE(marcink): this view is allowed for default users, as we can
1213 1135 # edit their IP white list
1214 1136 def ips_delete(self):
@@ -1236,9 +1158,6 b' class UsersView(UserAppView):'
1236 1158
1237 1159 @LoginRequired()
1238 1160 @HasPermissionAllDecorator('hg.admin')
1239 @view_config(
1240 route_name='edit_user_groups_management', request_method='GET',
1241 renderer='rhodecode:templates/admin/users/user_edit.mako')
1242 1161 def groups_management(self):
1243 1162 c = self.load_default_context()
1244 1163 c.user = self.db_user
@@ -1254,8 +1173,6 b' class UsersView(UserAppView):'
1254 1173 @LoginRequired()
1255 1174 @HasPermissionAllDecorator('hg.admin')
1256 1175 @CSRFRequired()
1257 @view_config(
1258 route_name='edit_user_groups_management_updates', request_method='POST')
1259 1176 def groups_management_updates(self):
1260 1177 _ = self.request.translate
1261 1178 c = self.load_default_context()
@@ -1299,9 +1216,6 b' class UsersView(UserAppView):'
1299 1216
1300 1217 @LoginRequired()
1301 1218 @HasPermissionAllDecorator('hg.admin')
1302 @view_config(
1303 route_name='edit_user_audit_logs', request_method='GET',
1304 renderer='rhodecode:templates/admin/users/user_edit.mako')
1305 1219 def user_audit_logs(self):
1306 1220 _ = self.request.translate
1307 1221 c = self.load_default_context()
@@ -1329,9 +1243,6 b' class UsersView(UserAppView):'
1329 1243
1330 1244 @LoginRequired()
1331 1245 @HasPermissionAllDecorator('hg.admin')
1332 @view_config(
1333 route_name='edit_user_audit_logs_download', request_method='GET',
1334 renderer='string')
1335 1246 def user_audit_logs_download(self):
1336 1247 _ = self.request.translate
1337 1248 c = self.load_default_context()
@@ -1352,9 +1263,6 b' class UsersView(UserAppView):'
1352 1263
1353 1264 @LoginRequired()
1354 1265 @HasPermissionAllDecorator('hg.admin')
1355 @view_config(
1356 route_name='edit_user_perms_summary', request_method='GET',
1357 renderer='rhodecode:templates/admin/users/user_edit.mako')
1358 1266 def user_perms_summary(self):
1359 1267 _ = self.request.translate
1360 1268 c = self.load_default_context()
@@ -1367,9 +1275,6 b' class UsersView(UserAppView):'
1367 1275
1368 1276 @LoginRequired()
1369 1277 @HasPermissionAllDecorator('hg.admin')
1370 @view_config(
1371 route_name='edit_user_perms_summary_json', request_method='GET',
1372 renderer='json_ext')
1373 1278 def user_perms_summary_json(self):
1374 1279 self.load_default_context()
1375 1280 perm_user = self.db_user.AuthUser(ip_addr=self.request.remote_addr)
@@ -1378,9 +1283,6 b' class UsersView(UserAppView):'
1378 1283
1379 1284 @LoginRequired()
1380 1285 @HasPermissionAllDecorator('hg.admin')
1381 @view_config(
1382 route_name='edit_user_caches', request_method='GET',
1383 renderer='rhodecode:templates/admin/users/user_edit.mako')
1384 1286 def user_caches(self):
1385 1287 _ = self.request.translate
1386 1288 c = self.load_default_context()
@@ -1399,8 +1301,6 b' class UsersView(UserAppView):'
1399 1301 @LoginRequired()
1400 1302 @HasPermissionAllDecorator('hg.admin')
1401 1303 @CSRFRequired()
1402 @view_config(
1403 route_name='edit_user_caches_update', request_method='POST')
1404 1304 def user_caches_update(self):
1405 1305 _ = self.request.translate
1406 1306 c = self.load_default_context()
@@ -67,6 +67,8 b' def maybe_create_history_store(event):'
67 67
68 68
69 69 def includeme(config):
70 from rhodecode.apps.channelstream.views import ChannelstreamView
71
70 72 settings = config.registry.settings
71 73 PLUGIN_DEFINITION['config']['enabled'] = asbool(
72 74 settings.get('channelstream.enabled'))
@@ -85,12 +87,20 b' def includeme(config):'
85 87 config.add_route(
86 88 name='channelstream_connect',
87 89 pattern=ADMIN_PREFIX + '/channelstream/connect')
90 config.add_view(
91 ChannelstreamView,
92 attr='channelstream_connect',
93 route_name='channelstream_connect', renderer='json_ext')
94
88 95 config.add_route(
89 96 name='channelstream_subscribe',
90 97 pattern=ADMIN_PREFIX + '/channelstream/subscribe')
98 config.add_view(
99 ChannelstreamView,
100 attr='channelstream_subscribe',
101 route_name='channelstream_subscribe', renderer='json_ext')
102
91 103 config.add_route(
92 104 name='channelstream_proxy',
93 105 pattern=settings.get('channelstream.proxy_path') or '/_channelstream')
94 106
95 # Scan module for configuration decorators.
96 config.scan('.views', ignore='.tests')
@@ -21,7 +21,7 b''
21 21 import logging
22 22 import uuid
23 23
24 from pyramid.view import view_config
24
25 25 from pyramid.httpexceptions import HTTPBadRequest, HTTPForbidden, HTTPBadGateway
26 26
27 27 from rhodecode.apps._base import BaseAppView
@@ -54,8 +54,7 b' class ChannelstreamView(BaseAppView):'
54 54 return c
55 55
56 56 @NotAnonymous()
57 @view_config(route_name='channelstream_connect', renderer='json_ext')
58 def connect(self):
57 def channelstream_connect(self):
59 58 """ handle authorization of users trying to connect """
60 59
61 60 self.load_default_context()
@@ -132,8 +131,7 b' class ChannelstreamView(BaseAppView):'
132 131 return connect_result
133 132
134 133 @NotAnonymous()
135 @view_config(route_name='channelstream_subscribe', renderer='json_ext')
136 def subscribe(self):
134 def channelstream_subscribe(self):
137 135 """ can be used to subscribe specific connection to other channels """
138 136 self.load_default_context()
139 137 try:
@@ -35,6 +35,8 b' class DebugStylePredicate(object):'
35 35
36 36
37 37 def includeme(config):
38 from rhodecode.apps.debug_style.views import DebugStyleView
39
38 40 config.add_route_predicate(
39 41 'debug_style', DebugStylePredicate)
40 42
@@ -42,18 +44,38 b' def includeme(config):'
42 44 name='debug_style_home',
43 45 pattern=ADMIN_PREFIX + '/debug_style',
44 46 debug_style=True)
47 config.add_view(
48 DebugStyleView,
49 attr='index',
50 route_name='debug_style_home', request_method='GET',
51 renderer=None)
52
45 53 config.add_route(
46 54 name='debug_style_email',
47 55 pattern=ADMIN_PREFIX + '/debug_style/email/{email_id}',
48 56 debug_style=True)
57 config.add_view(
58 DebugStyleView,
59 attr='render_email',
60 route_name='debug_style_email', request_method='GET',
61 renderer=None)
62
49 63 config.add_route(
50 64 name='debug_style_email_plain_rendered',
51 65 pattern=ADMIN_PREFIX + '/debug_style/email-rendered/{email_id}',
52 66 debug_style=True)
67 config.add_view(
68 DebugStyleView,
69 attr='render_email',
70 route_name='debug_style_email_plain_rendered', request_method='GET',
71 renderer=None)
72
53 73 config.add_route(
54 74 name='debug_style_template',
55 75 pattern=ADMIN_PREFIX + '/debug_style/t/{t_path}',
56 76 debug_style=True)
57
58 # Scan module for configuration decorators.
59 config.scan('.views', ignore='.tests')
77 config.add_view(
78 DebugStyleView,
79 attr='template',
80 route_name='debug_style_template', request_method='GET',
81 renderer=None)
@@ -22,7 +22,6 b' import os'
22 22 import logging
23 23 import datetime
24 24
25 from pyramid.view import view_config
26 25 from pyramid.renderers import render_to_response
27 26 from rhodecode.apps._base import BaseAppView
28 27 from rhodecode.lib.celerylib import run_task, tasks
@@ -37,12 +36,8 b' class DebugStyleView(BaseAppView):'
37 36
38 37 def load_default_context(self):
39 38 c = self._get_local_tmpl_context()
40
41 39 return c
42 40
43 @view_config(
44 route_name='debug_style_home', request_method='GET',
45 renderer=None)
46 41 def index(self):
47 42 c = self.load_default_context()
48 43 c.active = 'index'
@@ -51,12 +46,6 b' class DebugStyleView(BaseAppView):'
51 46 'debug_style/index.html', self._get_template_context(c),
52 47 request=self.request)
53 48
54 @view_config(
55 route_name='debug_style_email', request_method='GET',
56 renderer=None)
57 @view_config(
58 route_name='debug_style_email_plain_rendered', request_method='GET',
59 renderer=None)
60 49 def render_email(self):
61 50 c = self.load_default_context()
62 51 email_id = self.request.matchdict['email_id']
@@ -457,9 +446,6 b' users: description edit fixes'
457 446 template, self._get_template_context(c),
458 447 request=self.request)
459 448
460 @view_config(
461 route_name='debug_style_template', request_method='GET',
462 renderer=None)
463 449 def template(self):
464 450 t_path = self.request.matchdict['t_path']
465 451 c = self.load_default_context()
@@ -483,4 +469,3 b' users: description edit fixes'
483 469 return render_to_response(
484 470 'debug_style/' + t_path, self._get_template_context(c),
485 471 request=self.request)
486
@@ -35,18 +35,31 b' def _sanitize_settings_and_apply_default'
35 35
36 36
37 37 def includeme(config):
38 from rhodecode.apps.file_store.views import FileStoreView
39
38 40 settings = config.registry.settings
39 41 _sanitize_settings_and_apply_defaults(settings)
40 42
41 43 config.add_route(
42 44 name='upload_file',
43 45 pattern='/_file_store/upload')
46 config.add_view(
47 FileStoreView,
48 attr='upload_file',
49 route_name='upload_file', request_method='POST', renderer='json_ext')
50
44 51 config.add_route(
45 52 name='download_file',
46 53 pattern='/_file_store/download/{fid:.*}')
54 config.add_view(
55 FileStoreView,
56 attr='download_file',
57 route_name='download_file')
58
47 59 config.add_route(
48 60 name='download_file_by_token',
49 61 pattern='/_file_store/token-download/{_auth_token}/{fid:.*}')
50
51 # Scan module for configuration decorators.
52 config.scan('.views', ignore='.tests')
62 config.add_view(
63 FileStoreView,
64 attr='download_file_by_token',
65 route_name='download_file_by_token')
@@ -19,7 +19,7 b''
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20 import logging
21 21
22 from pyramid.view import view_config
22
23 23 from pyramid.response import FileResponse
24 24 from pyramid.httpexceptions import HTTPFound, HTTPNotFound
25 25
@@ -128,7 +128,6 b' class FileStoreView(BaseAppView):'
128 128 @LoginRequired()
129 129 @NotAnonymous()
130 130 @CSRFRequired()
131 @view_config(route_name='upload_file', request_method='POST', renderer='json_ext')
132 131 def upload_file(self):
133 132 self.load_default_context()
134 133 file_obj = self.request.POST.get(self.upload_key)
@@ -182,7 +181,6 b' class FileStoreView(BaseAppView):'
182 181 'access_path': h.route_path('download_file', fid=store_uid)}
183 182
184 183 # ACL is checked by scopes, if no scope the file is accessible to all
185 @view_config(route_name='download_file')
186 184 def download_file(self):
187 185 self.load_default_context()
188 186 file_uid = self.request.matchdict['fid']
@@ -192,7 +190,6 b' class FileStoreView(BaseAppView):'
192 190 # in addition to @LoginRequired ACL is checked by scopes
193 191 @LoginRequired(auth_token_access=[UserApiKeys.ROLE_ARTIFACT_DOWNLOAD])
194 192 @NotAnonymous()
195 @view_config(route_name='download_file_by_token')
196 193 def download_file_by_token(self):
197 194 """
198 195 Special view that allows to access the download file by special URL that
@@ -21,42 +21,100 b' from rhodecode.apps._base import ADMIN_P'
21 21
22 22
23 23 def admin_routes(config):
24 from rhodecode.apps.gist.views import GistView
25
24 26 config.add_route(
25 27 name='gists_show', pattern='/gists')
28 config.add_view(
29 GistView,
30 attr='gist_show_all',
31 route_name='gists_show', request_method='GET',
32 renderer='rhodecode:templates/admin/gists/gist_index.mako')
33
26 34 config.add_route(
27 35 name='gists_new', pattern='/gists/new')
36 config.add_view(
37 GistView,
38 attr='gist_new',
39 route_name='gists_new', request_method='GET',
40 renderer='rhodecode:templates/admin/gists/gist_new.mako')
41
28 42 config.add_route(
29 43 name='gists_create', pattern='/gists/create')
44 config.add_view(
45 GistView,
46 attr='gist_create',
47 route_name='gists_create', request_method='POST',
48 renderer='rhodecode:templates/admin/gists/gist_new.mako')
30 49
31 50 config.add_route(
32 51 name='gist_show', pattern='/gists/{gist_id}')
52 config.add_view(
53 GistView,
54 attr='gist_show',
55 route_name='gist_show', request_method='GET',
56 renderer='rhodecode:templates/admin/gists/gist_show.mako')
57
58 config.add_route(
59 name='gist_show_rev',
60 pattern='/gists/{gist_id}/rev/{revision}')
61
62 config.add_view(
63 GistView,
64 attr='gist_show',
65 route_name='gist_show_rev', request_method='GET',
66 renderer='rhodecode:templates/admin/gists/gist_show.mako')
67
68 config.add_route(
69 name='gist_show_formatted',
70 pattern='/gists/{gist_id}/rev/{revision}/{format}')
71 config.add_view(
72 GistView,
73 attr='gist_show',
74 route_name='gist_show_formatted', request_method='GET',
75 renderer=None)
76
77 config.add_route(
78 name='gist_show_formatted_path',
79 pattern='/gists/{gist_id}/rev/{revision}/{format}/{f_path:.*}')
80 config.add_view(
81 GistView,
82 attr='gist_show',
83 route_name='gist_show_formatted_path', request_method='GET',
84 renderer=None)
33 85
34 86 config.add_route(
35 87 name='gist_delete', pattern='/gists/{gist_id}/delete')
88 config.add_view(
89 GistView,
90 attr='gist_delete',
91 route_name='gist_delete', request_method='POST')
36 92
37 93 config.add_route(
38 94 name='gist_edit', pattern='/gists/{gist_id}/edit')
95 config.add_view(
96 GistView,
97 attr='gist_edit',
98 route_name='gist_edit', request_method='GET',
99 renderer='rhodecode:templates/admin/gists/gist_edit.mako')
100
101 config.add_route(
102 name='gist_update', pattern='/gists/{gist_id}/update')
103 config.add_view(
104 GistView,
105 attr='gist_update',
106 route_name='gist_update', request_method='POST',
107 renderer='rhodecode:templates/admin/gists/gist_edit.mako')
39 108
40 109 config.add_route(
41 110 name='gist_edit_check_revision',
42 111 pattern='/gists/{gist_id}/edit/check_revision')
43
44 config.add_route(
45 name='gist_update', pattern='/gists/{gist_id}/update')
46
47 config.add_route(
48 name='gist_show_rev',
49 pattern='/gists/{gist_id}/{revision}')
50 config.add_route(
51 name='gist_show_formatted',
52 pattern='/gists/{gist_id}/{revision}/{format}')
53
54 config.add_route(
55 name='gist_show_formatted_path',
56 pattern='/gists/{gist_id}/{revision}/{format}/{f_path:.*}')
112 config.add_view(
113 GistView,
114 attr='gist_edit_check_revision',
115 route_name='gist_edit_check_revision', request_method='GET',
116 renderer='json_ext')
57 117
58 118
59 119 def includeme(config):
60 120 config.include(admin_routes, route_prefix=ADMIN_PREFIX)
61 # Scan module for configuration decorators.
62 config.scan('.views', ignore='.tests')
@@ -43,9 +43,9 b' def route_path(name, params=None, **kwar'
43 43 'gist_edit': ADMIN_PREFIX + '/gists/{gist_id}/edit',
44 44 'gist_edit_check_revision': ADMIN_PREFIX + '/gists/{gist_id}/edit/check_revision',
45 45 'gist_update': ADMIN_PREFIX + '/gists/{gist_id}/update',
46 'gist_show_rev': ADMIN_PREFIX + '/gists/{gist_id}/{revision}',
47 'gist_show_formatted': ADMIN_PREFIX + '/gists/{gist_id}/{revision}/{format}',
48 'gist_show_formatted_path': ADMIN_PREFIX + '/gists/{gist_id}/{revision}/{format}/{f_path}',
46 'gist_show_rev': ADMIN_PREFIX + '/gists/{gist_id}/rev/{revision}',
47 'gist_show_formatted': ADMIN_PREFIX + '/gists/{gist_id}/rev/{revision}/{format}',
48 'gist_show_formatted_path': ADMIN_PREFIX + '/gists/{gist_id}/rev/{revision}/{format}/{f_path}',
49 49
50 50 }[name].format(**kwargs)
51 51
@@ -26,7 +26,6 b' import formencode.htmlfill'
26 26 import peppercorn
27 27
28 28 from pyramid.httpexceptions import HTTPNotFound, HTTPFound, HTTPBadRequest
29 from pyramid.view import view_config
30 29 from pyramid.renderers import render
31 30 from pyramid.response import Response
32 31
@@ -70,9 +69,6 b' class GistView(BaseAppView):'
70 69 return c
71 70
72 71 @LoginRequired()
73 @view_config(
74 route_name='gists_show', request_method='GET',
75 renderer='rhodecode:templates/admin/gists/gist_index.mako')
76 72 def gist_show_all(self):
77 73 c = self.load_default_context()
78 74
@@ -134,9 +130,6 b' class GistView(BaseAppView):'
134 130
135 131 @LoginRequired()
136 132 @NotAnonymous()
137 @view_config(
138 route_name='gists_new', request_method='GET',
139 renderer='rhodecode:templates/admin/gists/gist_new.mako')
140 133 def gist_new(self):
141 134 c = self.load_default_context()
142 135 return self._get_template_context(c)
@@ -144,9 +137,6 b' class GistView(BaseAppView):'
144 137 @LoginRequired()
145 138 @NotAnonymous()
146 139 @CSRFRequired()
147 @view_config(
148 route_name='gists_create', request_method='POST',
149 renderer='rhodecode:templates/admin/gists/gist_new.mako')
150 140 def gist_create(self):
151 141 _ = self.request.translate
152 142 c = self.load_default_context()
@@ -222,8 +212,6 b' class GistView(BaseAppView):'
222 212 @LoginRequired()
223 213 @NotAnonymous()
224 214 @CSRFRequired()
225 @view_config(
226 route_name='gist_delete', request_method='POST')
227 215 def gist_delete(self):
228 216 _ = self.request.translate
229 217 gist_id = self.request.matchdict['gist_id']
@@ -263,18 +251,6 b' class GistView(BaseAppView):'
263 251 return gist
264 252
265 253 @LoginRequired()
266 @view_config(
267 route_name='gist_show', request_method='GET',
268 renderer='rhodecode:templates/admin/gists/gist_show.mako')
269 @view_config(
270 route_name='gist_show_rev', request_method='GET',
271 renderer='rhodecode:templates/admin/gists/gist_show.mako')
272 @view_config(
273 route_name='gist_show_formatted', request_method='GET',
274 renderer=None)
275 @view_config(
276 route_name='gist_show_formatted_path', request_method='GET',
277 renderer=None)
278 254 def gist_show(self):
279 255 gist_id = self.request.matchdict['gist_id']
280 256
@@ -307,9 +283,6 b' class GistView(BaseAppView):'
307 283
308 284 @LoginRequired()
309 285 @NotAnonymous()
310 @view_config(
311 route_name='gist_edit', request_method='GET',
312 renderer='rhodecode:templates/admin/gists/gist_edit.mako')
313 286 def gist_edit(self):
314 287 _ = self.request.translate
315 288 gist_id = self.request.matchdict['gist_id']
@@ -341,9 +314,6 b' class GistView(BaseAppView):'
341 314 @LoginRequired()
342 315 @NotAnonymous()
343 316 @CSRFRequired()
344 @view_config(
345 route_name='gist_update', request_method='POST',
346 renderer='rhodecode:templates/admin/gists/gist_edit.mako')
347 317 def gist_update(self):
348 318 _ = self.request.translate
349 319 gist_id = self.request.matchdict['gist_id']
@@ -397,9 +367,6 b' class GistView(BaseAppView):'
397 367
398 368 @LoginRequired()
399 369 @NotAnonymous()
400 @view_config(
401 route_name='gist_edit_check_revision', request_method='GET',
402 renderer='json_ext')
403 370 def gist_edit_check_revision(self):
404 371 _ = self.request.translate
405 372 gist_id = self.request.matchdict['gist_id']
@@ -38,56 +38,110 b' class VCSCallPredicate(object):'
38 38
39 39
40 40 def includeme(config):
41 from rhodecode.apps.home.views import HomeView
42
43 config.add_route_predicate(
44 'skip_vcs_call', VCSCallPredicate)
41 45
42 46 config.add_route(
43 47 name='home',
44 48 pattern='/')
49 config.add_view(
50 HomeView,
51 attr='main_page',
52 route_name='home', request_method='GET',
53 renderer='rhodecode:templates/index.mako')
45 54
46 55 config.add_route(
47 56 name='main_page_repos_data',
48 57 pattern='/_home_repos')
58 config.add_view(
59 HomeView,
60 attr='main_page_repos_data',
61 route_name='main_page_repos_data',
62 request_method='GET', renderer='json_ext', xhr=True)
49 63
50 64 config.add_route(
51 65 name='main_page_repo_groups_data',
52 66 pattern='/_home_repo_groups')
67 config.add_view(
68 HomeView,
69 attr='main_page_repo_groups_data',
70 route_name='main_page_repo_groups_data',
71 request_method='GET', renderer='json_ext', xhr=True)
53 72
54 73 config.add_route(
55 74 name='user_autocomplete_data',
56 75 pattern='/_users')
76 config.add_view(
77 HomeView,
78 attr='user_autocomplete_data',
79 route_name='user_autocomplete_data', request_method='GET',
80 renderer='json_ext', xhr=True)
57 81
58 82 config.add_route(
59 83 name='user_group_autocomplete_data',
60 84 pattern='/_user_groups')
85 config.add_view(
86 HomeView,
87 attr='user_group_autocomplete_data',
88 route_name='user_group_autocomplete_data', request_method='GET',
89 renderer='json_ext', xhr=True)
61 90
62 91 config.add_route(
63 92 name='repo_list_data',
64 93 pattern='/_repos')
94 config.add_view(
95 HomeView,
96 attr='repo_list_data',
97 route_name='repo_list_data', request_method='GET',
98 renderer='json_ext', xhr=True)
65 99
66 100 config.add_route(
67 101 name='repo_group_list_data',
68 102 pattern='/_repo_groups')
103 config.add_view(
104 HomeView,
105 attr='repo_group_list_data',
106 route_name='repo_group_list_data', request_method='GET',
107 renderer='json_ext', xhr=True)
69 108
70 109 config.add_route(
71 110 name='goto_switcher_data',
72 111 pattern='/_goto_data')
112 config.add_view(
113 HomeView,
114 attr='goto_switcher_data',
115 route_name='goto_switcher_data', request_method='GET',
116 renderer='json_ext', xhr=True)
73 117
74 118 config.add_route(
75 119 name='markup_preview',
76 120 pattern='/_markup_preview')
121 config.add_view(
122 HomeView,
123 attr='markup_preview',
124 route_name='markup_preview', request_method='POST',
125 renderer='string', xhr=True)
77 126
78 127 config.add_route(
79 128 name='file_preview',
80 129 pattern='/_file_preview')
130 config.add_view(
131 HomeView,
132 attr='file_preview',
133 route_name='file_preview', request_method='POST',
134 renderer='string', xhr=True)
81 135
82 136 config.add_route(
83 137 name='store_user_session_value',
84 138 pattern='/_store_session_attr')
139 config.add_view(
140 HomeView,
141 attr='store_user_session_attr',
142 route_name='store_user_session_value', request_method='POST',
143 renderer='string', xhr=True)
85 144
86 145 # register our static links via redirection mechanism
87 146 routing_links.connect_redirection_links(config)
88 147
89 # Scan module for configuration decorators.
90 config.scan('.views', ignore='.tests')
91
92 config.add_route_predicate(
93 'skip_vcs_call', VCSCallPredicate)
@@ -23,7 +23,6 b' import logging'
23 23 import collections
24 24
25 25 from pyramid.httpexceptions import HTTPNotFound
26 from pyramid.view import view_config
27 26
28 27 from rhodecode.apps._base import BaseAppView, DataGridAppView
29 28 from rhodecode.lib import helpers as h
@@ -50,13 +49,9 b' class HomeView(BaseAppView, DataGridAppV'
50 49 def load_default_context(self):
51 50 c = self._get_local_tmpl_context()
52 51 c.user = c.auth_user.get_instance()
53
54 52 return c
55 53
56 54 @LoginRequired()
57 @view_config(
58 route_name='user_autocomplete_data', request_method='GET',
59 renderer='json_ext', xhr=True)
60 55 def user_autocomplete_data(self):
61 56 self.load_default_context()
62 57 query = self.request.GET.get('query')
@@ -88,9 +83,6 b' class HomeView(BaseAppView, DataGridAppV'
88 83
89 84 @LoginRequired()
90 85 @NotAnonymous()
91 @view_config(
92 route_name='user_group_autocomplete_data', request_method='GET',
93 renderer='json_ext', xhr=True)
94 86 def user_group_autocomplete_data(self):
95 87 self.load_default_context()
96 88 query = self.request.GET.get('query')
@@ -434,9 +426,6 b' class HomeView(BaseAppView, DataGridAppV'
434 426 return files, True
435 427
436 428 @LoginRequired()
437 @view_config(
438 route_name='repo_list_data', request_method='GET',
439 renderer='json_ext', xhr=True)
440 429 def repo_list_data(self):
441 430 _ = self.request.translate
442 431 self.load_default_context()
@@ -461,9 +450,6 b' class HomeView(BaseAppView, DataGridAppV'
461 450 return data
462 451
463 452 @LoginRequired()
464 @view_config(
465 route_name='repo_group_list_data', request_method='GET',
466 renderer='json_ext', xhr=True)
467 453 def repo_group_list_data(self):
468 454 _ = self.request.translate
469 455 self.load_default_context()
@@ -619,9 +605,6 b' class HomeView(BaseAppView, DataGridAppV'
619 605 return queries
620 606
621 607 @LoginRequired()
622 @view_config(
623 route_name='goto_switcher_data', request_method='GET',
624 renderer='json_ext', xhr=True)
625 608 def goto_switcher_data(self):
626 609 c = self.load_default_context()
627 610
@@ -750,9 +733,6 b' class HomeView(BaseAppView, DataGridAppV'
750 733 return {'suggestions': res}
751 734
752 735 @LoginRequired()
753 @view_config(
754 route_name='home', request_method='GET',
755 renderer='rhodecode:templates/index.mako')
756 736 def main_page(self):
757 737 c = self.load_default_context()
758 738 c.repo_group = None
@@ -789,9 +769,6 b' class HomeView(BaseAppView, DataGridAppV'
789 769 self._rhodecode_user, repo_group_id)
790 770
791 771 @LoginRequired()
792 @view_config(
793 route_name='main_page_repo_groups_data',
794 request_method='GET', renderer='json_ext', xhr=True)
795 772 def main_page_repo_groups_data(self):
796 773 self.load_default_context()
797 774 repo_group_id = safe_int(self.request.GET.get('repo_group_id'))
@@ -806,9 +783,6 b' class HomeView(BaseAppView, DataGridAppV'
806 783 return self._main_page_repo_groups_data(repo_group_id)
807 784
808 785 @LoginRequired()
809 @view_config(
810 route_name='main_page_repos_data',
811 request_method='GET', renderer='json_ext', xhr=True)
812 786 def main_page_repos_data(self):
813 787 self.load_default_context()
814 788 repo_group_id = safe_int(self.request.GET.get('repo_group_id'))
@@ -824,12 +798,6 b' class HomeView(BaseAppView, DataGridAppV'
824 798
825 799 @LoginRequired()
826 800 @HasRepoGroupPermissionAnyDecorator(*AuthUser.repo_group_read_perms)
827 @view_config(
828 route_name='repo_group_home', request_method='GET',
829 renderer='rhodecode:templates/index_repo_group.mako')
830 @view_config(
831 route_name='repo_group_home_slash', request_method='GET',
832 renderer='rhodecode:templates/index_repo_group.mako')
833 801 def repo_group_main_page(self):
834 802 c = self.load_default_context()
835 803 c.repo_group = self.request.db_repo_group
@@ -837,9 +805,6 b' class HomeView(BaseAppView, DataGridAppV'
837 805
838 806 @LoginRequired()
839 807 @CSRFRequired()
840 @view_config(
841 route_name='markup_preview', request_method='POST',
842 renderer='string', xhr=True)
843 808 def markup_preview(self):
844 809 # Technically a CSRF token is not needed as no state changes with this
845 810 # call. However, as this is a POST is better to have it, so automated
@@ -855,9 +820,6 b' class HomeView(BaseAppView, DataGridAppV'
855 820
856 821 @LoginRequired()
857 822 @CSRFRequired()
858 @view_config(
859 route_name='file_preview', request_method='POST',
860 renderer='string', xhr=True)
861 823 def file_preview(self):
862 824 # Technically a CSRF token is not needed as no state changes with this
863 825 # call. However, as this is a POST is better to have it, so automated
@@ -883,9 +845,6 b' class HomeView(BaseAppView, DataGridAppV'
883 845
884 846 @LoginRequired()
885 847 @CSRFRequired()
886 @view_config(
887 route_name='store_user_session_value', request_method='POST',
888 renderer='string', xhr=True)
889 848 def store_user_session_attr(self):
890 849 key = self.request.POST.get('key')
891 850 val = self.request.POST.get('val')
@@ -20,26 +20,48 b''
20 20
21 21
22 22 def includeme(config):
23
23 from rhodecode.apps.hovercards.views import HoverCardsView, HoverCardsRepoView
24 24 config.add_route(
25 25 name='hovercard_user',
26 26 pattern='/_hovercard/user/{user_id}')
27 config.add_view(
28 HoverCardsView,
29 attr='hovercard_user',
30 route_name='hovercard_user', request_method='GET', xhr=True,
31 renderer='rhodecode:templates/hovercards/hovercard_user.mako')
27 32
28 33 config.add_route(
29 34 name='hovercard_username',
30 35 pattern='/_hovercard/username/{username}')
36 config.add_view(
37 HoverCardsView,
38 attr='hovercard_username',
39 route_name='hovercard_username', request_method='GET', xhr=True,
40 renderer='rhodecode:templates/hovercards/hovercard_user.mako')
31 41
32 42 config.add_route(
33 43 name='hovercard_user_group',
34 44 pattern='/_hovercard/user_group/{user_group_id}')
45 config.add_view(
46 HoverCardsView,
47 attr='hovercard_user_group',
48 route_name='hovercard_user_group', request_method='GET', xhr=True,
49 renderer='rhodecode:templates/hovercards/hovercard_user_group.mako')
35 50
36 51 config.add_route(
37 52 name='hovercard_pull_request',
38 53 pattern='/_hovercard/pull_request/{pull_request_id}')
54 config.add_view(
55 HoverCardsView,
56 attr='hovercard_pull_request',
57 route_name='hovercard_pull_request', request_method='GET', xhr=True,
58 renderer='rhodecode:templates/hovercards/hovercard_pull_request.mako')
39 59
40 60 config.add_route(
41 61 name='hovercard_repo_commit',
42 62 pattern='/_hovercard/commit/{repo_name:.*?[^/]}/{commit_id}', repo_route=True)
43
44 # Scan module for configuration decorators.
45 config.scan('.views', ignore='.tests')
63 config.add_view(
64 HoverCardsRepoView,
65 attr='hovercard_repo_commit',
66 route_name='hovercard_repo_commit', request_method='GET', xhr=True,
67 renderer='rhodecode:templates/hovercards/hovercard_repo_commit.mako')
@@ -23,7 +23,7 b' import logging'
23 23 import collections
24 24
25 25 from pyramid.httpexceptions import HTTPNotFound
26 from pyramid.view import view_config
26
27 27
28 28 from rhodecode.apps._base import BaseAppView, RepoAppView
29 29 from rhodecode.lib import helpers as h
@@ -54,9 +54,6 b' class HoverCardsView(BaseAppView):'
54 54 return c
55 55
56 56 @LoginRequired()
57 @view_config(
58 route_name='hovercard_user', request_method='GET', xhr=True,
59 renderer='rhodecode:templates/hovercards/hovercard_user.mako')
60 57 def hovercard_user(self):
61 58 c = self.load_default_context()
62 59 user_id = self.request.matchdict['user_id']
@@ -64,9 +61,6 b' class HoverCardsView(BaseAppView):'
64 61 return self._get_template_context(c)
65 62
66 63 @LoginRequired()
67 @view_config(
68 route_name='hovercard_username', request_method='GET', xhr=True,
69 renderer='rhodecode:templates/hovercards/hovercard_user.mako')
70 64 def hovercard_username(self):
71 65 c = self.load_default_context()
72 66 username = self.request.matchdict['username']
@@ -77,9 +71,6 b' class HoverCardsView(BaseAppView):'
77 71 return self._get_template_context(c)
78 72
79 73 @LoginRequired()
80 @view_config(
81 route_name='hovercard_user_group', request_method='GET', xhr=True,
82 renderer='rhodecode:templates/hovercards/hovercard_user_group.mako')
83 74 def hovercard_user_group(self):
84 75 c = self.load_default_context()
85 76 user_group_id = self.request.matchdict['user_group_id']
@@ -87,9 +78,6 b' class HoverCardsView(BaseAppView):'
87 78 return self._get_template_context(c)
88 79
89 80 @LoginRequired()
90 @view_config(
91 route_name='hovercard_pull_request', request_method='GET', xhr=True,
92 renderer='rhodecode:templates/hovercards/hovercard_pull_request.mako')
93 81 def hovercard_pull_request(self):
94 82 c = self.load_default_context()
95 83 c.pull_request = PullRequest.get_or_404(
@@ -107,9 +95,6 b' class HoverCardsRepoView(RepoAppView):'
107 95
108 96 @LoginRequired()
109 97 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', 'repository.admin')
110 @view_config(
111 route_name='hovercard_repo_commit', request_method='GET', xhr=True,
112 renderer='rhodecode:templates/hovercards/hovercard_repo_commit.mako')
113 98 def hovercard_repo_commit(self):
114 99 c = self.load_default_context()
115 100 commit_id = self.request.matchdict['commit_id']
@@ -23,31 +23,80 b' from rhodecode.apps._base import ADMIN_P'
23 23
24 24
25 25 def admin_routes(config):
26 from rhodecode.apps.journal.views import JournalView
26 27
27 28 config.add_route(
28 29 name='journal', pattern='/journal')
30 config.add_view(
31 JournalView,
32 attr='journal',
33 route_name='journal', request_method='GET',
34 renderer=None)
35
29 36 config.add_route(
30 37 name='journal_rss', pattern='/journal/rss')
38 config.add_view(
39 JournalView,
40 attr='journal_rss',
41 route_name='journal_rss', request_method='GET',
42 renderer=None)
43
31 44 config.add_route(
32 45 name='journal_atom', pattern='/journal/atom')
46 config.add_view(
47 JournalView,
48 attr='journal_atom',
49 route_name='journal_atom', request_method='GET',
50 renderer=None)
33 51
34 52 config.add_route(
35 53 name='journal_public', pattern='/public_journal')
54 config.add_view(
55 JournalView,
56 attr='journal_public',
57 route_name='journal_public', request_method='GET',
58 renderer=None)
59
36 60 config.add_route(
37 61 name='journal_public_atom', pattern='/public_journal/atom')
62 config.add_view(
63 JournalView,
64 attr='journal_public_atom',
65 route_name='journal_public_atom', request_method='GET',
66 renderer=None)
67
38 68 config.add_route(
39 69 name='journal_public_atom_old', pattern='/public_journal_atom')
70 config.add_view(
71 JournalView,
72 attr='journal_public_atom',
73 route_name='journal_public_atom_old', request_method='GET',
74 renderer=None)
40 75
41 76 config.add_route(
42 77 name='journal_public_rss', pattern='/public_journal/rss')
78 config.add_view(
79 JournalView,
80 attr='journal_public_rss',
81 route_name='journal_public_rss', request_method='GET',
82 renderer=None)
83
43 84 config.add_route(
44 85 name='journal_public_rss_old', pattern='/public_journal_rss')
86 config.add_view(
87 JournalView,
88 attr='journal_public_rss',
89 route_name='journal_public_rss_old', request_method='GET',
90 renderer=None)
45 91
46 92 config.add_route(
47 93 name='toggle_following', pattern='/toggle_following')
94 config.add_view(
95 JournalView,
96 attr='toggle_following',
97 route_name='toggle_following', request_method='POST',
98 renderer='json_ext')
48 99
49 100
50 101 def includeme(config):
51 102 config.include(admin_routes, route_prefix=ADMIN_PREFIX)
52 # Scan module for configuration decorators.
53 config.scan('.views', ignore='.tests')
@@ -18,13 +18,9 b''
18 18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20
21
22 21 import logging
23 22 import itertools
24 23
25
26
27 from pyramid.view import view_config
28 24 from pyramid.httpexceptions import HTTPBadRequest
29 25 from pyramid.response import Response
30 26 from pyramid.renderers import render
@@ -218,9 +214,6 b' class JournalView(BaseAppView):'
218 214
219 215 @LoginRequired()
220 216 @NotAnonymous()
221 @view_config(
222 route_name='journal', request_method='GET',
223 renderer=None)
224 217 def journal(self):
225 218 c = self.load_default_context()
226 219
@@ -258,9 +251,6 b' class JournalView(BaseAppView):'
258 251
259 252 @LoginRequired(auth_token_access=[UserApiKeys.ROLE_FEED])
260 253 @NotAnonymous()
261 @view_config(
262 route_name='journal_atom', request_method='GET',
263 renderer=None)
264 254 def journal_atom(self):
265 255 """
266 256 Produce an atom-1.0 feed via feedgenerator module
@@ -274,9 +264,6 b' class JournalView(BaseAppView):'
274 264
275 265 @LoginRequired(auth_token_access=[UserApiKeys.ROLE_FEED])
276 266 @NotAnonymous()
277 @view_config(
278 route_name='journal_rss', request_method='GET',
279 renderer=None)
280 267 def journal_rss(self):
281 268 """
282 269 Produce an rss feed via feedgenerator module
@@ -289,39 +276,6 b' class JournalView(BaseAppView):'
289 276 return self._rss_feed(following_repos, c.search_term, public=False)
290 277
291 278 @LoginRequired()
292 @NotAnonymous()
293 @CSRFRequired()
294 @view_config(
295 route_name='toggle_following', request_method='POST',
296 renderer='json_ext')
297 def toggle_following(self):
298 user_id = self.request.POST.get('follows_user_id')
299 if user_id:
300 try:
301 ScmModel().toggle_following_user(user_id, self._rhodecode_user.user_id)
302 Session().commit()
303 return 'ok'
304 except Exception:
305 raise HTTPBadRequest()
306
307 repo_id = self.request.POST.get('follows_repo_id')
308 repo = Repository.get_or_404(repo_id)
309 perm_set = ['repository.read', 'repository.write', 'repository.admin']
310 has_perm = HasRepoPermissionAny(*perm_set)(repo.repo_name, 'RepoWatch check')
311 if repo and has_perm:
312 try:
313 ScmModel().toggle_following_repo(repo_id, self._rhodecode_user.user_id)
314 Session().commit()
315 return 'ok'
316 except Exception:
317 raise HTTPBadRequest()
318
319 raise HTTPBadRequest()
320
321 @LoginRequired()
322 @view_config(
323 route_name='journal_public', request_method='GET',
324 renderer=None)
325 279 def journal_public(self):
326 280 c = self.load_default_context()
327 281 # Return a rendered template
@@ -357,9 +311,6 b' class JournalView(BaseAppView):'
357 311 return Response(html)
358 312
359 313 @LoginRequired(auth_token_access=[UserApiKeys.ROLE_FEED])
360 @view_config(
361 route_name='journal_public_atom', request_method='GET',
362 renderer=None)
363 314 def journal_public_atom(self):
364 315 """
365 316 Produce an atom-1.0 feed via feedgenerator module
@@ -373,9 +324,6 b' class JournalView(BaseAppView):'
373 324 return self._atom_feed(following_repos, c.search_term)
374 325
375 326 @LoginRequired(auth_token_access=[UserApiKeys.ROLE_FEED])
376 @view_config(
377 route_name='journal_public_rss', request_method='GET',
378 renderer=None)
379 327 def journal_public_rss(self):
380 328 """
381 329 Produce an rss2 feed via feedgenerator module
@@ -387,3 +335,30 b' class JournalView(BaseAppView):'
387 335 .all()
388 336
389 337 return self._rss_feed(following_repos, c.search_term)
338
339 @LoginRequired()
340 @NotAnonymous()
341 @CSRFRequired()
342 def toggle_following(self):
343 user_id = self.request.POST.get('follows_user_id')
344 if user_id:
345 try:
346 ScmModel().toggle_following_user(user_id, self._rhodecode_user.user_id)
347 Session().commit()
348 return 'ok'
349 except Exception:
350 raise HTTPBadRequest()
351
352 repo_id = self.request.POST.get('follows_repo_id')
353 repo = Repository.get_or_404(repo_id)
354 perm_set = ['repository.read', 'repository.write', 'repository.admin']
355 has_perm = HasRepoPermissionAny(*perm_set)(repo.repo_name, 'RepoWatch check')
356 if repo and has_perm:
357 try:
358 ScmModel().toggle_following_repo(repo_id, self._rhodecode_user.user_id)
359 Session().commit()
360 return 'ok'
361 except Exception:
362 raise HTTPBadRequest()
363
364 raise HTTPBadRequest()
@@ -23,22 +23,57 b' from rhodecode.apps._base import ADMIN_P'
23 23
24 24
25 25 def includeme(config):
26
26 from rhodecode.apps.login.views import LoginView
27
27 28 config.add_route(
28 29 name='login',
29 30 pattern=ADMIN_PREFIX + '/login')
31 config.add_view(
32 LoginView,
33 attr='login',
34 route_name='login', request_method='GET',
35 renderer='rhodecode:templates/login.mako')
36 config.add_view(
37 LoginView,
38 attr='login_post',
39 route_name='login', request_method='POST',
40 renderer='rhodecode:templates/login.mako')
41
30 42 config.add_route(
31 43 name='logout',
32 44 pattern=ADMIN_PREFIX + '/logout')
45 config.add_view(
46 LoginView,
47 attr='logout',
48 route_name='logout', request_method='POST')
49
33 50 config.add_route(
34 51 name='register',
35 52 pattern=ADMIN_PREFIX + '/register')
53 config.add_view(
54 LoginView,
55 attr='register',
56 route_name='register', request_method='GET',
57 renderer='rhodecode:templates/register.mako')
58 config.add_view(
59 LoginView,
60 attr='register_post',
61 route_name='register', request_method='POST',
62 renderer='rhodecode:templates/register.mako')
63
36 64 config.add_route(
37 65 name='reset_password',
38 66 pattern=ADMIN_PREFIX + '/password_reset')
67 config.add_view(
68 LoginView,
69 attr='password_reset',
70 route_name='reset_password', request_method=('GET', 'POST'),
71 renderer='rhodecode:templates/password_reset.mako')
72
39 73 config.add_route(
40 74 name='reset_password_confirmation',
41 75 pattern=ADMIN_PREFIX + '/password_reset_confirmation')
42
43 # Scan module for configuration decorators.
44 config.scan('.views', ignore='.tests')
76 config.add_view(
77 LoginView,
78 attr='password_reset_confirmation',
79 route_name='reset_password_confirmation', request_method='GET')
@@ -28,7 +28,7 b' import urlparse'
28 28 import requests
29 29
30 30 from pyramid.httpexceptions import HTTPFound
31 from pyramid.view import view_config
31
32 32
33 33 from rhodecode.apps._base import BaseAppView
34 34 from rhodecode.authentication.base import authenticate, HTTP_TYPE
@@ -114,7 +114,6 b' class LoginView(BaseAppView):'
114 114 def load_default_context(self):
115 115 c = self._get_local_tmpl_context()
116 116 c.came_from = get_came_from(self.request)
117
118 117 return c
119 118
120 119 def _get_captcha_data(self):
@@ -148,9 +147,6 b' class LoginView(BaseAppView):'
148 147
149 148 return captcha_status, captcha_message
150 149
151 @view_config(
152 route_name='login', request_method='GET',
153 renderer='rhodecode:templates/login.mako')
154 150 def login(self):
155 151 c = self.load_default_context()
156 152 auth_user = self._rhodecode_user
@@ -175,9 +171,6 b' class LoginView(BaseAppView):'
175 171
176 172 return self._get_template_context(c)
177 173
178 @view_config(
179 route_name='login', request_method='POST',
180 renderer='rhodecode:templates/login.mako')
181 174 def login_post(self):
182 175 c = self.load_default_context()
183 176
@@ -229,7 +222,6 b' class LoginView(BaseAppView):'
229 222 return self._get_template_context(c)
230 223
231 224 @CSRFRequired()
232 @view_config(route_name='logout', request_method='POST')
233 225 def logout(self):
234 226 auth_user = self._rhodecode_user
235 227 log.info('Deleting session for user: `%s`', auth_user)
@@ -243,9 +235,6 b' class LoginView(BaseAppView):'
243 235
244 236 @HasPermissionAnyDecorator(
245 237 'hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')
246 @view_config(
247 route_name='register', request_method='GET',
248 renderer='rhodecode:templates/register.mako',)
249 238 def register(self, defaults=None, errors=None):
250 239 c = self.load_default_context()
251 240 defaults = defaults or {}
@@ -270,9 +259,6 b' class LoginView(BaseAppView):'
270 259
271 260 @HasPermissionAnyDecorator(
272 261 'hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')
273 @view_config(
274 route_name='register', request_method='POST',
275 renderer='rhodecode:templates/register.mako')
276 262 def register_post(self):
277 263 from rhodecode.authentication.plugins import auth_rhodecode
278 264
@@ -353,9 +339,6 b' class LoginView(BaseAppView):'
353 339 h.flash(e, category='error')
354 340 return self.register()
355 341
356 @view_config(
357 route_name='reset_password', request_method=('GET', 'POST'),
358 renderer='rhodecode:templates/password_reset.mako')
359 342 def password_reset(self):
360 343 c = self.load_default_context()
361 344 captcha = self._get_captcha_data()
@@ -454,8 +437,6 b' class LoginView(BaseAppView):'
454 437
455 438 return self._get_template_context(c, **template_context)
456 439
457 @view_config(route_name='reset_password_confirmation',
458 request_method='GET')
459 440 def password_reset_confirmation(self):
460 441 self.load_default_context()
461 442 if self.request.GET and self.request.GET.get('key'):
@@ -23,138 +23,311 b' from rhodecode.apps._base import ADMIN_P'
23 23
24 24
25 25 def includeme(config):
26 from rhodecode.apps.my_account.views.my_account import MyAccountView
27 from rhodecode.apps.my_account.views.my_account_notifications import MyAccountNotificationsView
28 from rhodecode.apps.my_account.views.my_account_ssh_keys import MyAccountSshKeysView
26 29
27 30 config.add_route(
28 31 name='my_account_profile',
29 32 pattern=ADMIN_PREFIX + '/my_account/profile')
33 config.add_view(
34 MyAccountView,
35 attr='my_account_profile',
36 route_name='my_account_profile', request_method='GET',
37 renderer='rhodecode:templates/admin/my_account/my_account.mako')
30 38
31 39 # my account edit details
32 40 config.add_route(
33 41 name='my_account_edit',
34 42 pattern=ADMIN_PREFIX + '/my_account/edit')
43 config.add_view(
44 MyAccountView,
45 attr='my_account_edit',
46 route_name='my_account_edit',
47 request_method='GET',
48 renderer='rhodecode:templates/admin/my_account/my_account.mako')
49
35 50 config.add_route(
36 51 name='my_account_update',
37 52 pattern=ADMIN_PREFIX + '/my_account/update')
53 config.add_view(
54 MyAccountView,
55 attr='my_account_update',
56 route_name='my_account_update',
57 request_method='POST',
58 renderer='rhodecode:templates/admin/my_account/my_account.mako')
38 59
39 60 # my account password
40 61 config.add_route(
41 62 name='my_account_password',
42 63 pattern=ADMIN_PREFIX + '/my_account/password')
64 config.add_view(
65 MyAccountView,
66 attr='my_account_password',
67 route_name='my_account_password', request_method='GET',
68 renderer='rhodecode:templates/admin/my_account/my_account.mako')
43 69
44 70 config.add_route(
45 71 name='my_account_password_update',
46 72 pattern=ADMIN_PREFIX + '/my_account/password/update')
73 config.add_view(
74 MyAccountView,
75 attr='my_account_password_update',
76 route_name='my_account_password_update', request_method='POST',
77 renderer='rhodecode:templates/admin/my_account/my_account.mako')
47 78
48 79 # my account tokens
49 80 config.add_route(
50 81 name='my_account_auth_tokens',
51 82 pattern=ADMIN_PREFIX + '/my_account/auth_tokens')
83 config.add_view(
84 MyAccountView,
85 attr='my_account_auth_tokens',
86 route_name='my_account_auth_tokens', request_method='GET',
87 renderer='rhodecode:templates/admin/my_account/my_account.mako')
88
52 89 config.add_route(
53 90 name='my_account_auth_tokens_view',
54 91 pattern=ADMIN_PREFIX + '/my_account/auth_tokens/view')
92 config.add_view(
93 MyAccountView,
94 attr='my_account_auth_tokens_view',
95 route_name='my_account_auth_tokens_view', request_method='POST', xhr=True,
96 renderer='json_ext')
97
55 98 config.add_route(
56 99 name='my_account_auth_tokens_add',
57 100 pattern=ADMIN_PREFIX + '/my_account/auth_tokens/new')
101 config.add_view(
102 MyAccountView,
103 attr='my_account_auth_tokens_add',
104 route_name='my_account_auth_tokens_add', request_method='POST')
105
58 106 config.add_route(
59 107 name='my_account_auth_tokens_delete',
60 108 pattern=ADMIN_PREFIX + '/my_account/auth_tokens/delete')
109 config.add_view(
110 MyAccountView,
111 attr='my_account_auth_tokens_delete',
112 route_name='my_account_auth_tokens_delete', request_method='POST')
61 113
62 114 # my account ssh keys
63 115 config.add_route(
64 116 name='my_account_ssh_keys',
65 117 pattern=ADMIN_PREFIX + '/my_account/ssh_keys')
118 config.add_view(
119 MyAccountSshKeysView,
120 attr='my_account_ssh_keys',
121 route_name='my_account_ssh_keys', request_method='GET',
122 renderer='rhodecode:templates/admin/my_account/my_account.mako')
123
66 124 config.add_route(
67 125 name='my_account_ssh_keys_generate',
68 126 pattern=ADMIN_PREFIX + '/my_account/ssh_keys/generate')
127 config.add_view(
128 MyAccountSshKeysView,
129 attr='ssh_keys_generate_keypair',
130 route_name='my_account_ssh_keys_generate', request_method='GET',
131 renderer='rhodecode:templates/admin/my_account/my_account.mako')
132
69 133 config.add_route(
70 134 name='my_account_ssh_keys_add',
71 135 pattern=ADMIN_PREFIX + '/my_account/ssh_keys/new')
136 config.add_view(
137 MyAccountSshKeysView,
138 attr='my_account_ssh_keys_add',
139 route_name='my_account_ssh_keys_add', request_method='POST',)
140
72 141 config.add_route(
73 142 name='my_account_ssh_keys_delete',
74 143 pattern=ADMIN_PREFIX + '/my_account/ssh_keys/delete')
144 config.add_view(
145 MyAccountSshKeysView,
146 attr='my_account_ssh_keys_delete',
147 route_name='my_account_ssh_keys_delete', request_method='POST')
75 148
76 149 # my account user group membership
77 150 config.add_route(
78 151 name='my_account_user_group_membership',
79 152 pattern=ADMIN_PREFIX + '/my_account/user_group_membership')
153 config.add_view(
154 MyAccountView,
155 attr='my_account_user_group_membership',
156 route_name='my_account_user_group_membership',
157 request_method='GET',
158 renderer='rhodecode:templates/admin/my_account/my_account.mako')
80 159
81 160 # my account emails
82 161 config.add_route(
83 162 name='my_account_emails',
84 163 pattern=ADMIN_PREFIX + '/my_account/emails')
164 config.add_view(
165 MyAccountView,
166 attr='my_account_emails',
167 route_name='my_account_emails', request_method='GET',
168 renderer='rhodecode:templates/admin/my_account/my_account.mako')
169
85 170 config.add_route(
86 171 name='my_account_emails_add',
87 172 pattern=ADMIN_PREFIX + '/my_account/emails/new')
173 config.add_view(
174 MyAccountView,
175 attr='my_account_emails_add',
176 route_name='my_account_emails_add', request_method='POST',
177 renderer='rhodecode:templates/admin/my_account/my_account.mako')
178
88 179 config.add_route(
89 180 name='my_account_emails_delete',
90 181 pattern=ADMIN_PREFIX + '/my_account/emails/delete')
182 config.add_view(
183 MyAccountView,
184 attr='my_account_emails_delete',
185 route_name='my_account_emails_delete', request_method='POST')
91 186
92 187 config.add_route(
93 188 name='my_account_repos',
94 189 pattern=ADMIN_PREFIX + '/my_account/repos')
190 config.add_view(
191 MyAccountView,
192 attr='my_account_repos',
193 route_name='my_account_repos', request_method='GET',
194 renderer='rhodecode:templates/admin/my_account/my_account.mako')
95 195
96 196 config.add_route(
97 197 name='my_account_watched',
98 198 pattern=ADMIN_PREFIX + '/my_account/watched')
199 config.add_view(
200 MyAccountView,
201 attr='my_account_watched',
202 route_name='my_account_watched', request_method='GET',
203 renderer='rhodecode:templates/admin/my_account/my_account.mako')
99 204
100 205 config.add_route(
101 206 name='my_account_bookmarks',
102 207 pattern=ADMIN_PREFIX + '/my_account/bookmarks')
208 config.add_view(
209 MyAccountView,
210 attr='my_account_bookmarks',
211 route_name='my_account_bookmarks', request_method='GET',
212 renderer='rhodecode:templates/admin/my_account/my_account.mako')
103 213
104 214 config.add_route(
105 215 name='my_account_bookmarks_update',
106 216 pattern=ADMIN_PREFIX + '/my_account/bookmarks/update')
217 config.add_view(
218 MyAccountView,
219 attr='my_account_bookmarks_update',
220 route_name='my_account_bookmarks_update', request_method='POST')
107 221
108 222 config.add_route(
109 223 name='my_account_goto_bookmark',
110 224 pattern=ADMIN_PREFIX + '/my_account/bookmark/{bookmark_id}')
225 config.add_view(
226 MyAccountView,
227 attr='my_account_goto_bookmark',
228 route_name='my_account_goto_bookmark', request_method='GET',
229 renderer='rhodecode:templates/admin/my_account/my_account.mako')
111 230
112 231 config.add_route(
113 232 name='my_account_perms',
114 233 pattern=ADMIN_PREFIX + '/my_account/perms')
234 config.add_view(
235 MyAccountView,
236 attr='my_account_perms',
237 route_name='my_account_perms', request_method='GET',
238 renderer='rhodecode:templates/admin/my_account/my_account.mako')
115 239
116 240 config.add_route(
117 241 name='my_account_notifications',
118 242 pattern=ADMIN_PREFIX + '/my_account/notifications')
243 config.add_view(
244 MyAccountView,
245 attr='my_notifications',
246 route_name='my_account_notifications', request_method='GET',
247 renderer='rhodecode:templates/admin/my_account/my_account.mako')
119 248
120 249 config.add_route(
121 250 name='my_account_notifications_toggle_visibility',
122 251 pattern=ADMIN_PREFIX + '/my_account/toggle_visibility')
252 config.add_view(
253 MyAccountView,
254 attr='my_notifications_toggle_visibility',
255 route_name='my_account_notifications_toggle_visibility',
256 request_method='POST', renderer='json_ext')
123 257
124 258 # my account pull requests
125 259 config.add_route(
126 260 name='my_account_pullrequests',
127 261 pattern=ADMIN_PREFIX + '/my_account/pull_requests')
262 config.add_view(
263 MyAccountView,
264 attr='my_account_pullrequests',
265 route_name='my_account_pullrequests',
266 request_method='GET',
267 renderer='rhodecode:templates/admin/my_account/my_account.mako')
268
128 269 config.add_route(
129 270 name='my_account_pullrequests_data',
130 271 pattern=ADMIN_PREFIX + '/my_account/pull_requests/data')
272 config.add_view(
273 MyAccountView,
274 attr='my_account_pullrequests_data',
275 route_name='my_account_pullrequests_data',
276 request_method='GET', renderer='json_ext')
277
278 # channelstream test
279 config.add_route(
280 name='my_account_notifications_test_channelstream',
281 pattern=ADMIN_PREFIX + '/my_account/test_channelstream')
282 config.add_view(
283 MyAccountView,
284 attr='my_account_notifications_test_channelstream',
285 route_name='my_account_notifications_test_channelstream',
286 request_method='POST', renderer='json_ext')
131 287
132 288 # notifications
133 289 config.add_route(
134 290 name='notifications_show_all',
135 291 pattern=ADMIN_PREFIX + '/notifications')
292 config.add_view(
293 MyAccountNotificationsView,
294 attr='notifications_show_all',
295 route_name='notifications_show_all', request_method='GET',
296 renderer='rhodecode:templates/admin/notifications/notifications_show_all.mako')
136 297
137 298 # notifications
138 299 config.add_route(
139 300 name='notifications_mark_all_read',
140 pattern=ADMIN_PREFIX + '/notifications/mark_all_read')
301 pattern=ADMIN_PREFIX + '/notifications_mark_all_read')
302 config.add_view(
303 MyAccountNotificationsView,
304 attr='notifications_mark_all_read',
305 route_name='notifications_mark_all_read', request_method='POST',
306 renderer='rhodecode:templates/admin/notifications/notifications_show_all.mako')
141 307
142 308 config.add_route(
143 309 name='notifications_show',
144 310 pattern=ADMIN_PREFIX + '/notifications/{notification_id}')
311 config.add_view(
312 MyAccountNotificationsView,
313 attr='notifications_show',
314 route_name='notifications_show', request_method='GET',
315 renderer='rhodecode:templates/admin/notifications/notifications_show.mako')
145 316
146 317 config.add_route(
147 318 name='notifications_update',
148 319 pattern=ADMIN_PREFIX + '/notifications/{notification_id}/update')
320 config.add_view(
321 MyAccountNotificationsView,
322 attr='notification_update',
323 route_name='notifications_update', request_method='POST',
324 renderer='json_ext')
149 325
150 326 config.add_route(
151 327 name='notifications_delete',
152 328 pattern=ADMIN_PREFIX + '/notifications/{notification_id}/delete')
153
154 # channelstream test
155 config.add_route(
156 name='my_account_notifications_test_channelstream',
157 pattern=ADMIN_PREFIX + '/my_account/test_channelstream')
158
159 # Scan module for configuration decorators.
160 config.scan('.views', ignore='.tests')
329 config.add_view(
330 MyAccountNotificationsView,
331 attr='notification_delete',
332 route_name='notifications_delete', request_method='POST',
333 renderer='json_ext')
@@ -40,7 +40,7 b' def route_path(name, params=None, **kwar'
40 40
41 41 base_url = {
42 42 'notifications_show_all': ADMIN_PREFIX + '/notifications',
43 'notifications_mark_all_read': ADMIN_PREFIX + '/notifications/mark_all_read',
43 'notifications_mark_all_read': ADMIN_PREFIX + '/notifications_mark_all_read',
44 44 'notifications_show': ADMIN_PREFIX + '/notifications/{notification_id}',
45 45 'notifications_update': ADMIN_PREFIX + '/notifications/{notification_id}/update',
46 46 'notifications_delete': ADMIN_PREFIX + '/notifications/{notification_id}/delete',
@@ -60,6 +60,15 b' class TestNotificationsController(TestCo'
60 60 Session().delete(inst)
61 61 Session().commit()
62 62
63 def test_mark_all_read(self, user_util):
64 user = user_util.create_user(password='qweqwe')
65 self.log_user(user.username, 'qweqwe')
66
67 self.app.post(
68 route_path('notifications_mark_all_read'), status=302,
69 params={'csrf_token': self.csrf_token}
70 )
71
63 72 def test_show_all(self, user_util):
64 73 user = user_util.create_user(password='qweqwe')
65 74 user_id = user.user_id
@@ -26,7 +26,6 b' import formencode'
26 26 import formencode.htmlfill
27 27 import peppercorn
28 28 from pyramid.httpexceptions import HTTPFound, HTTPNotFound
29 from pyramid.view import view_config
30 29
31 30 from rhodecode.apps._base import BaseAppView, DataGridAppView
32 31 from rhodecode import forms
@@ -65,14 +64,10 b' class MyAccountView(BaseAppView, DataGri'
65 64 c = self._get_local_tmpl_context()
66 65 c.user = c.auth_user.get_instance()
67 66 c.allow_scoped_tokens = self.ALLOW_SCOPED_TOKENS
68
69 67 return c
70 68
71 69 @LoginRequired()
72 70 @NotAnonymous()
73 @view_config(
74 route_name='my_account_profile', request_method='GET',
75 renderer='rhodecode:templates/admin/my_account/my_account.mako')
76 71 def my_account_profile(self):
77 72 c = self.load_default_context()
78 73 c.active = 'profile'
@@ -81,9 +76,75 b' class MyAccountView(BaseAppView, DataGri'
81 76
82 77 @LoginRequired()
83 78 @NotAnonymous()
84 @view_config(
85 route_name='my_account_password', request_method='GET',
86 renderer='rhodecode:templates/admin/my_account/my_account.mako')
79 def my_account_edit(self):
80 c = self.load_default_context()
81 c.active = 'profile_edit'
82 c.extern_type = c.user.extern_type
83 c.extern_name = c.user.extern_name
84
85 schema = user_schema.UserProfileSchema().bind(
86 username=c.user.username, user_emails=c.user.emails)
87 appstruct = {
88 'username': c.user.username,
89 'email': c.user.email,
90 'firstname': c.user.firstname,
91 'lastname': c.user.lastname,
92 'description': c.user.description,
93 }
94 c.form = forms.RcForm(
95 schema, appstruct=appstruct,
96 action=h.route_path('my_account_update'),
97 buttons=(forms.buttons.save, forms.buttons.reset))
98
99 return self._get_template_context(c)
100
101 @LoginRequired()
102 @NotAnonymous()
103 @CSRFRequired()
104 def my_account_update(self):
105 _ = self.request.translate
106 c = self.load_default_context()
107 c.active = 'profile_edit'
108 c.perm_user = c.auth_user
109 c.extern_type = c.user.extern_type
110 c.extern_name = c.user.extern_name
111
112 schema = user_schema.UserProfileSchema().bind(
113 username=c.user.username, user_emails=c.user.emails)
114 form = forms.RcForm(
115 schema, buttons=(forms.buttons.save, forms.buttons.reset))
116
117 controls = self.request.POST.items()
118 try:
119 valid_data = form.validate(controls)
120 skip_attrs = ['admin', 'active', 'extern_type', 'extern_name',
121 'new_password', 'password_confirmation']
122 if c.extern_type != "rhodecode":
123 # forbid updating username for external accounts
124 skip_attrs.append('username')
125 old_email = c.user.email
126 UserModel().update_user(
127 self._rhodecode_user.user_id, skip_attrs=skip_attrs,
128 **valid_data)
129 if old_email != valid_data['email']:
130 old = UserEmailMap.query() \
131 .filter(UserEmailMap.user == c.user)\
132 .filter(UserEmailMap.email == valid_data['email'])\
133 .first()
134 old.email = old_email
135 h.flash(_('Your account was updated successfully'), category='success')
136 Session().commit()
137 except forms.ValidationFailure as e:
138 c.form = e
139 return self._get_template_context(c)
140 except Exception:
141 log.exception("Exception updating user")
142 h.flash(_('Error occurred during update of user'),
143 category='error')
144 raise HTTPFound(h.route_path('my_account_profile'))
145
146 @LoginRequired()
147 @NotAnonymous()
87 148 def my_account_password(self):
88 149 c = self.load_default_context()
89 150 c.active = 'password'
@@ -103,9 +164,6 b' class MyAccountView(BaseAppView, DataGri'
103 164 @LoginRequired()
104 165 @NotAnonymous()
105 166 @CSRFRequired()
106 @view_config(
107 route_name='my_account_password_update', request_method='POST',
108 renderer='rhodecode:templates/admin/my_account/my_account.mako')
109 167 def my_account_password_update(self):
110 168 _ = self.request.translate
111 169 c = self.load_default_context()
@@ -146,9 +204,6 b' class MyAccountView(BaseAppView, DataGri'
146 204
147 205 @LoginRequired()
148 206 @NotAnonymous()
149 @view_config(
150 route_name='my_account_auth_tokens', request_method='GET',
151 renderer='rhodecode:templates/admin/my_account/my_account.mako')
152 207 def my_account_auth_tokens(self):
153 208 _ = self.request.translate
154 209
@@ -167,9 +222,6 b' class MyAccountView(BaseAppView, DataGri'
167 222 @LoginRequired()
168 223 @NotAnonymous()
169 224 @CSRFRequired()
170 @view_config(
171 route_name='my_account_auth_tokens_view', request_method='POST', xhr=True,
172 renderer='json_ext')
173 225 def my_account_auth_tokens_view(self):
174 226 _ = self.request.translate
175 227 c = self.load_default_context()
@@ -192,8 +244,6 b' class MyAccountView(BaseAppView, DataGri'
192 244 @LoginRequired()
193 245 @NotAnonymous()
194 246 @CSRFRequired()
195 @view_config(
196 route_name='my_account_auth_tokens_add', request_method='POST',)
197 247 def my_account_auth_tokens_add(self):
198 248 _ = self.request.translate
199 249 c = self.load_default_context()
@@ -220,8 +270,6 b' class MyAccountView(BaseAppView, DataGri'
220 270 @LoginRequired()
221 271 @NotAnonymous()
222 272 @CSRFRequired()
223 @view_config(
224 route_name='my_account_auth_tokens_delete', request_method='POST')
225 273 def my_account_auth_tokens_delete(self):
226 274 _ = self.request.translate
227 275 c = self.load_default_context()
@@ -244,9 +292,6 b' class MyAccountView(BaseAppView, DataGri'
244 292
245 293 @LoginRequired()
246 294 @NotAnonymous()
247 @view_config(
248 route_name='my_account_emails', request_method='GET',
249 renderer='rhodecode:templates/admin/my_account/my_account.mako')
250 295 def my_account_emails(self):
251 296 _ = self.request.translate
252 297
@@ -269,9 +314,6 b' class MyAccountView(BaseAppView, DataGri'
269 314 @LoginRequired()
270 315 @NotAnonymous()
271 316 @CSRFRequired()
272 @view_config(
273 route_name='my_account_emails_add', request_method='POST',
274 renderer='rhodecode:templates/admin/my_account/my_account.mako')
275 317 def my_account_emails_add(self):
276 318 _ = self.request.translate
277 319 c = self.load_default_context()
@@ -312,8 +354,6 b' class MyAccountView(BaseAppView, DataGri'
312 354 @LoginRequired()
313 355 @NotAnonymous()
314 356 @CSRFRequired()
315 @view_config(
316 route_name='my_account_emails_delete', request_method='POST')
317 357 def my_account_emails_delete(self):
318 358 _ = self.request.translate
319 359 c = self.load_default_context()
@@ -334,9 +374,6 b' class MyAccountView(BaseAppView, DataGri'
334 374 @LoginRequired()
335 375 @NotAnonymous()
336 376 @CSRFRequired()
337 @view_config(
338 route_name='my_account_notifications_test_channelstream',
339 request_method='POST', renderer='json_ext')
340 377 def my_account_notifications_test_channelstream(self):
341 378 message = 'Test message sent via Channelstream by user: {}, on {}'.format(
342 379 self._rhodecode_user.username, datetime.datetime.now())
@@ -424,9 +461,6 b' class MyAccountView(BaseAppView, DataGri'
424 461
425 462 @LoginRequired()
426 463 @NotAnonymous()
427 @view_config(
428 route_name='my_account_repos', request_method='GET',
429 renderer='rhodecode:templates/admin/my_account/my_account.mako')
430 464 def my_account_repos(self):
431 465 c = self.load_default_context()
432 466 c.active = 'repos'
@@ -437,9 +471,6 b' class MyAccountView(BaseAppView, DataGri'
437 471
438 472 @LoginRequired()
439 473 @NotAnonymous()
440 @view_config(
441 route_name='my_account_watched', request_method='GET',
442 renderer='rhodecode:templates/admin/my_account/my_account.mako')
443 474 def my_account_watched(self):
444 475 c = self.load_default_context()
445 476 c.active = 'watched'
@@ -450,9 +481,6 b' class MyAccountView(BaseAppView, DataGri'
450 481
451 482 @LoginRequired()
452 483 @NotAnonymous()
453 @view_config(
454 route_name='my_account_bookmarks', request_method='GET',
455 renderer='rhodecode:templates/admin/my_account/my_account.mako')
456 484 def my_account_bookmarks(self):
457 485 c = self.load_default_context()
458 486 c.active = 'bookmarks'
@@ -519,8 +547,6 b' class MyAccountView(BaseAppView, DataGri'
519 547 @LoginRequired()
520 548 @NotAnonymous()
521 549 @CSRFRequired()
522 @view_config(
523 route_name='my_account_bookmarks_update', request_method='POST')
524 550 def my_account_bookmarks_update(self):
525 551 _ = self.request.translate
526 552 c = self.load_default_context()
@@ -559,9 +585,6 b' class MyAccountView(BaseAppView, DataGri'
559 585
560 586 @LoginRequired()
561 587 @NotAnonymous()
562 @view_config(
563 route_name='my_account_goto_bookmark', request_method='GET',
564 renderer='rhodecode:templates/admin/my_account/my_account.mako')
565 588 def my_account_goto_bookmark(self):
566 589
567 590 bookmark_id = self.request.matchdict['bookmark_id']
@@ -606,9 +629,6 b' class MyAccountView(BaseAppView, DataGri'
606 629
607 630 @LoginRequired()
608 631 @NotAnonymous()
609 @view_config(
610 route_name='my_account_perms', request_method='GET',
611 renderer='rhodecode:templates/admin/my_account/my_account.mako')
612 632 def my_account_perms(self):
613 633 c = self.load_default_context()
614 634 c.active = 'perms'
@@ -618,9 +638,6 b' class MyAccountView(BaseAppView, DataGri'
618 638
619 639 @LoginRequired()
620 640 @NotAnonymous()
621 @view_config(
622 route_name='my_account_notifications', request_method='GET',
623 renderer='rhodecode:templates/admin/my_account/my_account.mako')
624 641 def my_notifications(self):
625 642 c = self.load_default_context()
626 643 c.active = 'notifications'
@@ -630,9 +647,6 b' class MyAccountView(BaseAppView, DataGri'
630 647 @LoginRequired()
631 648 @NotAnonymous()
632 649 @CSRFRequired()
633 @view_config(
634 route_name='my_account_notifications_toggle_visibility',
635 request_method='POST', renderer='json_ext')
636 650 def my_notifications_toggle_visibility(self):
637 651 user = self._rhodecode_db_user
638 652 new_status = not user.user_data.get('notification_status', True)
@@ -640,83 +654,6 b' class MyAccountView(BaseAppView, DataGri'
640 654 Session().commit()
641 655 return user.user_data['notification_status']
642 656
643 @LoginRequired()
644 @NotAnonymous()
645 @view_config(
646 route_name='my_account_edit',
647 request_method='GET',
648 renderer='rhodecode:templates/admin/my_account/my_account.mako')
649 def my_account_edit(self):
650 c = self.load_default_context()
651 c.active = 'profile_edit'
652 c.extern_type = c.user.extern_type
653 c.extern_name = c.user.extern_name
654
655 schema = user_schema.UserProfileSchema().bind(
656 username=c.user.username, user_emails=c.user.emails)
657 appstruct = {
658 'username': c.user.username,
659 'email': c.user.email,
660 'firstname': c.user.firstname,
661 'lastname': c.user.lastname,
662 'description': c.user.description,
663 }
664 c.form = forms.RcForm(
665 schema, appstruct=appstruct,
666 action=h.route_path('my_account_update'),
667 buttons=(forms.buttons.save, forms.buttons.reset))
668
669 return self._get_template_context(c)
670
671 @LoginRequired()
672 @NotAnonymous()
673 @CSRFRequired()
674 @view_config(
675 route_name='my_account_update',
676 request_method='POST',
677 renderer='rhodecode:templates/admin/my_account/my_account.mako')
678 def my_account_update(self):
679 _ = self.request.translate
680 c = self.load_default_context()
681 c.active = 'profile_edit'
682 c.perm_user = c.auth_user
683 c.extern_type = c.user.extern_type
684 c.extern_name = c.user.extern_name
685
686 schema = user_schema.UserProfileSchema().bind(
687 username=c.user.username, user_emails=c.user.emails)
688 form = forms.RcForm(
689 schema, buttons=(forms.buttons.save, forms.buttons.reset))
690
691 controls = self.request.POST.items()
692 try:
693 valid_data = form.validate(controls)
694 skip_attrs = ['admin', 'active', 'extern_type', 'extern_name',
695 'new_password', 'password_confirmation']
696 if c.extern_type != "rhodecode":
697 # forbid updating username for external accounts
698 skip_attrs.append('username')
699 old_email = c.user.email
700 UserModel().update_user(
701 self._rhodecode_user.user_id, skip_attrs=skip_attrs,
702 **valid_data)
703 if old_email != valid_data['email']:
704 old = UserEmailMap.query() \
705 .filter(UserEmailMap.user == c.user)\
706 .filter(UserEmailMap.email == valid_data['email'])\
707 .first()
708 old.email = old_email
709 h.flash(_('Your account was updated successfully'), category='success')
710 Session().commit()
711 except forms.ValidationFailure as e:
712 c.form = e
713 return self._get_template_context(c)
714 except Exception:
715 log.exception("Exception updating user")
716 h.flash(_('Error occurred during update of user'),
717 category='error')
718 raise HTTPFound(h.route_path('my_account_profile'))
719
720 657 def _get_pull_requests_list(self, statuses):
721 658 draw, start, limit = self._extract_chunk(self.request)
722 659 search_q, order_by, order_dir = self._extract_ordering(self.request)
@@ -781,10 +718,6 b' class MyAccountView(BaseAppView, DataGri'
781 718
782 719 @LoginRequired()
783 720 @NotAnonymous()
784 @view_config(
785 route_name='my_account_pullrequests',
786 request_method='GET',
787 renderer='rhodecode:templates/admin/my_account/my_account.mako')
788 721 def my_account_pullrequests(self):
789 722 c = self.load_default_context()
790 723 c.active = 'pullrequests'
@@ -796,9 +729,6 b' class MyAccountView(BaseAppView, DataGri'
796 729
797 730 @LoginRequired()
798 731 @NotAnonymous()
799 @view_config(
800 route_name='my_account_pullrequests_data',
801 request_method='GET', renderer='json_ext')
802 732 def my_account_pullrequests_data(self):
803 733 self.load_default_context()
804 734 req_get = self.request.GET
@@ -813,10 +743,6 b' class MyAccountView(BaseAppView, DataGri'
813 743
814 744 @LoginRequired()
815 745 @NotAnonymous()
816 @view_config(
817 route_name='my_account_user_group_membership',
818 request_method='GET',
819 renderer='rhodecode:templates/admin/my_account/my_account.mako')
820 746 def my_account_user_group_membership(self):
821 747 c = self.load_default_context()
822 748 c.active = 'user_group_membership'
@@ -22,7 +22,6 b' import logging'
22 22
23 23 from pyramid.httpexceptions import (
24 24 HTTPFound, HTTPNotFound, HTTPInternalServerError)
25 from pyramid.view import view_config
26 25
27 26 from rhodecode.apps._base import BaseAppView
28 27 from rhodecode.lib.auth import LoginRequired, NotAnonymous, CSRFRequired
@@ -57,9 +56,6 b' class MyAccountNotificationsView(BaseApp'
57 56
58 57 @LoginRequired()
59 58 @NotAnonymous()
60 @view_config(
61 route_name='notifications_show_all', request_method='GET',
62 renderer='rhodecode:templates/admin/notifications/notifications_show_all.mako')
63 59 def notifications_show_all(self):
64 60 c = self.load_default_context()
65 61
@@ -105,22 +101,6 b' class MyAccountNotificationsView(BaseApp'
105 101
106 102 @LoginRequired()
107 103 @NotAnonymous()
108 @CSRFRequired()
109 @view_config(
110 route_name='notifications_mark_all_read', request_method='POST',
111 renderer='rhodecode:templates/admin/notifications/notifications_show_all.mako')
112 def notifications_mark_all_read(self):
113 NotificationModel().mark_all_read_for_user(
114 self._rhodecode_db_user.user_id,
115 filter_=self.request.GET.getall('type'))
116 Session().commit()
117 raise HTTPFound(h.route_path('notifications_show_all'))
118
119 @LoginRequired()
120 @NotAnonymous()
121 @view_config(
122 route_name='notifications_show', request_method='GET',
123 renderer='rhodecode:templates/admin/notifications/notifications_show.mako')
124 104 def notifications_show(self):
125 105 c = self.load_default_context()
126 106 notification_id = self.request.matchdict['notification_id']
@@ -150,9 +130,16 b' class MyAccountNotificationsView(BaseApp'
150 130 @LoginRequired()
151 131 @NotAnonymous()
152 132 @CSRFRequired()
153 @view_config(
154 route_name='notifications_update', request_method='POST',
155 renderer='json_ext')
133 def notifications_mark_all_read(self):
134 NotificationModel().mark_all_read_for_user(
135 self._rhodecode_db_user.user_id,
136 filter_=self.request.GET.getall('type'))
137 Session().commit()
138 raise HTTPFound(h.route_path('notifications_show_all'))
139
140 @LoginRequired()
141 @NotAnonymous()
142 @CSRFRequired()
156 143 def notification_update(self):
157 144 notification_id = self.request.matchdict['notification_id']
158 145 notification = Notification.get_or_404(notification_id)
@@ -177,9 +164,6 b' class MyAccountNotificationsView(BaseApp'
177 164 @LoginRequired()
178 165 @NotAnonymous()
179 166 @CSRFRequired()
180 @view_config(
181 route_name='notifications_delete', request_method='POST',
182 renderer='json_ext')
183 167 def notification_delete(self):
184 168 notification_id = self.request.matchdict['notification_id']
185 169 notification = Notification.get_or_404(notification_id)
@@ -21,7 +21,6 b''
21 21 import logging
22 22
23 23 from pyramid.httpexceptions import HTTPFound
24 from pyramid.view import view_config
25 24
26 25 from rhodecode.apps._base import BaseAppView, DataGridAppView
27 26 from rhodecode.apps.ssh_support import SshKeyFileChangeEvent
@@ -41,17 +40,12 b' class MyAccountSshKeysView(BaseAppView, '
41 40 def load_default_context(self):
42 41 c = self._get_local_tmpl_context()
43 42 c.user = c.auth_user.get_instance()
44
45 43 c.ssh_enabled = self.request.registry.settings.get(
46 44 'ssh.generate_authorized_keyfile')
47
48 45 return c
49 46
50 47 @LoginRequired()
51 48 @NotAnonymous()
52 @view_config(
53 route_name='my_account_ssh_keys', request_method='GET',
54 renderer='rhodecode:templates/admin/my_account/my_account.mako')
55 49 def my_account_ssh_keys(self):
56 50 _ = self.request.translate
57 51
@@ -63,9 +57,6 b' class MyAccountSshKeysView(BaseAppView, '
63 57
64 58 @LoginRequired()
65 59 @NotAnonymous()
66 @view_config(
67 route_name='my_account_ssh_keys_generate', request_method='GET',
68 renderer='rhodecode:templates/admin/my_account/my_account.mako')
69 60 def ssh_keys_generate_keypair(self):
70 61 _ = self.request.translate
71 62 c = self.load_default_context()
@@ -84,8 +75,6 b' class MyAccountSshKeysView(BaseAppView, '
84 75 @LoginRequired()
85 76 @NotAnonymous()
86 77 @CSRFRequired()
87 @view_config(
88 route_name='my_account_ssh_keys_add', request_method='POST',)
89 78 def my_account_ssh_keys_add(self):
90 79 _ = self.request.translate
91 80 c = self.load_default_context()
@@ -132,8 +121,6 b' class MyAccountSshKeysView(BaseAppView, '
132 121 @LoginRequired()
133 122 @NotAnonymous()
134 123 @CSRFRequired()
135 @view_config(
136 route_name='my_account_ssh_keys_delete', request_method='POST')
137 124 def my_account_ssh_keys_delete(self):
138 125 _ = self.request.translate
139 126 c = self.load_default_context()
@@ -22,25 +22,35 b' from rhodecode.apps._base import ADMIN_P'
22 22
23 23
24 24 def admin_routes(config):
25 from rhodecode.apps.ops.views import OpsView
26
25 27 config.add_route(
26 28 name='ops_ping',
27 29 pattern='/ping')
30 config.add_view(
31 OpsView,
32 attr='ops_ping',
33 route_name='ops_ping', request_method='GET',
34 renderer='json_ext')
35
28 36 config.add_route(
29 37 name='ops_error_test',
30 38 pattern='/error')
39 config.add_view(
40 OpsView,
41 attr='ops_error_test',
42 route_name='ops_error_test', request_method='GET',
43 renderer='json_ext')
44
31 45 config.add_route(
32 46 name='ops_redirect_test',
33 47 pattern='/redirect')
48 config.add_view(
49 OpsView,
50 attr='ops_redirect_test',
51 route_name='ops_redirect_test', request_method='GET',
52 renderer='json_ext')
34 53
35 54
36 55 def includeme(config):
37
38 56 config.include(admin_routes, route_prefix=ADMIN_PREFIX + '/ops')
39 # make OLD entries from <4.10.0 work
40 config.add_route(
41 name='ops_ping_legacy', pattern=ADMIN_PREFIX + '/ping')
42 config.add_route(
43 name='ops_error_test_legacy', pattern=ADMIN_PREFIX + '/error_test')
44
45 # Scan module for configuration decorators.
46 config.scan('.views', ignore='.tests')
@@ -21,7 +21,7 b''
21 21 import time
22 22 import logging
23 23
24 from pyramid.view import view_config
24
25 25 from pyramid.httpexceptions import HTTPFound
26 26
27 27 from rhodecode.apps._base import BaseAppView
@@ -38,12 +38,6 b' class OpsView(BaseAppView):'
38 38
39 39 return c
40 40
41 @view_config(
42 route_name='ops_ping', request_method='GET',
43 renderer='json_ext')
44 @view_config(
45 route_name='ops_ping_legacy', request_method='GET',
46 renderer='json_ext')
47 41 def ops_ping(self):
48 42 data = {
49 43 'instance': self.request.registry.settings.get('instance_id'),
@@ -59,12 +53,6 b' class OpsView(BaseAppView):'
59 53 })
60 54 return {'ok': data}
61 55
62 @view_config(
63 route_name='ops_error_test', request_method='GET',
64 renderer='json_ext')
65 @view_config(
66 route_name='ops_error_test_legacy', request_method='GET',
67 renderer='json_ext')
68 56 def ops_error_test(self):
69 57 """
70 58 Test exception handling and emails on errors
@@ -78,9 +66,6 b' class OpsView(BaseAppView):'
78 66 'Client:{}. Generation time: {}.'.format(self.request.user, time.time()))
79 67 raise TestException(msg)
80 68
81 @view_config(
82 route_name='ops_redirect_test', request_method='GET',
83 renderer='json_ext')
84 69 def ops_redirect_test(self):
85 70 """
86 71 Test redirect handling
@@ -18,6 +18,10 b''
18 18 # RhodeCode Enterprise Edition, including its added features, Support services,
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20 from rhodecode.apps._base import add_route_with_slash
21 from rhodecode.apps.repo_group.views.repo_group_settings import RepoGroupSettingsView
22 from rhodecode.apps.repo_group.views.repo_group_advanced import RepoGroupAdvancedSettingsView
23 from rhodecode.apps.repo_group.views.repo_group_permissions import RepoGroupPermissionsView
24 from rhodecode.apps.home.views import HomeView
21 25
22 26
23 27 def includeme(config):
@@ -27,35 +31,72 b' def includeme(config):'
27 31 name='edit_repo_group',
28 32 pattern='/{repo_group_name:.*?[^/]}/_edit',
29 33 repo_group_route=True)
30 # update is POST on edit_repo_group
34 config.add_view(
35 RepoGroupSettingsView,
36 attr='edit_settings',
37 route_name='edit_repo_group', request_method='GET',
38 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
39 config.add_view(
40 RepoGroupSettingsView,
41 attr='edit_settings_update',
42 route_name='edit_repo_group', request_method='POST',
43 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
31 44
32 45 # Settings advanced
33 46 config.add_route(
34 47 name='edit_repo_group_advanced',
35 48 pattern='/{repo_group_name:.*?[^/]}/_settings/advanced',
36 49 repo_group_route=True)
50 config.add_view(
51 RepoGroupAdvancedSettingsView,
52 attr='edit_repo_group_advanced',
53 route_name='edit_repo_group_advanced', request_method='GET',
54 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
37 55
38 56 config.add_route(
39 57 name='edit_repo_group_advanced_delete',
40 58 pattern='/{repo_group_name:.*?[^/]}/_settings/advanced/delete',
41 59 repo_group_route=True)
60 config.add_view(
61 RepoGroupAdvancedSettingsView,
62 attr='edit_repo_group_delete',
63 route_name='edit_repo_group_advanced_delete', request_method='POST',
64 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
42 65
43 66 # settings permissions
44 67 config.add_route(
45 68 name='edit_repo_group_perms',
46 69 pattern='/{repo_group_name:.*?[^/]}/_settings/permissions',
47 70 repo_group_route=True)
71 config.add_view(
72 RepoGroupPermissionsView,
73 attr='edit_repo_group_permissions',
74 route_name='edit_repo_group_perms', request_method='GET',
75 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
48 76
49 77 config.add_route(
50 78 name='edit_repo_group_perms_update',
51 79 pattern='/{repo_group_name:.*?[^/]}/_settings/permissions/update',
52 80 repo_group_route=True)
81 config.add_view(
82 RepoGroupPermissionsView,
83 attr='edit_repo_groups_permissions_update',
84 route_name='edit_repo_group_perms_update', request_method='POST',
85 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
53 86
54 87 # Summary, NOTE(marcink): needs to be at the end for catch-all
55 88 add_route_with_slash(
56 89 config,
57 90 name='repo_group_home',
58 91 pattern='/{repo_group_name:.*?[^/]}', repo_group_route=True)
92 config.add_view(
93 HomeView,
94 attr='repo_group_main_page',
95 route_name='repo_group_home', request_method='GET',
96 renderer='rhodecode:templates/index_repo_group.mako')
97 config.add_view(
98 HomeView,
99 attr='repo_group_main_page',
100 route_name='repo_group_home_slash', request_method='GET',
101 renderer='rhodecode:templates/index_repo_group.mako')
59 102
60 # Scan module for configuration decorators.
61 config.scan('.views', ignore='.tests')
@@ -20,7 +20,7 b''
20 20
21 21 import logging
22 22
23 from pyramid.view import view_config
23
24 24 from pyramid.httpexceptions import HTTPFound
25 25
26 26 from rhodecode.apps._base import RepoGroupAppView
@@ -34,17 +34,13 b' from rhodecode.model.meta import Session'
34 34 log = logging.getLogger(__name__)
35 35
36 36
37 class RepoGroupSettingsView(RepoGroupAppView):
37 class RepoGroupAdvancedSettingsView(RepoGroupAppView):
38 38 def load_default_context(self):
39 39 c = self._get_local_tmpl_context()
40
41 40 return c
42 41
43 42 @LoginRequired()
44 43 @HasRepoGroupPermissionAnyDecorator('group.admin')
45 @view_config(
46 route_name='edit_repo_group_advanced', request_method='GET',
47 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
48 44 def edit_repo_group_advanced(self):
49 45 _ = self.request.translate
50 46 c = self.load_default_context()
@@ -61,9 +57,6 b' class RepoGroupSettingsView(RepoGroupApp'
61 57 @LoginRequired()
62 58 @HasRepoGroupPermissionAnyDecorator('group.admin')
63 59 @CSRFRequired()
64 @view_config(
65 route_name='edit_repo_group_advanced_delete', request_method='POST',
66 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
67 60 def edit_repo_group_delete(self):
68 61 _ = self.request.translate
69 62 _ungettext = self.request.plularize
@@ -20,7 +20,7 b''
20 20
21 21 import logging
22 22
23 from pyramid.view import view_config
23
24 24 from pyramid.httpexceptions import HTTPFound
25 25
26 26 from rhodecode.apps._base import RepoGroupAppView
@@ -45,9 +45,6 b' class RepoGroupPermissionsView(RepoGroup'
45 45
46 46 @LoginRequired()
47 47 @HasRepoGroupPermissionAnyDecorator('group.admin')
48 @view_config(
49 route_name='edit_repo_group_perms', request_method='GET',
50 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
51 48 def edit_repo_group_permissions(self):
52 49 c = self.load_default_context()
53 50 c.active = 'permissions'
@@ -57,9 +54,6 b' class RepoGroupPermissionsView(RepoGroup'
57 54 @LoginRequired()
58 55 @HasRepoGroupPermissionAnyDecorator('group.admin')
59 56 @CSRFRequired()
60 @view_config(
61 route_name='edit_repo_group_perms_update', request_method='POST',
62 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
63 57 def edit_repo_groups_permissions_update(self):
64 58 _ = self.request.translate
65 59 c = self.load_default_context()
@@ -21,7 +21,7 b''
21 21 import logging
22 22 import deform
23 23
24 from pyramid.view import view_config
24
25 25 from pyramid.httpexceptions import HTTPFound
26 26
27 27 from rhodecode import events
@@ -109,9 +109,6 b' class RepoGroupSettingsView(RepoGroupApp'
109 109
110 110 @LoginRequired()
111 111 @HasRepoGroupPermissionAnyDecorator('group.admin')
112 @view_config(
113 route_name='edit_repo_group', request_method='GET',
114 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
115 112 def edit_settings(self):
116 113 c = self.load_default_context()
117 114 c.active = 'settings'
@@ -126,9 +123,6 b' class RepoGroupSettingsView(RepoGroupApp'
126 123 @LoginRequired()
127 124 @HasRepoGroupPermissionAnyDecorator('group.admin')
128 125 @CSRFRequired()
129 @view_config(
130 route_name='edit_repo_group', request_method='POST',
131 renderer='rhodecode:templates/admin/repo_groups/repo_group_edit.mako')
132 126 def edit_settings_update(self):
133 127 _ = self.request.translate
134 128 c = self.load_default_context()
This diff has been collapsed as it changes many lines, (707 lines changed) Show them Hide them
@@ -21,15 +21,52 b' from rhodecode.apps._base import add_rou'
21 21
22 22
23 23 def includeme(config):
24 from rhodecode.apps.repository.views.repo_artifacts import RepoArtifactsView
25 from rhodecode.apps.repository.views.repo_audit_logs import AuditLogsView
26 from rhodecode.apps.repository.views.repo_automation import RepoAutomationView
27 from rhodecode.apps.repository.views.repo_bookmarks import RepoBookmarksView
28 from rhodecode.apps.repository.views.repo_branch_permissions import RepoSettingsBranchPermissionsView
29 from rhodecode.apps.repository.views.repo_branches import RepoBranchesView
30 from rhodecode.apps.repository.views.repo_caches import RepoCachesView
31 from rhodecode.apps.repository.views.repo_changelog import RepoChangelogView
32 from rhodecode.apps.repository.views.repo_checks import RepoChecksView
33 from rhodecode.apps.repository.views.repo_commits import RepoCommitsView
34 from rhodecode.apps.repository.views.repo_compare import RepoCompareView
35 from rhodecode.apps.repository.views.repo_feed import RepoFeedView
36 from rhodecode.apps.repository.views.repo_files import RepoFilesView
37 from rhodecode.apps.repository.views.repo_forks import RepoForksView
38 from rhodecode.apps.repository.views.repo_maintainance import RepoMaintenanceView
39 from rhodecode.apps.repository.views.repo_permissions import RepoSettingsPermissionsView
40 from rhodecode.apps.repository.views.repo_pull_requests import RepoPullRequestsView
41 from rhodecode.apps.repository.views.repo_review_rules import RepoReviewRulesView
42 from rhodecode.apps.repository.views.repo_settings import RepoSettingsView
43 from rhodecode.apps.repository.views.repo_settings_advanced import RepoSettingsAdvancedView
44 from rhodecode.apps.repository.views.repo_settings_fields import RepoSettingsFieldsView
45 from rhodecode.apps.repository.views.repo_settings_issue_trackers import RepoSettingsIssueTrackersView
46 from rhodecode.apps.repository.views.repo_settings_remote import RepoSettingsRemoteView
47 from rhodecode.apps.repository.views.repo_settings_vcs import RepoSettingsVcsView
48 from rhodecode.apps.repository.views.repo_strip import RepoStripView
49 from rhodecode.apps.repository.views.repo_summary import RepoSummaryView
50 from rhodecode.apps.repository.views.repo_tags import RepoTagsView
24 51
25 52 # repo creating checks, special cases that aren't repo routes
26 53 config.add_route(
27 54 name='repo_creating',
28 55 pattern='/{repo_name:.*?[^/]}/repo_creating')
56 config.add_view(
57 RepoChecksView,
58 attr='repo_creating',
59 route_name='repo_creating', request_method='GET',
60 renderer='rhodecode:templates/admin/repos/repo_creating.mako')
29 61
30 62 config.add_route(
31 63 name='repo_creating_check',
32 64 pattern='/{repo_name:.*?[^/]}/repo_creating_check')
65 config.add_view(
66 RepoChecksView,
67 attr='repo_creating_check',
68 route_name='repo_creating_check', request_method='GET',
69 renderer='json_ext')
33 70
34 71 # Summary
35 72 # NOTE(marcink): one additional route is defined in very bottom, catch
@@ -37,191 +74,467 b' def includeme(config):'
37 74 config.add_route(
38 75 name='repo_summary_explicit',
39 76 pattern='/{repo_name:.*?[^/]}/summary', repo_route=True)
77 config.add_view(
78 RepoSummaryView,
79 attr='summary',
80 route_name='repo_summary_explicit', request_method='GET',
81 renderer='rhodecode:templates/summary/summary.mako')
82
40 83 config.add_route(
41 84 name='repo_summary_commits',
42 85 pattern='/{repo_name:.*?[^/]}/summary-commits', repo_route=True)
43
86 config.add_view(
87 RepoSummaryView,
88 attr='summary_commits',
89 route_name='repo_summary_commits', request_method='GET',
90 renderer='rhodecode:templates/summary/summary_commits.mako')
91
44 92 # Commits
45 93 config.add_route(
46 94 name='repo_commit',
47 95 pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}', repo_route=True)
96 config.add_view(
97 RepoCommitsView,
98 attr='repo_commit_show',
99 route_name='repo_commit', request_method='GET',
100 renderer=None)
48 101
49 102 config.add_route(
50 103 name='repo_commit_children',
51 104 pattern='/{repo_name:.*?[^/]}/changeset_children/{commit_id}', repo_route=True)
105 config.add_view(
106 RepoCommitsView,
107 attr='repo_commit_children',
108 route_name='repo_commit_children', request_method='GET',
109 renderer='json_ext', xhr=True)
52 110
53 111 config.add_route(
54 112 name='repo_commit_parents',
55 113 pattern='/{repo_name:.*?[^/]}/changeset_parents/{commit_id}', repo_route=True)
114 config.add_view(
115 RepoCommitsView,
116 attr='repo_commit_parents',
117 route_name='repo_commit_parents', request_method='GET',
118 renderer='json_ext')
56 119
57 120 config.add_route(
58 121 name='repo_commit_raw',
59 122 pattern='/{repo_name:.*?[^/]}/changeset-diff/{commit_id}', repo_route=True)
123 config.add_view(
124 RepoCommitsView,
125 attr='repo_commit_raw',
126 route_name='repo_commit_raw', request_method='GET',
127 renderer=None)
60 128
61 129 config.add_route(
62 130 name='repo_commit_patch',
63 131 pattern='/{repo_name:.*?[^/]}/changeset-patch/{commit_id}', repo_route=True)
132 config.add_view(
133 RepoCommitsView,
134 attr='repo_commit_patch',
135 route_name='repo_commit_patch', request_method='GET',
136 renderer=None)
64 137
65 138 config.add_route(
66 139 name='repo_commit_download',
67 140 pattern='/{repo_name:.*?[^/]}/changeset-download/{commit_id}', repo_route=True)
141 config.add_view(
142 RepoCommitsView,
143 attr='repo_commit_download',
144 route_name='repo_commit_download', request_method='GET',
145 renderer=None)
68 146
69 147 config.add_route(
70 148 name='repo_commit_data',
71 149 pattern='/{repo_name:.*?[^/]}/changeset-data/{commit_id}', repo_route=True)
150 config.add_view(
151 RepoCommitsView,
152 attr='repo_commit_data',
153 route_name='repo_commit_data', request_method='GET',
154 renderer='json_ext', xhr=True)
72 155
73 156 config.add_route(
74 157 name='repo_commit_comment_create',
75 158 pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/create', repo_route=True)
159 config.add_view(
160 RepoCommitsView,
161 attr='repo_commit_comment_create',
162 route_name='repo_commit_comment_create', request_method='POST',
163 renderer='json_ext')
76 164
77 165 config.add_route(
78 166 name='repo_commit_comment_preview',
79 167 pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/preview', repo_route=True)
168 config.add_view(
169 RepoCommitsView,
170 attr='repo_commit_comment_preview',
171 route_name='repo_commit_comment_preview', request_method='POST',
172 renderer='string', xhr=True)
80 173
81 174 config.add_route(
82 175 name='repo_commit_comment_history_view',
83 176 pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/{comment_history_id}/history_view', repo_route=True)
177 config.add_view(
178 RepoCommitsView,
179 attr='repo_commit_comment_history_view',
180 route_name='repo_commit_comment_history_view', request_method='POST',
181 renderer='string', xhr=True)
84 182
85 183 config.add_route(
86 184 name='repo_commit_comment_attachment_upload',
87 185 pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/attachment_upload', repo_route=True)
186 config.add_view(
187 RepoCommitsView,
188 attr='repo_commit_comment_attachment_upload',
189 route_name='repo_commit_comment_attachment_upload', request_method='POST',
190 renderer='json_ext', xhr=True)
88 191
89 192 config.add_route(
90 193 name='repo_commit_comment_delete',
91 194 pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/{comment_id}/delete', repo_route=True)
195 config.add_view(
196 RepoCommitsView,
197 attr='repo_commit_comment_delete',
198 route_name='repo_commit_comment_delete', request_method='POST',
199 renderer='json_ext')
92 200
93 201 config.add_route(
94 202 name='repo_commit_comment_edit',
95 203 pattern='/{repo_name:.*?[^/]}/changeset/{commit_id}/comment/{comment_id}/edit', repo_route=True)
204 config.add_view(
205 RepoCommitsView,
206 attr='repo_commit_comment_edit',
207 route_name='repo_commit_comment_edit', request_method='POST',
208 renderer='json_ext')
96 209
97 210 # still working url for backward compat.
98 211 config.add_route(
99 212 name='repo_commit_raw_deprecated',
100 213 pattern='/{repo_name:.*?[^/]}/raw-changeset/{commit_id}', repo_route=True)
214 config.add_view(
215 RepoCommitsView,
216 attr='repo_commit_raw',
217 route_name='repo_commit_raw_deprecated', request_method='GET',
218 renderer=None)
101 219
102 220 # Files
103 221 config.add_route(
104 222 name='repo_archivefile',
105 223 pattern='/{repo_name:.*?[^/]}/archive/{fname:.*}', repo_route=True)
224 config.add_view(
225 RepoFilesView,
226 attr='repo_archivefile',
227 route_name='repo_archivefile', request_method='GET',
228 renderer=None)
106 229
107 230 config.add_route(
108 231 name='repo_files_diff',
109 232 pattern='/{repo_name:.*?[^/]}/diff/{f_path:.*}', repo_route=True)
233 config.add_view(
234 RepoFilesView,
235 attr='repo_files_diff',
236 route_name='repo_files_diff', request_method='GET',
237 renderer=None)
238
110 239 config.add_route( # legacy route to make old links work
111 240 name='repo_files_diff_2way_redirect',
112 241 pattern='/{repo_name:.*?[^/]}/diff-2way/{f_path:.*}', repo_route=True)
242 config.add_view(
243 RepoFilesView,
244 attr='repo_files_diff_2way_redirect',
245 route_name='repo_files_diff_2way_redirect', request_method='GET',
246 renderer=None)
113 247
114 248 config.add_route(
115 249 name='repo_files',
116 250 pattern='/{repo_name:.*?[^/]}/files/{commit_id}/{f_path:.*}', repo_route=True)
251 config.add_view(
252 RepoFilesView,
253 attr='repo_files',
254 route_name='repo_files', request_method='GET',
255 renderer=None)
256
117 257 config.add_route(
118 258 name='repo_files:default_path',
119 259 pattern='/{repo_name:.*?[^/]}/files/{commit_id}/', repo_route=True)
260 config.add_view(
261 RepoFilesView,
262 attr='repo_files',
263 route_name='repo_files:default_path', request_method='GET',
264 renderer=None)
265
120 266 config.add_route(
121 267 name='repo_files:default_commit',
122 268 pattern='/{repo_name:.*?[^/]}/files', repo_route=True)
269 config.add_view(
270 RepoFilesView,
271 attr='repo_files',
272 route_name='repo_files:default_commit', request_method='GET',
273 renderer=None)
123 274
124 275 config.add_route(
125 276 name='repo_files:rendered',
126 277 pattern='/{repo_name:.*?[^/]}/render/{commit_id}/{f_path:.*}', repo_route=True)
278 config.add_view(
279 RepoFilesView,
280 attr='repo_files',
281 route_name='repo_files:rendered', request_method='GET',
282 renderer=None)
127 283
128 284 config.add_route(
129 285 name='repo_files:annotated',
130 286 pattern='/{repo_name:.*?[^/]}/annotate/{commit_id}/{f_path:.*}', repo_route=True)
287 config.add_view(
288 RepoFilesView,
289 attr='repo_files',
290 route_name='repo_files:annotated', request_method='GET',
291 renderer=None)
292
131 293 config.add_route(
132 294 name='repo_files:annotated_previous',
133 295 pattern='/{repo_name:.*?[^/]}/annotate-previous/{commit_id}/{f_path:.*}', repo_route=True)
296 config.add_view(
297 RepoFilesView,
298 attr='repo_files_annotated_previous',
299 route_name='repo_files:annotated_previous', request_method='GET',
300 renderer=None)
134 301
135 302 config.add_route(
136 303 name='repo_nodetree_full',
137 304 pattern='/{repo_name:.*?[^/]}/nodetree_full/{commit_id}/{f_path:.*}', repo_route=True)
305 config.add_view(
306 RepoFilesView,
307 attr='repo_nodetree_full',
308 route_name='repo_nodetree_full', request_method='GET',
309 renderer=None, xhr=True)
310
138 311 config.add_route(
139 312 name='repo_nodetree_full:default_path',
140 313 pattern='/{repo_name:.*?[^/]}/nodetree_full/{commit_id}/', repo_route=True)
314 config.add_view(
315 RepoFilesView,
316 attr='repo_nodetree_full',
317 route_name='repo_nodetree_full:default_path', request_method='GET',
318 renderer=None, xhr=True)
141 319
142 320 config.add_route(
143 321 name='repo_files_nodelist',
144 322 pattern='/{repo_name:.*?[^/]}/nodelist/{commit_id}/{f_path:.*}', repo_route=True)
323 config.add_view(
324 RepoFilesView,
325 attr='repo_nodelist',
326 route_name='repo_files_nodelist', request_method='GET',
327 renderer='json_ext', xhr=True)
145 328
146 329 config.add_route(
147 330 name='repo_file_raw',
148 331 pattern='/{repo_name:.*?[^/]}/raw/{commit_id}/{f_path:.*}', repo_route=True)
332 config.add_view(
333 RepoFilesView,
334 attr='repo_file_raw',
335 route_name='repo_file_raw', request_method='GET',
336 renderer=None)
149 337
150 338 config.add_route(
151 339 name='repo_file_download',
152 340 pattern='/{repo_name:.*?[^/]}/download/{commit_id}/{f_path:.*}', repo_route=True)
341 config.add_view(
342 RepoFilesView,
343 attr='repo_file_download',
344 route_name='repo_file_download', request_method='GET',
345 renderer=None)
346
153 347 config.add_route( # backward compat to keep old links working
154 348 name='repo_file_download:legacy',
155 349 pattern='/{repo_name:.*?[^/]}/rawfile/{commit_id}/{f_path:.*}',
156 350 repo_route=True)
351 config.add_view(
352 RepoFilesView,
353 attr='repo_file_download',
354 route_name='repo_file_download:legacy', request_method='GET',
355 renderer=None)
157 356
158 357 config.add_route(
159 358 name='repo_file_history',
160 359 pattern='/{repo_name:.*?[^/]}/history/{commit_id}/{f_path:.*}', repo_route=True)
360 config.add_view(
361 RepoFilesView,
362 attr='repo_file_history',
363 route_name='repo_file_history', request_method='GET',
364 renderer='json_ext')
161 365
162 366 config.add_route(
163 367 name='repo_file_authors',
164 368 pattern='/{repo_name:.*?[^/]}/authors/{commit_id}/{f_path:.*}', repo_route=True)
369 config.add_view(
370 RepoFilesView,
371 attr='repo_file_authors',
372 route_name='repo_file_authors', request_method='GET',
373 renderer='rhodecode:templates/files/file_authors_box.mako')
165 374
166 375 config.add_route(
167 376 name='repo_files_check_head',
168 377 pattern='/{repo_name:.*?[^/]}/check_head/{commit_id}/{f_path:.*}',
169 378 repo_route=True)
379 config.add_view(
380 RepoFilesView,
381 attr='repo_files_check_head',
382 route_name='repo_files_check_head', request_method='POST',
383 renderer='json_ext', xhr=True)
384
170 385 config.add_route(
171 386 name='repo_files_remove_file',
172 387 pattern='/{repo_name:.*?[^/]}/remove_file/{commit_id}/{f_path:.*}',
173 388 repo_route=True)
389 config.add_view(
390 RepoFilesView,
391 attr='repo_files_remove_file',
392 route_name='repo_files_remove_file', request_method='GET',
393 renderer='rhodecode:templates/files/files_delete.mako')
394
174 395 config.add_route(
175 396 name='repo_files_delete_file',
176 397 pattern='/{repo_name:.*?[^/]}/delete_file/{commit_id}/{f_path:.*}',
177 398 repo_route=True)
399 config.add_view(
400 RepoFilesView,
401 attr='repo_files_delete_file',
402 route_name='repo_files_delete_file', request_method='POST',
403 renderer=None)
404
178 405 config.add_route(
179 406 name='repo_files_edit_file',
180 407 pattern='/{repo_name:.*?[^/]}/edit_file/{commit_id}/{f_path:.*}',
181 408 repo_route=True)
409 config.add_view(
410 RepoFilesView,
411 attr='repo_files_edit_file',
412 route_name='repo_files_edit_file', request_method='GET',
413 renderer='rhodecode:templates/files/files_edit.mako')
414
182 415 config.add_route(
183 416 name='repo_files_update_file',
184 417 pattern='/{repo_name:.*?[^/]}/update_file/{commit_id}/{f_path:.*}',
185 418 repo_route=True)
419 config.add_view(
420 RepoFilesView,
421 attr='repo_files_update_file',
422 route_name='repo_files_update_file', request_method='POST',
423 renderer=None)
424
186 425 config.add_route(
187 426 name='repo_files_add_file',
188 427 pattern='/{repo_name:.*?[^/]}/add_file/{commit_id}/{f_path:.*}',
189 428 repo_route=True)
429 config.add_view(
430 RepoFilesView,
431 attr='repo_files_add_file',
432 route_name='repo_files_add_file', request_method='GET',
433 renderer='rhodecode:templates/files/files_add.mako')
434
190 435 config.add_route(
191 436 name='repo_files_upload_file',
192 437 pattern='/{repo_name:.*?[^/]}/upload_file/{commit_id}/{f_path:.*}',
193 438 repo_route=True)
439 config.add_view(
440 RepoFilesView,
441 attr='repo_files_add_file',
442 route_name='repo_files_upload_file', request_method='GET',
443 renderer='rhodecode:templates/files/files_upload.mako')
444 config.add_view( # POST creates
445 RepoFilesView,
446 attr='repo_files_upload_file',
447 route_name='repo_files_upload_file', request_method='POST',
448 renderer='json_ext')
449
194 450 config.add_route(
195 451 name='repo_files_create_file',
196 452 pattern='/{repo_name:.*?[^/]}/create_file/{commit_id}/{f_path:.*}',
197 453 repo_route=True)
454 config.add_view( # POST creates
455 RepoFilesView,
456 attr='repo_files_create_file',
457 route_name='repo_files_create_file', request_method='POST',
458 renderer=None)
198 459
199 460 # Refs data
200 461 config.add_route(
201 462 name='repo_refs_data',
202 463 pattern='/{repo_name:.*?[^/]}/refs-data', repo_route=True)
464 config.add_view(
465 RepoSummaryView,
466 attr='repo_refs_data',
467 route_name='repo_refs_data', request_method='GET',
468 renderer='json_ext')
203 469
204 470 config.add_route(
205 471 name='repo_refs_changelog_data',
206 472 pattern='/{repo_name:.*?[^/]}/refs-data-changelog', repo_route=True)
473 config.add_view(
474 RepoSummaryView,
475 attr='repo_refs_changelog_data',
476 route_name='repo_refs_changelog_data', request_method='GET',
477 renderer='json_ext')
207 478
208 479 config.add_route(
209 480 name='repo_stats',
210 481 pattern='/{repo_name:.*?[^/]}/repo_stats/{commit_id}', repo_route=True)
482 config.add_view(
483 RepoSummaryView,
484 attr='repo_stats',
485 route_name='repo_stats', request_method='GET',
486 renderer='json_ext')
211 487
212 488 # Commits
213 489 config.add_route(
214 490 name='repo_commits',
215 491 pattern='/{repo_name:.*?[^/]}/commits', repo_route=True)
492 config.add_view(
493 RepoChangelogView,
494 attr='repo_changelog',
495 route_name='repo_commits', request_method='GET',
496 renderer='rhodecode:templates/commits/changelog.mako')
497 # old routes for backward compat
498 config.add_view(
499 RepoChangelogView,
500 attr='repo_changelog',
501 route_name='repo_changelog', request_method='GET',
502 renderer='rhodecode:templates/commits/changelog.mako')
503
504 config.add_route(
505 name='repo_commits_elements',
506 pattern='/{repo_name:.*?[^/]}/commits_elements', repo_route=True)
507 config.add_view(
508 RepoChangelogView,
509 attr='repo_commits_elements',
510 route_name='repo_commits_elements', request_method=('GET', 'POST'),
511 renderer='rhodecode:templates/commits/changelog_elements.mako',
512 xhr=True)
513
514 config.add_route(
515 name='repo_commits_elements_file',
516 pattern='/{repo_name:.*?[^/]}/commits_elements/{commit_id}/{f_path:.*}', repo_route=True)
517 config.add_view(
518 RepoChangelogView,
519 attr='repo_commits_elements',
520 route_name='repo_commits_elements_file', request_method=('GET', 'POST'),
521 renderer='rhodecode:templates/commits/changelog_elements.mako',
522 xhr=True)
523
216 524 config.add_route(
217 525 name='repo_commits_file',
218 526 pattern='/{repo_name:.*?[^/]}/commits/{commit_id}/{f_path:.*}', repo_route=True)
219 config.add_route(
220 name='repo_commits_elements',
221 pattern='/{repo_name:.*?[^/]}/commits_elements', repo_route=True)
222 config.add_route(
223 name='repo_commits_elements_file',
224 pattern='/{repo_name:.*?[^/]}/commits_elements/{commit_id}/{f_path:.*}', repo_route=True)
527 config.add_view(
528 RepoChangelogView,
529 attr='repo_changelog',
530 route_name='repo_commits_file', request_method='GET',
531 renderer='rhodecode:templates/commits/changelog.mako')
532 # old routes for backward compat
533 config.add_view(
534 RepoChangelogView,
535 attr='repo_changelog',
536 route_name='repo_changelog_file', request_method='GET',
537 renderer='rhodecode:templates/commits/changelog.mako')
225 538
226 539 # Changelog (old deprecated name for commits page)
227 540 config.add_route(
@@ -235,25 +548,50 b' def includeme(config):'
235 548 config.add_route(
236 549 name='repo_compare_select',
237 550 pattern='/{repo_name:.*?[^/]}/compare', repo_route=True)
551 config.add_view(
552 RepoCompareView,
553 attr='compare_select',
554 route_name='repo_compare_select', request_method='GET',
555 renderer='rhodecode:templates/compare/compare_diff.mako')
238 556
239 557 config.add_route(
240 558 name='repo_compare',
241 559 pattern='/{repo_name:.*?[^/]}/compare/{source_ref_type}@{source_ref:.*?}...{target_ref_type}@{target_ref:.*?}', repo_route=True)
560 config.add_view(
561 RepoCompareView,
562 attr='compare',
563 route_name='repo_compare', request_method='GET',
564 renderer=None)
242 565
243 566 # Tags
244 567 config.add_route(
245 568 name='tags_home',
246 569 pattern='/{repo_name:.*?[^/]}/tags', repo_route=True)
570 config.add_view(
571 RepoTagsView,
572 attr='tags',
573 route_name='tags_home', request_method='GET',
574 renderer='rhodecode:templates/tags/tags.mako')
247 575
248 576 # Branches
249 577 config.add_route(
250 578 name='branches_home',
251 579 pattern='/{repo_name:.*?[^/]}/branches', repo_route=True)
580 config.add_view(
581 RepoBranchesView,
582 attr='branches',
583 route_name='branches_home', request_method='GET',
584 renderer='rhodecode:templates/branches/branches.mako')
252 585
253 586 # Bookmarks
254 587 config.add_route(
255 588 name='bookmarks_home',
256 589 pattern='/{repo_name:.*?[^/]}/bookmarks', repo_route=True)
590 config.add_view(
591 RepoBookmarksView,
592 attr='bookmarks',
593 route_name='bookmarks_home', request_method='GET',
594 renderer='rhodecode:templates/bookmarks/bookmarks.mako')
257 595
258 596 # Forks
259 597 config.add_route(
@@ -261,195 +599,426 b' def includeme(config):'
261 599 pattern='/{repo_name:.*?[^/]}/fork', repo_route=True,
262 600 repo_forbid_when_archived=True,
263 601 repo_accepted_types=['hg', 'git'])
602 config.add_view(
603 RepoForksView,
604 attr='repo_fork_new',
605 route_name='repo_fork_new', request_method='GET',
606 renderer='rhodecode:templates/forks/forks.mako')
264 607
265 608 config.add_route(
266 609 name='repo_fork_create',
267 610 pattern='/{repo_name:.*?[^/]}/fork/create', repo_route=True,
268 611 repo_forbid_when_archived=True,
269 612 repo_accepted_types=['hg', 'git'])
613 config.add_view(
614 RepoForksView,
615 attr='repo_fork_create',
616 route_name='repo_fork_create', request_method='POST',
617 renderer='rhodecode:templates/forks/fork.mako')
270 618
271 619 config.add_route(
272 620 name='repo_forks_show_all',
273 621 pattern='/{repo_name:.*?[^/]}/forks', repo_route=True,
274 622 repo_accepted_types=['hg', 'git'])
623 config.add_view(
624 RepoForksView,
625 attr='repo_forks_show_all',
626 route_name='repo_forks_show_all', request_method='GET',
627 renderer='rhodecode:templates/forks/forks.mako')
628
275 629 config.add_route(
276 630 name='repo_forks_data',
277 631 pattern='/{repo_name:.*?[^/]}/forks/data', repo_route=True,
278 632 repo_accepted_types=['hg', 'git'])
633 config.add_view(
634 RepoForksView,
635 attr='repo_forks_data',
636 route_name='repo_forks_data', request_method='GET',
637 renderer='json_ext', xhr=True)
279 638
280 639 # Pull Requests
281 640 config.add_route(
282 641 name='pullrequest_show',
283 642 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}',
284 643 repo_route=True)
644 config.add_view(
645 RepoPullRequestsView,
646 attr='pull_request_show',
647 route_name='pullrequest_show', request_method='GET',
648 renderer='rhodecode:templates/pullrequests/pullrequest_show.mako')
285 649
286 650 config.add_route(
287 651 name='pullrequest_show_all',
288 652 pattern='/{repo_name:.*?[^/]}/pull-request',
289 653 repo_route=True, repo_accepted_types=['hg', 'git'])
654 config.add_view(
655 RepoPullRequestsView,
656 attr='pull_request_list',
657 route_name='pullrequest_show_all', request_method='GET',
658 renderer='rhodecode:templates/pullrequests/pullrequests.mako')
290 659
291 660 config.add_route(
292 661 name='pullrequest_show_all_data',
293 662 pattern='/{repo_name:.*?[^/]}/pull-request-data',
294 663 repo_route=True, repo_accepted_types=['hg', 'git'])
664 config.add_view(
665 RepoPullRequestsView,
666 attr='pull_request_list_data',
667 route_name='pullrequest_show_all_data', request_method='GET',
668 renderer='json_ext', xhr=True)
295 669
296 670 config.add_route(
297 671 name='pullrequest_repo_refs',
298 672 pattern='/{repo_name:.*?[^/]}/pull-request/refs/{target_repo_name:.*?[^/]}',
299 673 repo_route=True)
674 config.add_view(
675 RepoPullRequestsView,
676 attr='pull_request_repo_refs',
677 route_name='pullrequest_repo_refs', request_method='GET',
678 renderer='json_ext', xhr=True)
300 679
301 680 config.add_route(
302 681 name='pullrequest_repo_targets',
303 682 pattern='/{repo_name:.*?[^/]}/pull-request/repo-targets',
304 683 repo_route=True)
684 config.add_view(
685 RepoPullRequestsView,
686 attr='pullrequest_repo_targets',
687 route_name='pullrequest_repo_targets', request_method='GET',
688 renderer='json_ext', xhr=True)
305 689
306 690 config.add_route(
307 691 name='pullrequest_new',
308 692 pattern='/{repo_name:.*?[^/]}/pull-request/new',
309 693 repo_route=True, repo_accepted_types=['hg', 'git'],
310 694 repo_forbid_when_archived=True)
695 config.add_view(
696 RepoPullRequestsView,
697 attr='pull_request_new',
698 route_name='pullrequest_new', request_method='GET',
699 renderer='rhodecode:templates/pullrequests/pullrequest.mako')
311 700
312 701 config.add_route(
313 702 name='pullrequest_create',
314 703 pattern='/{repo_name:.*?[^/]}/pull-request/create',
315 704 repo_route=True, repo_accepted_types=['hg', 'git'],
316 705 repo_forbid_when_archived=True)
706 config.add_view(
707 RepoPullRequestsView,
708 attr='pull_request_create',
709 route_name='pullrequest_create', request_method='POST',
710 renderer=None)
317 711
318 712 config.add_route(
319 713 name='pullrequest_update',
320 714 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/update',
321 715 repo_route=True, repo_forbid_when_archived=True)
716 config.add_view(
717 RepoPullRequestsView,
718 attr='pull_request_update',
719 route_name='pullrequest_update', request_method='POST',
720 renderer='json_ext')
322 721
323 722 config.add_route(
324 723 name='pullrequest_merge',
325 724 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/merge',
326 725 repo_route=True, repo_forbid_when_archived=True)
726 config.add_view(
727 RepoPullRequestsView,
728 attr='pull_request_merge',
729 route_name='pullrequest_merge', request_method='POST',
730 renderer='json_ext')
327 731
328 732 config.add_route(
329 733 name='pullrequest_delete',
330 734 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/delete',
331 735 repo_route=True, repo_forbid_when_archived=True)
736 config.add_view(
737 RepoPullRequestsView,
738 attr='pull_request_delete',
739 route_name='pullrequest_delete', request_method='POST',
740 renderer='json_ext')
332 741
333 742 config.add_route(
334 743 name='pullrequest_comment_create',
335 744 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/comment',
336 745 repo_route=True)
746 config.add_view(
747 RepoPullRequestsView,
748 attr='pull_request_comment_create',
749 route_name='pullrequest_comment_create', request_method='POST',
750 renderer='json_ext')
337 751
338 752 config.add_route(
339 753 name='pullrequest_comment_edit',
340 754 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/comment/{comment_id}/edit',
341 755 repo_route=True, repo_accepted_types=['hg', 'git'])
756 config.add_view(
757 RepoPullRequestsView,
758 attr='pull_request_comment_edit',
759 route_name='pullrequest_comment_edit', request_method='POST',
760 renderer='json_ext')
342 761
343 762 config.add_route(
344 763 name='pullrequest_comment_delete',
345 764 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/comment/{comment_id}/delete',
346 765 repo_route=True, repo_accepted_types=['hg', 'git'])
766 config.add_view(
767 RepoPullRequestsView,
768 attr='pull_request_comment_delete',
769 route_name='pullrequest_comment_delete', request_method='POST',
770 renderer='json_ext')
347 771
348 772 config.add_route(
349 773 name='pullrequest_comments',
350 774 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/comments',
351 775 repo_route=True)
776 config.add_view(
777 RepoPullRequestsView,
778 attr='pullrequest_comments',
779 route_name='pullrequest_comments', request_method='POST',
780 renderer='string_html', xhr=True)
352 781
353 782 config.add_route(
354 783 name='pullrequest_todos',
355 784 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/todos',
356 785 repo_route=True)
786 config.add_view(
787 RepoPullRequestsView,
788 attr='pullrequest_todos',
789 route_name='pullrequest_todos', request_method='POST',
790 renderer='string_html', xhr=True)
357 791
358 792 config.add_route(
359 793 name='pullrequest_drafts',
360 794 pattern='/{repo_name:.*?[^/]}/pull-request/{pull_request_id:\d+}/drafts',
361 795 repo_route=True)
796 config.add_view(
797 RepoPullRequestsView,
798 attr='pullrequest_drafts',
799 route_name='pullrequest_drafts', request_method='POST',
800 renderer='string_html', xhr=True)
362 801
363 802 # Artifacts, (EE feature)
364 803 config.add_route(
365 804 name='repo_artifacts_list',
366 805 pattern='/{repo_name:.*?[^/]}/artifacts', repo_route=True)
806 config.add_view(
807 RepoArtifactsView,
808 attr='repo_artifacts',
809 route_name='repo_artifacts_list', request_method='GET',
810 renderer='rhodecode:templates/artifacts/artifact_list.mako')
367 811
368 812 # Settings
369 813 config.add_route(
370 814 name='edit_repo',
371 815 pattern='/{repo_name:.*?[^/]}/settings', repo_route=True)
816 config.add_view(
817 RepoSettingsView,
818 attr='edit_settings',
819 route_name='edit_repo', request_method='GET',
820 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
372 821 # update is POST on edit_repo
822 config.add_view(
823 RepoSettingsView,
824 attr='edit_settings_update',
825 route_name='edit_repo', request_method='POST',
826 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
373 827
374 828 # Settings advanced
375 829 config.add_route(
376 830 name='edit_repo_advanced',
377 831 pattern='/{repo_name:.*?[^/]}/settings/advanced', repo_route=True)
832 config.add_view(
833 RepoSettingsAdvancedView,
834 attr='edit_advanced',
835 route_name='edit_repo_advanced', request_method='GET',
836 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
837
378 838 config.add_route(
379 839 name='edit_repo_advanced_archive',
380 840 pattern='/{repo_name:.*?[^/]}/settings/advanced/archive', repo_route=True)
841 config.add_view(
842 RepoSettingsAdvancedView,
843 attr='edit_advanced_archive',
844 route_name='edit_repo_advanced_archive', request_method='POST',
845 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
846
381 847 config.add_route(
382 848 name='edit_repo_advanced_delete',
383 849 pattern='/{repo_name:.*?[^/]}/settings/advanced/delete', repo_route=True)
850 config.add_view(
851 RepoSettingsAdvancedView,
852 attr='edit_advanced_delete',
853 route_name='edit_repo_advanced_delete', request_method='POST',
854 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
855
384 856 config.add_route(
385 857 name='edit_repo_advanced_locking',
386 858 pattern='/{repo_name:.*?[^/]}/settings/advanced/locking', repo_route=True)
859 config.add_view(
860 RepoSettingsAdvancedView,
861 attr='edit_advanced_toggle_locking',
862 route_name='edit_repo_advanced_locking', request_method='POST',
863 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
864
387 865 config.add_route(
388 866 name='edit_repo_advanced_journal',
389 867 pattern='/{repo_name:.*?[^/]}/settings/advanced/journal', repo_route=True)
868 config.add_view(
869 RepoSettingsAdvancedView,
870 attr='edit_advanced_journal',
871 route_name='edit_repo_advanced_journal', request_method='POST',
872 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
873
390 874 config.add_route(
391 875 name='edit_repo_advanced_fork',
392 876 pattern='/{repo_name:.*?[^/]}/settings/advanced/fork', repo_route=True)
877 config.add_view(
878 RepoSettingsAdvancedView,
879 attr='edit_advanced_fork',
880 route_name='edit_repo_advanced_fork', request_method='POST',
881 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
393 882
394 883 config.add_route(
395 884 name='edit_repo_advanced_hooks',
396 885 pattern='/{repo_name:.*?[^/]}/settings/advanced/hooks', repo_route=True)
886 config.add_view(
887 RepoSettingsAdvancedView,
888 attr='edit_advanced_install_hooks',
889 route_name='edit_repo_advanced_hooks', request_method='GET',
890 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
397 891
398 892 # Caches
399 893 config.add_route(
400 894 name='edit_repo_caches',
401 895 pattern='/{repo_name:.*?[^/]}/settings/caches', repo_route=True)
896 config.add_view(
897 RepoCachesView,
898 attr='repo_caches',
899 route_name='edit_repo_caches', request_method='GET',
900 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
901 config.add_view(
902 RepoCachesView,
903 attr='repo_caches_purge',
904 route_name='edit_repo_caches', request_method='POST')
402 905
403 906 # Permissions
404 907 config.add_route(
405 908 name='edit_repo_perms',
406 909 pattern='/{repo_name:.*?[^/]}/settings/permissions', repo_route=True)
910 config.add_view(
911 RepoSettingsPermissionsView,
912 attr='edit_permissions',
913 route_name='edit_repo_perms', request_method='GET',
914 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
915 config.add_view(
916 RepoSettingsPermissionsView,
917 attr='edit_permissions_update',
918 route_name='edit_repo_perms', request_method='POST',
919 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
407 920
408 921 config.add_route(
409 922 name='edit_repo_perms_set_private',
410 923 pattern='/{repo_name:.*?[^/]}/settings/permissions/set_private', repo_route=True)
924 config.add_view(
925 RepoSettingsPermissionsView,
926 attr='edit_permissions_set_private_repo',
927 route_name='edit_repo_perms_set_private', request_method='POST',
928 renderer='json_ext')
411 929
412 930 # Permissions Branch (EE feature)
413 931 config.add_route(
414 932 name='edit_repo_perms_branch',
415 933 pattern='/{repo_name:.*?[^/]}/settings/branch_permissions', repo_route=True)
934 config.add_view(
935 RepoBranchesView,
936 attr='branches',
937 route_name='edit_repo_perms_branch', request_method='GET',
938 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
939
416 940 config.add_route(
417 941 name='edit_repo_perms_branch_delete',
418 942 pattern='/{repo_name:.*?[^/]}/settings/branch_permissions/{rule_id}/delete',
419 943 repo_route=True)
944 ## Only implemented in EE
420 945
421 946 # Maintenance
422 947 config.add_route(
423 948 name='edit_repo_maintenance',
424 949 pattern='/{repo_name:.*?[^/]}/settings/maintenance', repo_route=True)
950 config.add_view(
951 RepoMaintenanceView,
952 attr='repo_maintenance',
953 route_name='edit_repo_maintenance_execute', request_method='GET',
954 renderer='json', xhr=True)
425 955
426 956 config.add_route(
427 957 name='edit_repo_maintenance_execute',
428 958 pattern='/{repo_name:.*?[^/]}/settings/maintenance/execute', repo_route=True)
959 config.add_view(
960 RepoMaintenanceView,
961 attr='repo_maintenance_execute',
962 route_name='edit_repo_maintenance', request_method='GET',
963 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
429 964
430 965 # Fields
431 966 config.add_route(
432 967 name='edit_repo_fields',
433 968 pattern='/{repo_name:.*?[^/]}/settings/fields', repo_route=True)
969 config.add_view(
970 RepoSettingsFieldsView,
971 attr='repo_field_edit',
972 route_name='edit_repo_fields', request_method='GET',
973 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
974
434 975 config.add_route(
435 976 name='edit_repo_fields_create',
436 977 pattern='/{repo_name:.*?[^/]}/settings/fields/create', repo_route=True)
978 config.add_view(
979 RepoSettingsFieldsView,
980 attr='repo_field_create',
981 route_name='edit_repo_fields_create', request_method='POST',
982 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
983
437 984 config.add_route(
438 985 name='edit_repo_fields_delete',
439 986 pattern='/{repo_name:.*?[^/]}/settings/fields/{field_id}/delete', repo_route=True)
987 config.add_view(
988 RepoSettingsFieldsView,
989 attr='repo_field_delete',
990 route_name='edit_repo_fields_delete', request_method='POST',
991 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
440 992
441 993 # Locking
442 994 config.add_route(
443 995 name='repo_edit_toggle_locking',
444 996 pattern='/{repo_name:.*?[^/]}/settings/toggle_locking', repo_route=True)
997 config.add_view(
998 RepoSettingsView,
999 attr='edit_advanced_toggle_locking',
1000 route_name='repo_edit_toggle_locking', request_method='GET',
1001 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
445 1002
446 1003 # Remote
447 1004 config.add_route(
448 1005 name='edit_repo_remote',
449 1006 pattern='/{repo_name:.*?[^/]}/settings/remote', repo_route=True)
1007 config.add_view(
1008 RepoSettingsRemoteView,
1009 attr='repo_remote_edit_form',
1010 route_name='edit_repo_remote', request_method='GET',
1011 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
1012
450 1013 config.add_route(
451 1014 name='edit_repo_remote_pull',
452 1015 pattern='/{repo_name:.*?[^/]}/settings/remote/pull', repo_route=True)
1016 config.add_view(
1017 RepoSettingsRemoteView,
1018 attr='repo_remote_pull_changes',
1019 route_name='edit_repo_remote_pull', request_method='POST',
1020 renderer=None)
1021
453 1022 config.add_route(
454 1023 name='edit_repo_remote_push',
455 1024 pattern='/{repo_name:.*?[^/]}/settings/remote/push', repo_route=True)
@@ -458,91 +1027,201 b' def includeme(config):'
458 1027 config.add_route(
459 1028 name='edit_repo_statistics',
460 1029 pattern='/{repo_name:.*?[^/]}/settings/statistics', repo_route=True)
1030 config.add_view(
1031 RepoSettingsView,
1032 attr='edit_statistics_form',
1033 route_name='edit_repo_statistics', request_method='GET',
1034 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
1035
461 1036 config.add_route(
462 1037 name='edit_repo_statistics_reset',
463 1038 pattern='/{repo_name:.*?[^/]}/settings/statistics/update', repo_route=True)
1039 config.add_view(
1040 RepoSettingsView,
1041 attr='repo_statistics_reset',
1042 route_name='edit_repo_statistics_reset', request_method='POST',
1043 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
464 1044
465 1045 # Issue trackers
466 1046 config.add_route(
467 1047 name='edit_repo_issuetracker',
468 1048 pattern='/{repo_name:.*?[^/]}/settings/issue_trackers', repo_route=True)
1049 config.add_view(
1050 RepoSettingsIssueTrackersView,
1051 attr='repo_issuetracker',
1052 route_name='edit_repo_issuetracker', request_method='GET',
1053 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
1054
469 1055 config.add_route(
470 1056 name='edit_repo_issuetracker_test',
471 1057 pattern='/{repo_name:.*?[^/]}/settings/issue_trackers/test', repo_route=True)
1058 config.add_view(
1059 RepoSettingsIssueTrackersView,
1060 attr='repo_issuetracker_test',
1061 route_name='edit_repo_issuetracker_test', request_method='POST',
1062 renderer='string', xhr=True)
1063
472 1064 config.add_route(
473 1065 name='edit_repo_issuetracker_delete',
474 1066 pattern='/{repo_name:.*?[^/]}/settings/issue_trackers/delete', repo_route=True)
1067 config.add_view(
1068 RepoSettingsIssueTrackersView,
1069 attr='repo_issuetracker_delete',
1070 route_name='edit_repo_issuetracker_delete', request_method='POST',
1071 renderer='json_ext', xhr=True)
1072
475 1073 config.add_route(
476 1074 name='edit_repo_issuetracker_update',
477 1075 pattern='/{repo_name:.*?[^/]}/settings/issue_trackers/update', repo_route=True)
1076 config.add_view(
1077 RepoSettingsIssueTrackersView,
1078 attr='repo_issuetracker_update',
1079 route_name='edit_repo_issuetracker_update', request_method='POST',
1080 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
478 1081
479 1082 # VCS Settings
480 1083 config.add_route(
481 1084 name='edit_repo_vcs',
482 1085 pattern='/{repo_name:.*?[^/]}/settings/vcs', repo_route=True)
1086 config.add_view(
1087 RepoSettingsVcsView,
1088 attr='repo_vcs_settings',
1089 route_name='edit_repo_vcs', request_method='GET',
1090 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
1091
483 1092 config.add_route(
484 1093 name='edit_repo_vcs_update',
485 1094 pattern='/{repo_name:.*?[^/]}/settings/vcs/update', repo_route=True)
1095 config.add_view(
1096 RepoSettingsVcsView,
1097 attr='repo_settings_vcs_update',
1098 route_name='edit_repo_vcs_update', request_method='POST',
1099 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
486 1100
487 1101 # svn pattern
488 1102 config.add_route(
489 1103 name='edit_repo_vcs_svn_pattern_delete',
490 1104 pattern='/{repo_name:.*?[^/]}/settings/vcs/svn_pattern/delete', repo_route=True)
1105 config.add_view(
1106 RepoSettingsVcsView,
1107 attr='repo_settings_delete_svn_pattern',
1108 route_name='edit_repo_vcs_svn_pattern_delete', request_method='POST',
1109 renderer='json_ext', xhr=True)
491 1110
492 1111 # Repo Review Rules (EE feature)
493 1112 config.add_route(
494 1113 name='repo_reviewers',
495 1114 pattern='/{repo_name:.*?[^/]}/settings/review/rules', repo_route=True)
1115 config.add_view(
1116 RepoReviewRulesView,
1117 attr='repo_review_rules',
1118 route_name='repo_reviewers', request_method='GET',
1119 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
496 1120
497 1121 config.add_route(
498 1122 name='repo_default_reviewers_data',
499 1123 pattern='/{repo_name:.*?[^/]}/settings/review/default-reviewers', repo_route=True)
1124 config.add_view(
1125 RepoReviewRulesView,
1126 attr='repo_default_reviewers_data',
1127 route_name='repo_default_reviewers_data', request_method='GET',
1128 renderer='json_ext')
500 1129
501 1130 # Repo Automation (EE feature)
502 1131 config.add_route(
503 1132 name='repo_automation',
504 1133 pattern='/{repo_name:.*?[^/]}/settings/automation', repo_route=True)
1134 config.add_view(
1135 RepoAutomationView,
1136 attr='repo_automation',
1137 route_name='repo_automation', request_method='GET',
1138 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
505 1139
506 1140 # Strip
507 1141 config.add_route(
508 1142 name='edit_repo_strip',
509 1143 pattern='/{repo_name:.*?[^/]}/settings/strip', repo_route=True)
1144 config.add_view(
1145 RepoStripView,
1146 attr='strip',
1147 route_name='edit_repo_strip', request_method='GET',
1148 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
510 1149
511 1150 config.add_route(
512 1151 name='strip_check',
513 1152 pattern='/{repo_name:.*?[^/]}/settings/strip_check', repo_route=True)
1153 config.add_view(
1154 RepoStripView,
1155 attr='strip_check',
1156 route_name='strip_check', request_method='POST',
1157 renderer='json', xhr=True)
514 1158
515 1159 config.add_route(
516 1160 name='strip_execute',
517 1161 pattern='/{repo_name:.*?[^/]}/settings/strip_execute', repo_route=True)
1162 config.add_view(
1163 RepoStripView,
1164 attr='strip_execute',
1165 route_name='strip_execute', request_method='POST',
1166 renderer='json', xhr=True)
518 1167
519 1168 # Audit logs
520 1169 config.add_route(
521 1170 name='edit_repo_audit_logs',
522 1171 pattern='/{repo_name:.*?[^/]}/settings/audit_logs', repo_route=True)
1172 config.add_view(
1173 AuditLogsView,
1174 attr='repo_audit_logs',
1175 route_name='edit_repo_audit_logs', request_method='GET',
1176 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
523 1177
524 1178 # ATOM/RSS Feed, shouldn't contain slashes for outlook compatibility
525 1179 config.add_route(
526 1180 name='rss_feed_home',
527 1181 pattern='/{repo_name:.*?[^/]}/feed-rss', repo_route=True)
1182 config.add_view(
1183 RepoFeedView,
1184 attr='rss',
1185 route_name='rss_feed_home', request_method='GET', renderer=None)
1186
1187 config.add_route(
1188 name='rss_feed_home_old',
1189 pattern='/{repo_name:.*?[^/]}/feed/rss', repo_route=True)
1190 config.add_view(
1191 RepoFeedView,
1192 attr='rss',
1193 route_name='rss_feed_home_old', request_method='GET', renderer=None)
528 1194
529 1195 config.add_route(
530 1196 name='atom_feed_home',
531 1197 pattern='/{repo_name:.*?[^/]}/feed-atom', repo_route=True)
532
533 config.add_route(
534 name='rss_feed_home_old',
535 pattern='/{repo_name:.*?[^/]}/feed/rss', repo_route=True)
1198 config.add_view(
1199 RepoFeedView,
1200 attr='atom',
1201 route_name='atom_feed_home', request_method='GET', renderer=None)
536 1202
537 1203 config.add_route(
538 1204 name='atom_feed_home_old',
539 1205 pattern='/{repo_name:.*?[^/]}/feed/atom', repo_route=True)
1206 config.add_view(
1207 RepoFeedView,
1208 attr='atom',
1209 route_name='atom_feed_home_old', request_method='GET', renderer=None)
540 1210
541 1211 # NOTE(marcink): needs to be at the end for catch-all
542 1212 add_route_with_slash(
543 1213 config,
544 1214 name='repo_summary',
545 1215 pattern='/{repo_name:.*?[^/]}', repo_route=True)
546
547 # Scan module for configuration decorators.
548 config.scan('.views', ignore='.tests')
1216 config.add_view(
1217 RepoSummaryView,
1218 attr='summary',
1219 route_name='repo_summary', request_method='GET',
1220 renderer='rhodecode:templates/summary/summary.mako')
1221
1222 # TODO(marcink): there's no such route??
1223 config.add_view(
1224 RepoSummaryView,
1225 attr='summary',
1226 route_name='repo_summary_slash', request_method='GET',
1227 renderer='rhodecode:templates/summary/summary.mako') No newline at end of file
@@ -20,7 +20,7 b''
20 20
21 21 import logging
22 22
23 from pyramid.view import view_config
23
24 24
25 25 from rhodecode.apps._base import RepoAppView
26 26 from rhodecode.lib.auth import (
@@ -39,9 +39,6 b' class RepoArtifactsView(RepoAppView):'
39 39 @LoginRequired()
40 40 @HasRepoPermissionAnyDecorator(
41 41 'repository.read', 'repository.write', 'repository.admin')
42 @view_config(
43 route_name='repo_artifacts_list', request_method='GET',
44 renderer='rhodecode:templates/artifacts/artifact_list.mako')
45 42 def repo_artifacts(self):
46 43 c = self.load_default_context()
47 44 c.active = 'artifacts'
@@ -19,7 +19,7 b''
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20
21 21 import logging
22 from pyramid.view import view_config
22
23 23
24 24 from rhodecode.apps._base import RepoAppView
25 25 from rhodecode.lib.helpers import SqlPage
@@ -38,9 +38,6 b' class AuditLogsView(RepoAppView):'
38 38
39 39 @LoginRequired()
40 40 @HasRepoPermissionAnyDecorator('repository.admin')
41 @view_config(
42 route_name='edit_repo_audit_logs', request_method='GET',
43 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
44 41 def repo_audit_logs(self):
45 42 _ = self.request.translate
46 43 c = self.load_default_context()
@@ -20,7 +20,7 b''
20 20
21 21 import logging
22 22
23 from pyramid.view import view_config
23
24 24
25 25 from rhodecode.apps._base import RepoAppView
26 26 from rhodecode.apps.repository.utils import get_default_reviewers_data
@@ -36,9 +36,6 b' class RepoAutomationView(RepoAppView):'
36 36
37 37 @LoginRequired()
38 38 @HasRepoPermissionAnyDecorator('repository.admin')
39 @view_config(
40 route_name='repo_automation', request_method='GET',
41 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
42 39 def repo_automation(self):
43 40 c = self.load_default_context()
44 41 c.active = 'automation'
@@ -20,7 +20,7 b''
20 20 import logging
21 21
22 22 from pyramid.httpexceptions import HTTPNotFound
23 from pyramid.view import view_config
23
24 24
25 25 from rhodecode.apps._base import BaseReferencesView
26 26 from rhodecode.lib.ext_json import json
@@ -36,9 +36,6 b' class RepoBookmarksView(BaseReferencesVi'
36 36 @LoginRequired()
37 37 @HasRepoPermissionAnyDecorator(
38 38 'repository.read', 'repository.write', 'repository.admin')
39 @view_config(
40 route_name='bookmarks_home', request_method='GET',
41 renderer='rhodecode:templates/bookmarks/bookmarks.mako')
42 39 def bookmarks(self):
43 40 c = self.load_default_context()
44 41
@@ -20,7 +20,7 b''
20 20
21 21 import logging
22 22
23 from pyramid.view import view_config
23
24 24
25 25 from rhodecode.apps._base import RepoAppView
26 26 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
@@ -36,9 +36,6 b' class RepoSettingsBranchPermissionsView('
36 36
37 37 @LoginRequired()
38 38 @HasRepoPermissionAnyDecorator('repository.admin')
39 @view_config(
40 route_name='edit_repo_perms_branch', request_method='GET',
41 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
42 39 def branch_permissions(self):
43 40 c = self.load_default_context()
44 41 c.active = 'permissions_branch'
@@ -19,7 +19,7 b''
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20
21 21 import logging
22 from pyramid.view import view_config
22
23 23
24 24 from rhodecode.apps._base import BaseReferencesView
25 25 from rhodecode.lib.ext_json import json
@@ -34,9 +34,6 b' class RepoBranchesView(BaseReferencesVie'
34 34 @LoginRequired()
35 35 @HasRepoPermissionAnyDecorator(
36 36 'repository.read', 'repository.write', 'repository.admin')
37 @view_config(
38 route_name='branches_home', request_method='GET',
39 renderer='rhodecode:templates/branches/branches.mako')
40 37 def branches(self):
41 38 c = self.load_default_context()
42 39
@@ -22,7 +22,7 b' import os'
22 22 import logging
23 23
24 24 from pyramid.httpexceptions import HTTPFound
25 from pyramid.view import view_config
25
26 26
27 27 from rhodecode.apps._base import RepoAppView
28 28 from rhodecode.lib.auth import (
@@ -42,9 +42,6 b' class RepoCachesView(RepoAppView):'
42 42
43 43 @LoginRequired()
44 44 @HasRepoPermissionAnyDecorator('repository.admin')
45 @view_config(
46 route_name='edit_repo_caches', request_method='GET',
47 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
48 45 def repo_caches(self):
49 46 c = self.load_default_context()
50 47 c.active = 'caches'
@@ -65,8 +62,6 b' class RepoCachesView(RepoAppView):'
65 62 @LoginRequired()
66 63 @HasRepoPermissionAnyDecorator('repository.admin')
67 64 @CSRFRequired()
68 @view_config(
69 route_name='edit_repo_caches', request_method='POST')
70 65 def repo_caches_purge(self):
71 66 _ = self.request.translate
72 67 c = self.load_default_context()
@@ -22,7 +22,7 b''
22 22 import logging
23 23
24 24 from pyramid.httpexceptions import HTTPNotFound, HTTPFound
25 from pyramid.view import view_config
25
26 26 from pyramid.renderers import render
27 27 from pyramid.response import Response
28 28
@@ -176,19 +176,6 b' class RepoChangelogView(RepoAppView):'
176 176 @LoginRequired()
177 177 @HasRepoPermissionAnyDecorator(
178 178 'repository.read', 'repository.write', 'repository.admin')
179 @view_config(
180 route_name='repo_commits', request_method='GET',
181 renderer='rhodecode:templates/commits/changelog.mako')
182 @view_config(
183 route_name='repo_commits_file', request_method='GET',
184 renderer='rhodecode:templates/commits/changelog.mako')
185 # old routes for backward compat
186 @view_config(
187 route_name='repo_changelog', request_method='GET',
188 renderer='rhodecode:templates/commits/changelog.mako')
189 @view_config(
190 route_name='repo_changelog_file', request_method='GET',
191 renderer='rhodecode:templates/commits/changelog.mako')
192 179 def repo_changelog(self):
193 180 c = self.load_default_context()
194 181
@@ -291,14 +278,6 b' class RepoChangelogView(RepoAppView):'
291 278 @LoginRequired()
292 279 @HasRepoPermissionAnyDecorator(
293 280 'repository.read', 'repository.write', 'repository.admin')
294 @view_config(
295 route_name='repo_commits_elements', request_method=('GET', 'POST'),
296 renderer='rhodecode:templates/commits/changelog_elements.mako',
297 xhr=True)
298 @view_config(
299 route_name='repo_commits_elements_file', request_method=('GET', 'POST'),
300 renderer='rhodecode:templates/commits/changelog_elements.mako',
301 xhr=True)
302 281 def repo_commits_elements(self):
303 282 c = self.load_default_context()
304 283 commit_id = self.request.matchdict.get('commit_id')
@@ -20,10 +20,8 b''
20 20
21 21 import logging
22 22
23 from pyramid.view import view_config
24 23 from pyramid.httpexceptions import HTTPFound, HTTPNotFound
25 24
26 from rhodecode import events
27 25 from rhodecode.apps._base import BaseAppView
28 26 from rhodecode.lib import helpers as h
29 27 from rhodecode.lib.auth import (NotAnonymous, HasRepoPermissionAny)
@@ -37,13 +35,9 b' log = logging.getLogger(__name__)'
37 35 class RepoChecksView(BaseAppView):
38 36 def load_default_context(self):
39 37 c = self._get_local_tmpl_context()
40
41 38 return c
42 39
43 40 @NotAnonymous()
44 @view_config(
45 route_name='repo_creating', request_method='GET',
46 renderer='rhodecode:templates/admin/repos/repo_creating.mako')
47 41 def repo_creating(self):
48 42 c = self.load_default_context()
49 43 repo_name = self.request.matchdict['repo_name']
@@ -71,9 +65,6 b' class RepoChecksView(BaseAppView):'
71 65 return self._get_template_context(c)
72 66
73 67 @NotAnonymous()
74 @view_config(
75 route_name='repo_creating_check', request_method='GET',
76 renderer='json_ext')
77 68 def repo_creating_check(self):
78 69 _ = self.request.translate
79 70 task_id = self.request.GET.get('task_id')
@@ -23,7 +23,6 b' import collections'
23 23
24 24 from pyramid.httpexceptions import (
25 25 HTTPNotFound, HTTPBadRequest, HTTPFound, HTTPForbidden, HTTPConflict)
26 from pyramid.view import view_config
27 26 from pyramid.renderers import render
28 27 from pyramid.response import Response
29 28
@@ -340,9 +339,6 b' class RepoCommitsView(RepoAppView):'
340 339 @LoginRequired()
341 340 @HasRepoPermissionAnyDecorator(
342 341 'repository.read', 'repository.write', 'repository.admin')
343 @view_config(
344 route_name='repo_commit', request_method='GET',
345 renderer=None)
346 342 def repo_commit_show(self):
347 343 commit_id = self.request.matchdict['commit_id']
348 344 return self._commit(commit_id, method='show')
@@ -350,12 +346,6 b' class RepoCommitsView(RepoAppView):'
350 346 @LoginRequired()
351 347 @HasRepoPermissionAnyDecorator(
352 348 'repository.read', 'repository.write', 'repository.admin')
353 @view_config(
354 route_name='repo_commit_raw', request_method='GET',
355 renderer=None)
356 @view_config(
357 route_name='repo_commit_raw_deprecated', request_method='GET',
358 renderer=None)
359 349 def repo_commit_raw(self):
360 350 commit_id = self.request.matchdict['commit_id']
361 351 return self._commit(commit_id, method='raw')
@@ -363,9 +353,6 b' class RepoCommitsView(RepoAppView):'
363 353 @LoginRequired()
364 354 @HasRepoPermissionAnyDecorator(
365 355 'repository.read', 'repository.write', 'repository.admin')
366 @view_config(
367 route_name='repo_commit_patch', request_method='GET',
368 renderer=None)
369 356 def repo_commit_patch(self):
370 357 commit_id = self.request.matchdict['commit_id']
371 358 return self._commit(commit_id, method='patch')
@@ -373,9 +360,6 b' class RepoCommitsView(RepoAppView):'
373 360 @LoginRequired()
374 361 @HasRepoPermissionAnyDecorator(
375 362 'repository.read', 'repository.write', 'repository.admin')
376 @view_config(
377 route_name='repo_commit_download', request_method='GET',
378 renderer=None)
379 363 def repo_commit_download(self):
380 364 commit_id = self.request.matchdict['commit_id']
381 365 return self._commit(commit_id, method='download')
@@ -500,9 +484,6 b' class RepoCommitsView(RepoAppView):'
500 484 @HasRepoPermissionAnyDecorator(
501 485 'repository.read', 'repository.write', 'repository.admin')
502 486 @CSRFRequired()
503 @view_config(
504 route_name='repo_commit_comment_create', request_method='POST',
505 renderer='json_ext')
506 487 def repo_commit_comment_create(self):
507 488 _ = self.request.translate
508 489 commit_id = self.request.matchdict['commit_id']
@@ -538,9 +519,6 b' class RepoCommitsView(RepoAppView):'
538 519 @HasRepoPermissionAnyDecorator(
539 520 'repository.read', 'repository.write', 'repository.admin')
540 521 @CSRFRequired()
541 @view_config(
542 route_name='repo_commit_comment_preview', request_method='POST',
543 renderer='string', xhr=True)
544 522 def repo_commit_comment_preview(self):
545 523 # Technically a CSRF token is not needed as no state changes with this
546 524 # call. However, as this is a POST is better to have it, so automated
@@ -559,9 +537,6 b' class RepoCommitsView(RepoAppView):'
559 537 @HasRepoPermissionAnyDecorator(
560 538 'repository.read', 'repository.write', 'repository.admin')
561 539 @CSRFRequired()
562 @view_config(
563 route_name='repo_commit_comment_history_view', request_method='POST',
564 renderer='string', xhr=True)
565 540 def repo_commit_comment_history_view(self):
566 541 c = self.load_default_context()
567 542
@@ -587,9 +562,6 b' class RepoCommitsView(RepoAppView):'
587 562 @HasRepoPermissionAnyDecorator(
588 563 'repository.read', 'repository.write', 'repository.admin')
589 564 @CSRFRequired()
590 @view_config(
591 route_name='repo_commit_comment_attachment_upload', request_method='POST',
592 renderer='json_ext', xhr=True)
593 565 def repo_commit_comment_attachment_upload(self):
594 566 c = self.load_default_context()
595 567 upload_key = 'attachment'
@@ -682,9 +654,6 b' class RepoCommitsView(RepoAppView):'
682 654 @HasRepoPermissionAnyDecorator(
683 655 'repository.read', 'repository.write', 'repository.admin')
684 656 @CSRFRequired()
685 @view_config(
686 route_name='repo_commit_comment_delete', request_method='POST',
687 renderer='json_ext')
688 657 def repo_commit_comment_delete(self):
689 658 commit_id = self.request.matchdict['commit_id']
690 659 comment_id = self.request.matchdict['comment_id']
@@ -719,9 +688,6 b' class RepoCommitsView(RepoAppView):'
719 688 @HasRepoPermissionAnyDecorator(
720 689 'repository.read', 'repository.write', 'repository.admin')
721 690 @CSRFRequired()
722 @view_config(
723 route_name='repo_commit_comment_edit', request_method='POST',
724 renderer='json_ext')
725 691 def repo_commit_comment_edit(self):
726 692 self.load_default_context()
727 693
@@ -802,9 +768,6 b' class RepoCommitsView(RepoAppView):'
802 768 @LoginRequired()
803 769 @HasRepoPermissionAnyDecorator(
804 770 'repository.read', 'repository.write', 'repository.admin')
805 @view_config(
806 route_name='repo_commit_data', request_method='GET',
807 renderer='json_ext', xhr=True)
808 771 def repo_commit_data(self):
809 772 commit_id = self.request.matchdict['commit_id']
810 773 self.load_default_context()
@@ -817,9 +780,6 b' class RepoCommitsView(RepoAppView):'
817 780 @LoginRequired()
818 781 @HasRepoPermissionAnyDecorator(
819 782 'repository.read', 'repository.write', 'repository.admin')
820 @view_config(
821 route_name='repo_commit_children', request_method='GET',
822 renderer='json_ext', xhr=True)
823 783 def repo_commit_children(self):
824 784 commit_id = self.request.matchdict['commit_id']
825 785 self.load_default_context()
@@ -836,9 +796,6 b' class RepoCommitsView(RepoAppView):'
836 796 @LoginRequired()
837 797 @HasRepoPermissionAnyDecorator(
838 798 'repository.read', 'repository.write', 'repository.admin')
839 @view_config(
840 route_name='repo_commit_parents', request_method='GET',
841 renderer='json_ext')
842 799 def repo_commit_parents(self):
843 800 commit_id = self.request.matchdict['commit_id']
844 801 self.load_default_context()
@@ -22,7 +22,7 b''
22 22 import logging
23 23
24 24 from pyramid.httpexceptions import HTTPBadRequest, HTTPNotFound, HTTPFound
25 from pyramid.view import view_config
25
26 26 from pyramid.renderers import render
27 27 from pyramid.response import Response
28 28
@@ -79,9 +79,6 b' class RepoCompareView(RepoAppView):'
79 79 @LoginRequired()
80 80 @HasRepoPermissionAnyDecorator(
81 81 'repository.read', 'repository.write', 'repository.admin')
82 @view_config(
83 route_name='repo_compare_select', request_method='GET',
84 renderer='rhodecode:templates/compare/compare_diff.mako')
85 82 def compare_select(self):
86 83 _ = self.request.translate
87 84 c = self.load_default_context()
@@ -111,9 +108,6 b' class RepoCompareView(RepoAppView):'
111 108 @LoginRequired()
112 109 @HasRepoPermissionAnyDecorator(
113 110 'repository.read', 'repository.write', 'repository.admin')
114 @view_config(
115 route_name='repo_compare', request_method='GET',
116 renderer=None)
117 111 def compare(self):
118 112 _ = self.request.translate
119 113 c = self.load_default_context()
@@ -20,10 +20,8 b''
20 20 import pytz
21 21 import logging
22 22
23 from pyramid.view import view_config
24 23 from pyramid.response import Response
25 24
26
27 25 from rhodecode.apps._base import RepoAppView
28 26 from rhodecode.lib.feedgenerator import Rss201rev2Feed, Atom1Feed
29 27 from rhodecode.lib import audit_logger
@@ -118,8 +116,6 b' class RepoFeedView(RepoAppView):'
118 116 @LoginRequired(auth_token_access=[UserApiKeys.ROLE_FEED])
119 117 @HasRepoPermissionAnyDecorator(
120 118 'repository.read', 'repository.write', 'repository.admin')
121 @view_config(route_name='atom_feed_home', request_method='GET', renderer=None)
122 @view_config(route_name='atom_feed_home_old', request_method='GET', renderer=None)
123 119 def atom(self):
124 120 """
125 121 Produce an atom-1.0 feed via feedgenerator module
@@ -166,8 +162,6 b' class RepoFeedView(RepoAppView):'
166 162 @LoginRequired(auth_token_access=[UserApiKeys.ROLE_FEED])
167 163 @HasRepoPermissionAnyDecorator(
168 164 'repository.read', 'repository.write', 'repository.admin')
169 @view_config(route_name='rss_feed_home', request_method='GET', renderer=None)
170 @view_config(route_name='rss_feed_home_old', request_method='GET', renderer=None)
171 165 def rss(self):
172 166 """
173 167 Produce an rss2 feed via feedgenerator module
@@ -28,7 +28,7 b' import urllib'
28 28 import pathlib2
29 29
30 30 from pyramid.httpexceptions import HTTPNotFound, HTTPBadRequest, HTTPFound
31 from pyramid.view import view_config
31
32 32 from pyramid.renderers import render
33 33 from pyramid.response import Response
34 34
@@ -343,9 +343,6 b' class RepoFilesView(RepoAppView):'
343 343 @LoginRequired()
344 344 @HasRepoPermissionAnyDecorator(
345 345 'repository.read', 'repository.write', 'repository.admin')
346 @view_config(
347 route_name='repo_archivefile', request_method='GET',
348 renderer=None)
349 346 def repo_archivefile(self):
350 347 # archive cache config
351 348 from rhodecode import CONFIG
@@ -496,9 +493,6 b' class RepoFilesView(RepoAppView):'
496 493 @LoginRequired()
497 494 @HasRepoPermissionAnyDecorator(
498 495 'repository.read', 'repository.write', 'repository.admin')
499 @view_config(
500 route_name='repo_files_diff', request_method='GET',
501 renderer=None)
502 496 def repo_files_diff(self):
503 497 c = self.load_default_context()
504 498 f_path = self._get_f_path(self.request.matchdict)
@@ -581,9 +575,6 b' class RepoFilesView(RepoAppView):'
581 575 @LoginRequired()
582 576 @HasRepoPermissionAnyDecorator(
583 577 'repository.read', 'repository.write', 'repository.admin')
584 @view_config(
585 route_name='repo_files_diff_2way_redirect', request_method='GET',
586 renderer=None)
587 578 def repo_files_diff_2way_redirect(self):
588 579 """
589 580 Kept only to make OLD links work
@@ -610,10 +601,11 b' class RepoFilesView(RepoAppView):'
610 601 raise HTTPFound(compare_url)
611 602
612 603 @LoginRequired()
613 @view_config(
614 route_name='repo_files:default_commit', request_method='GET',
615 renderer=None)
616 def repo_files_default(self):
604 def repo_files_default_commit_redirect(self):
605 """
606 Special page that redirects to the landing page of files based on the default
607 commit for repository
608 """
617 609 c = self.load_default_context()
618 610 ref_name = c.rhodecode_db_repo.landing_ref_name
619 611 landing_url = h.repo_files_by_ref_url(
@@ -630,18 +622,6 b' class RepoFilesView(RepoAppView):'
630 622 @LoginRequired()
631 623 @HasRepoPermissionAnyDecorator(
632 624 'repository.read', 'repository.write', 'repository.admin')
633 @view_config(
634 route_name='repo_files', request_method='GET',
635 renderer=None)
636 @view_config(
637 route_name='repo_files:default_path', request_method='GET',
638 renderer=None)
639 @view_config(
640 route_name='repo_files:rendered', request_method='GET',
641 renderer=None)
642 @view_config(
643 route_name='repo_files:annotated', request_method='GET',
644 renderer=None)
645 625 def repo_files(self):
646 626 c = self.load_default_context()
647 627
@@ -759,9 +739,6 b' class RepoFilesView(RepoAppView):'
759 739
760 740 @HasRepoPermissionAnyDecorator(
761 741 'repository.read', 'repository.write', 'repository.admin')
762 @view_config(
763 route_name='repo_files:annotated_previous', request_method='GET',
764 renderer=None)
765 742 def repo_files_annotated_previous(self):
766 743 self.load_default_context()
767 744
@@ -790,12 +767,6 b' class RepoFilesView(RepoAppView):'
790 767 @LoginRequired()
791 768 @HasRepoPermissionAnyDecorator(
792 769 'repository.read', 'repository.write', 'repository.admin')
793 @view_config(
794 route_name='repo_nodetree_full', request_method='GET',
795 renderer=None, xhr=True)
796 @view_config(
797 route_name='repo_nodetree_full:default_path', request_method='GET',
798 renderer=None, xhr=True)
799 770 def repo_nodetree_full(self):
800 771 """
801 772 Returns rendered html of file tree that contains commit date,
@@ -835,9 +806,6 b' class RepoFilesView(RepoAppView):'
835 806 @LoginRequired()
836 807 @HasRepoPermissionAnyDecorator(
837 808 'repository.read', 'repository.write', 'repository.admin')
838 @view_config(
839 route_name='repo_file_raw', request_method='GET',
840 renderer=None)
841 809 def repo_file_raw(self):
842 810 """
843 811 Action for show as raw, some mimetypes are "rendered",
@@ -902,12 +870,6 b' class RepoFilesView(RepoAppView):'
902 870 @LoginRequired()
903 871 @HasRepoPermissionAnyDecorator(
904 872 'repository.read', 'repository.write', 'repository.admin')
905 @view_config(
906 route_name='repo_file_download', request_method='GET',
907 renderer=None)
908 @view_config(
909 route_name='repo_file_download:legacy', request_method='GET',
910 renderer=None)
911 873 def repo_file_download(self):
912 874 c = self.load_default_context()
913 875
@@ -972,9 +934,6 b' class RepoFilesView(RepoAppView):'
972 934 @LoginRequired()
973 935 @HasRepoPermissionAnyDecorator(
974 936 'repository.read', 'repository.write', 'repository.admin')
975 @view_config(
976 route_name='repo_files_nodelist', request_method='GET',
977 renderer='json_ext', xhr=True)
978 937 def repo_nodelist(self):
979 938 self.load_default_context()
980 939
@@ -1059,9 +1018,6 b' class RepoFilesView(RepoAppView):'
1059 1018 @LoginRequired()
1060 1019 @HasRepoPermissionAnyDecorator(
1061 1020 'repository.read', 'repository.write', 'repository.admin')
1062 @view_config(
1063 route_name='repo_file_history', request_method='GET',
1064 renderer='json_ext')
1065 1021 def repo_file_history(self):
1066 1022 self.load_default_context()
1067 1023
@@ -1105,9 +1061,6 b' class RepoFilesView(RepoAppView):'
1105 1061 @LoginRequired()
1106 1062 @HasRepoPermissionAnyDecorator(
1107 1063 'repository.read', 'repository.write', 'repository.admin')
1108 @view_config(
1109 route_name='repo_file_authors', request_method='GET',
1110 renderer='rhodecode:templates/files/file_authors_box.mako')
1111 1064 def repo_file_authors(self):
1112 1065 c = self.load_default_context()
1113 1066
@@ -1149,9 +1102,6 b' class RepoFilesView(RepoAppView):'
1149 1102
1150 1103 @LoginRequired()
1151 1104 @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin')
1152 @view_config(
1153 route_name='repo_files_check_head', request_method='POST',
1154 renderer='json_ext', xhr=True)
1155 1105 def repo_files_check_head(self):
1156 1106 self.load_default_context()
1157 1107
@@ -1186,9 +1136,6 b' class RepoFilesView(RepoAppView):'
1186 1136
1187 1137 @LoginRequired()
1188 1138 @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin')
1189 @view_config(
1190 route_name='repo_files_remove_file', request_method='GET',
1191 renderer='rhodecode:templates/files/files_delete.mako')
1192 1139 def repo_files_remove_file(self):
1193 1140 _ = self.request.translate
1194 1141 c = self.load_default_context()
@@ -1214,9 +1161,6 b' class RepoFilesView(RepoAppView):'
1214 1161 @LoginRequired()
1215 1162 @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin')
1216 1163 @CSRFRequired()
1217 @view_config(
1218 route_name='repo_files_delete_file', request_method='POST',
1219 renderer=None)
1220 1164 def repo_files_delete_file(self):
1221 1165 _ = self.request.translate
1222 1166
@@ -1266,9 +1210,6 b' class RepoFilesView(RepoAppView):'
1266 1210
1267 1211 @LoginRequired()
1268 1212 @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin')
1269 @view_config(
1270 route_name='repo_files_edit_file', request_method='GET',
1271 renderer='rhodecode:templates/files/files_edit.mako')
1272 1213 def repo_files_edit_file(self):
1273 1214 _ = self.request.translate
1274 1215 c = self.load_default_context()
@@ -1300,9 +1241,6 b' class RepoFilesView(RepoAppView):'
1300 1241 @LoginRequired()
1301 1242 @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin')
1302 1243 @CSRFRequired()
1303 @view_config(
1304 route_name='repo_files_update_file', request_method='POST',
1305 renderer=None)
1306 1244 def repo_files_update_file(self):
1307 1245 _ = self.request.translate
1308 1246 c = self.load_default_context()
@@ -1384,12 +1322,6 b' class RepoFilesView(RepoAppView):'
1384 1322
1385 1323 @LoginRequired()
1386 1324 @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin')
1387 @view_config(
1388 route_name='repo_files_add_file', request_method='GET',
1389 renderer='rhodecode:templates/files/files_add.mako')
1390 @view_config(
1391 route_name='repo_files_upload_file', request_method='GET',
1392 renderer='rhodecode:templates/files/files_upload.mako')
1393 1325 def repo_files_add_file(self):
1394 1326 _ = self.request.translate
1395 1327 c = self.load_default_context()
@@ -1421,9 +1353,6 b' class RepoFilesView(RepoAppView):'
1421 1353 @LoginRequired()
1422 1354 @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin')
1423 1355 @CSRFRequired()
1424 @view_config(
1425 route_name='repo_files_create_file', request_method='POST',
1426 renderer=None)
1427 1356 def repo_files_create_file(self):
1428 1357 _ = self.request.translate
1429 1358 c = self.load_default_context()
@@ -1518,9 +1447,6 b' class RepoFilesView(RepoAppView):'
1518 1447 @LoginRequired()
1519 1448 @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin')
1520 1449 @CSRFRequired()
1521 @view_config(
1522 route_name='repo_files_upload_file', request_method='POST',
1523 renderer='json_ext')
1524 1450 def repo_files_upload_file(self):
1525 1451 _ = self.request.translate
1526 1452 c = self.load_default_context()
@@ -24,7 +24,7 b' import formencode'
24 24 import formencode.htmlfill
25 25
26 26 from pyramid.httpexceptions import HTTPFound
27 from pyramid.view import view_config
27
28 28 from pyramid.renderers import render
29 29 from pyramid.response import Response
30 30
@@ -64,9 +64,6 b' class RepoForksView(RepoAppView, DataGri'
64 64 @LoginRequired()
65 65 @HasRepoPermissionAnyDecorator(
66 66 'repository.read', 'repository.write', 'repository.admin')
67 @view_config(
68 route_name='repo_forks_show_all', request_method='GET',
69 renderer='rhodecode:templates/forks/forks.mako')
70 67 def repo_forks_show_all(self):
71 68 c = self.load_default_context()
72 69 return self._get_template_context(c)
@@ -74,9 +71,6 b' class RepoForksView(RepoAppView, DataGri'
74 71 @LoginRequired()
75 72 @HasRepoPermissionAnyDecorator(
76 73 'repository.read', 'repository.write', 'repository.admin')
77 @view_config(
78 route_name='repo_forks_data', request_method='GET',
79 renderer='json_ext', xhr=True)
80 74 def repo_forks_data(self):
81 75 _ = self.request.translate
82 76 self.load_default_context()
@@ -174,9 +168,6 b' class RepoForksView(RepoAppView, DataGri'
174 168 @HasPermissionAnyDecorator('hg.admin', 'hg.fork.repository')
175 169 @HasRepoPermissionAnyDecorator(
176 170 'repository.read', 'repository.write', 'repository.admin')
177 @view_config(
178 route_name='repo_fork_new', request_method='GET',
179 renderer='rhodecode:templates/forks/forks.mako')
180 171 def repo_fork_new(self):
181 172 c = self.load_default_context()
182 173
@@ -204,9 +195,6 b' class RepoForksView(RepoAppView, DataGri'
204 195 @HasRepoPermissionAnyDecorator(
205 196 'repository.read', 'repository.write', 'repository.admin')
206 197 @CSRFRequired()
207 @view_config(
208 route_name='repo_fork_create', request_method='POST',
209 renderer='rhodecode:templates/forks/fork.mako')
210 198 def repo_fork_create(self):
211 199 _ = self.request.translate
212 200 c = self.load_default_context()
@@ -20,7 +20,7 b''
20 20
21 21 import logging
22 22
23 from pyramid.view import view_config
23
24 24
25 25 from rhodecode.apps._base import RepoAppView
26 26 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
@@ -36,9 +36,6 b' class RepoMaintenanceView(RepoAppView):'
36 36
37 37 @LoginRequired()
38 38 @HasRepoPermissionAnyDecorator('repository.admin')
39 @view_config(
40 route_name='edit_repo_maintenance', request_method='GET',
41 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
42 39 def repo_maintenance(self):
43 40 c = self.load_default_context()
44 41 c.active = 'maintenance'
@@ -48,9 +45,6 b' class RepoMaintenanceView(RepoAppView):'
48 45
49 46 @LoginRequired()
50 47 @HasRepoPermissionAnyDecorator('repository.admin')
51 @view_config(
52 route_name='edit_repo_maintenance_execute', request_method='GET',
53 renderer='json', xhr=True)
54 48 def repo_maintenance_execute(self):
55 49 c = self.load_default_context()
56 50 c.active = 'maintenance'
@@ -21,7 +21,6 b''
21 21 import logging
22 22
23 23 from pyramid.httpexceptions import HTTPFound
24 from pyramid.view import view_config
25 24
26 25 from rhodecode.apps._base import RepoAppView
27 26 from rhodecode.lib import helpers as h
@@ -46,9 +45,6 b' class RepoSettingsPermissionsView(RepoAp'
46 45
47 46 @LoginRequired()
48 47 @HasRepoPermissionAnyDecorator('repository.admin')
49 @view_config(
50 route_name='edit_repo_perms', request_method='GET',
51 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
52 48 def edit_permissions(self):
53 49 _ = self.request.translate
54 50 c = self.load_default_context()
@@ -62,9 +58,6 b' class RepoSettingsPermissionsView(RepoAp'
62 58 @LoginRequired()
63 59 @HasRepoPermissionAnyDecorator('repository.admin')
64 60 @CSRFRequired()
65 @view_config(
66 route_name='edit_repo_perms', request_method='POST',
67 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
68 61 def edit_permissions_update(self):
69 62 _ = self.request.translate
70 63 c = self.load_default_context()
@@ -104,9 +97,6 b' class RepoSettingsPermissionsView(RepoAp'
104 97 @LoginRequired()
105 98 @HasRepoPermissionAnyDecorator('repository.admin')
106 99 @CSRFRequired()
107 @view_config(
108 route_name='edit_repo_perms_set_private', request_method='POST',
109 renderer='json_ext')
110 100 def edit_permissions_set_private_repo(self):
111 101 _ = self.request.translate
112 102 self.load_default_context()
@@ -26,7 +26,7 b' import formencode.htmlfill'
26 26 import peppercorn
27 27 from pyramid.httpexceptions import (
28 28 HTTPFound, HTTPNotFound, HTTPForbidden, HTTPBadRequest, HTTPConflict)
29 from pyramid.view import view_config
29
30 30 from pyramid.renderers import render
31 31
32 32 from rhodecode.apps._base import RepoAppView, DataGridAppView
@@ -147,9 +147,6 b' class RepoPullRequestsView(RepoAppView, '
147 147 @LoginRequired()
148 148 @HasRepoPermissionAnyDecorator(
149 149 'repository.read', 'repository.write', 'repository.admin')
150 @view_config(
151 route_name='pullrequest_show_all', request_method='GET',
152 renderer='rhodecode:templates/pullrequests/pullrequests.mako')
153 150 def pull_request_list(self):
154 151 c = self.load_default_context()
155 152
@@ -177,9 +174,6 b' class RepoPullRequestsView(RepoAppView, '
177 174 @LoginRequired()
178 175 @HasRepoPermissionAnyDecorator(
179 176 'repository.read', 'repository.write', 'repository.admin')
180 @view_config(
181 route_name='pullrequest_show_all_data', request_method='GET',
182 renderer='json_ext', xhr=True)
183 177 def pull_request_list_data(self):
184 178 self.load_default_context()
185 179
@@ -311,9 +305,6 b' class RepoPullRequestsView(RepoAppView, '
311 305 @LoginRequired()
312 306 @HasRepoPermissionAnyDecorator(
313 307 'repository.read', 'repository.write', 'repository.admin')
314 @view_config(
315 route_name='pullrequest_show', request_method='GET',
316 renderer='rhodecode:templates/pullrequests/pullrequest_show.mako')
317 308 def pull_request_show(self):
318 309 _ = self.request.translate
319 310 c = self.load_default_context()
@@ -842,9 +833,6 b' class RepoPullRequestsView(RepoAppView, '
842 833 @NotAnonymous()
843 834 @HasRepoPermissionAnyDecorator(
844 835 'repository.read', 'repository.write', 'repository.admin')
845 @view_config(
846 route_name='pullrequest_new', request_method='GET',
847 renderer='rhodecode:templates/pullrequests/pullrequest.mako')
848 836 def pull_request_new(self):
849 837 _ = self.request.translate
850 838 c = self.load_default_context()
@@ -902,9 +890,6 b' class RepoPullRequestsView(RepoAppView, '
902 890 @NotAnonymous()
903 891 @HasRepoPermissionAnyDecorator(
904 892 'repository.read', 'repository.write', 'repository.admin')
905 @view_config(
906 route_name='pullrequest_repo_refs', request_method='GET',
907 renderer='json_ext', xhr=True)
908 893 def pull_request_repo_refs(self):
909 894 self.load_default_context()
910 895 target_repo_name = self.request.matchdict['target_repo_name']
@@ -925,9 +910,6 b' class RepoPullRequestsView(RepoAppView, '
925 910 @NotAnonymous()
926 911 @HasRepoPermissionAnyDecorator(
927 912 'repository.read', 'repository.write', 'repository.admin')
928 @view_config(
929 route_name='pullrequest_repo_targets', request_method='GET',
930 renderer='json_ext', xhr=True)
931 913 def pullrequest_repo_targets(self):
932 914 _ = self.request.translate
933 915 filter_query = self.request.GET.get('query')
@@ -998,9 +980,6 b' class RepoPullRequestsView(RepoAppView, '
998 980 @NotAnonymous()
999 981 @HasRepoPermissionAnyDecorator(
1000 982 'repository.read', 'repository.write', 'repository.admin')
1001 @view_config(
1002 route_name='pullrequest_comments', request_method='POST',
1003 renderer='string_html', xhr=True)
1004 983 def pullrequest_comments(self):
1005 984 self.load_default_context()
1006 985
@@ -1038,9 +1017,6 b' class RepoPullRequestsView(RepoAppView, '
1038 1017 @NotAnonymous()
1039 1018 @HasRepoPermissionAnyDecorator(
1040 1019 'repository.read', 'repository.write', 'repository.admin')
1041 @view_config(
1042 route_name='pullrequest_todos', request_method='POST',
1043 renderer='string_html', xhr=True)
1044 1020 def pullrequest_todos(self):
1045 1021 self.load_default_context()
1046 1022
@@ -1080,9 +1056,6 b' class RepoPullRequestsView(RepoAppView, '
1080 1056 @NotAnonymous()
1081 1057 @HasRepoPermissionAnyDecorator(
1082 1058 'repository.read', 'repository.write', 'repository.admin')
1083 @view_config(
1084 route_name='pullrequest_drafts', request_method='POST',
1085 renderer='string_html', xhr=True)
1086 1059 def pullrequest_drafts(self):
1087 1060 self.load_default_context()
1088 1061
@@ -1123,9 +1096,6 b' class RepoPullRequestsView(RepoAppView, '
1123 1096 @HasRepoPermissionAnyDecorator(
1124 1097 'repository.read', 'repository.write', 'repository.admin')
1125 1098 @CSRFRequired()
1126 @view_config(
1127 route_name='pullrequest_create', request_method='POST',
1128 renderer=None)
1129 1099 def pull_request_create(self):
1130 1100 _ = self.request.translate
1131 1101 self.assure_not_empty_repo()
@@ -1281,9 +1251,6 b' class RepoPullRequestsView(RepoAppView, '
1281 1251 @HasRepoPermissionAnyDecorator(
1282 1252 'repository.read', 'repository.write', 'repository.admin')
1283 1253 @CSRFRequired()
1284 @view_config(
1285 route_name='pullrequest_update', request_method='POST',
1286 renderer='json_ext')
1287 1254 def pull_request_update(self):
1288 1255 pull_request = PullRequest.get_or_404(
1289 1256 self.request.matchdict['pull_request_id'])
@@ -1465,9 +1432,6 b' class RepoPullRequestsView(RepoAppView, '
1465 1432 @HasRepoPermissionAnyDecorator(
1466 1433 'repository.read', 'repository.write', 'repository.admin')
1467 1434 @CSRFRequired()
1468 @view_config(
1469 route_name='pullrequest_merge', request_method='POST',
1470 renderer='json_ext')
1471 1435 def pull_request_merge(self):
1472 1436 """
1473 1437 Merge will perform a server-side merge of the specified
@@ -1541,9 +1505,6 b' class RepoPullRequestsView(RepoAppView, '
1541 1505 @HasRepoPermissionAnyDecorator(
1542 1506 'repository.read', 'repository.write', 'repository.admin')
1543 1507 @CSRFRequired()
1544 @view_config(
1545 route_name='pullrequest_delete', request_method='POST',
1546 renderer='json_ext')
1547 1508 def pull_request_delete(self):
1548 1509 _ = self.request.translate
1549 1510
@@ -1719,9 +1680,6 b' class RepoPullRequestsView(RepoAppView, '
1719 1680 @HasRepoPermissionAnyDecorator(
1720 1681 'repository.read', 'repository.write', 'repository.admin')
1721 1682 @CSRFRequired()
1722 @view_config(
1723 route_name='pullrequest_comment_create', request_method='POST',
1724 renderer='json_ext')
1725 1683 def pull_request_comment_create(self):
1726 1684 _ = self.request.translate
1727 1685
@@ -1756,9 +1714,6 b' class RepoPullRequestsView(RepoAppView, '
1756 1714 @HasRepoPermissionAnyDecorator(
1757 1715 'repository.read', 'repository.write', 'repository.admin')
1758 1716 @CSRFRequired()
1759 @view_config(
1760 route_name='pullrequest_comment_delete', request_method='POST',
1761 renderer='json_ext')
1762 1717 def pull_request_comment_delete(self):
1763 1718 pull_request = PullRequest.get_or_404(
1764 1719 self.request.matchdict['pull_request_id'])
@@ -1810,9 +1765,6 b' class RepoPullRequestsView(RepoAppView, '
1810 1765 @HasRepoPermissionAnyDecorator(
1811 1766 'repository.read', 'repository.write', 'repository.admin')
1812 1767 @CSRFRequired()
1813 @view_config(
1814 route_name='pullrequest_comment_edit', request_method='POST',
1815 renderer='json_ext')
1816 1768 def pull_request_comment_edit(self):
1817 1769 self.load_default_context()
1818 1770
@@ -20,7 +20,7 b''
20 20
21 21 import logging
22 22
23 from pyramid.view import view_config
23
24 24
25 25 from rhodecode.apps._base import RepoAppView
26 26 from rhodecode.apps.repository.utils import get_default_reviewers_data
@@ -38,9 +38,6 b' class RepoReviewRulesView(RepoAppView):'
38 38
39 39 @LoginRequired()
40 40 @HasRepoPermissionAnyDecorator('repository.admin')
41 @view_config(
42 route_name='repo_reviewers', request_method='GET',
43 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
44 41 def repo_review_rules(self):
45 42 c = self.load_default_context()
46 43 c.active = 'reviewers'
@@ -50,9 +47,6 b' class RepoReviewRulesView(RepoAppView):'
50 47 @LoginRequired()
51 48 @HasRepoPermissionAnyDecorator(
52 49 'repository.read', 'repository.write', 'repository.admin')
53 @view_config(
54 route_name='repo_default_reviewers_data', request_method='GET',
55 renderer='json_ext')
56 50 def repo_default_reviewers_data(self):
57 51 self.load_default_context()
58 52
@@ -22,7 +22,6 b' import logging'
22 22
23 23 import deform
24 24 from pyramid.httpexceptions import HTTPFound
25 from pyramid.view import view_config
26 25
27 26 from rhodecode import events
28 27 from rhodecode.apps._base import RepoAppView
@@ -90,9 +89,6 b' class RepoSettingsView(RepoAppView):'
90 89
91 90 @LoginRequired()
92 91 @HasRepoPermissionAnyDecorator('repository.admin')
93 @view_config(
94 route_name='edit_repo', request_method='GET',
95 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
96 92 def edit_settings(self):
97 93 c = self.load_default_context()
98 94 c.active = 'settings'
@@ -108,9 +104,6 b' class RepoSettingsView(RepoAppView):'
108 104 @LoginRequired()
109 105 @HasRepoPermissionAnyDecorator('repository.admin')
110 106 @CSRFRequired()
111 @view_config(
112 route_name='edit_repo', request_method='POST',
113 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
114 107 def edit_settings_update(self):
115 108 _ = self.request.translate
116 109 c = self.load_default_context()
@@ -192,9 +185,6 b' class RepoSettingsView(RepoAppView):'
192 185
193 186 @LoginRequired()
194 187 @HasRepoPermissionAnyDecorator('repository.write', 'repository.admin')
195 @view_config(
196 route_name='repo_edit_toggle_locking', request_method='GET',
197 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
198 188 def toggle_locking(self):
199 189 """
200 190 Toggle locking of repository by simple GET call to url
@@ -224,9 +214,6 b' class RepoSettingsView(RepoAppView):'
224 214
225 215 @LoginRequired()
226 216 @HasRepoPermissionAnyDecorator('repository.admin')
227 @view_config(
228 route_name='edit_repo_statistics', request_method='GET',
229 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
230 217 def edit_statistics_form(self):
231 218 c = self.load_default_context()
232 219
@@ -250,9 +237,6 b' class RepoSettingsView(RepoAppView):'
250 237 @LoginRequired()
251 238 @HasRepoPermissionAnyDecorator('repository.admin')
252 239 @CSRFRequired()
253 @view_config(
254 route_name='edit_repo_statistics_reset', request_method='POST',
255 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
256 240 def repo_statistics_reset(self):
257 241 _ = self.request.translate
258 242
@@ -20,7 +20,7 b''
20 20
21 21 import logging
22 22
23 from pyramid.view import view_config
23
24 24 from pyramid.httpexceptions import HTTPFound
25 25 from packaging.version import Version
26 26
@@ -42,7 +42,7 b' from rhodecode.model.scm import ScmModel'
42 42 log = logging.getLogger(__name__)
43 43
44 44
45 class RepoSettingsView(RepoAppView):
45 class RepoSettingsAdvancedView(RepoAppView):
46 46
47 47 def load_default_context(self):
48 48 c = self._get_local_tmpl_context()
@@ -57,9 +57,6 b' class RepoSettingsView(RepoAppView):'
57 57
58 58 @LoginRequired()
59 59 @HasRepoPermissionAnyDecorator('repository.admin')
60 @view_config(
61 route_name='edit_repo_advanced', request_method='GET',
62 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
63 60 def edit_advanced(self):
64 61 _ = self.request.translate
65 62 c = self.load_default_context()
@@ -89,9 +86,6 b' class RepoSettingsView(RepoAppView):'
89 86 @LoginRequired()
90 87 @HasRepoPermissionAnyDecorator('repository.admin')
91 88 @CSRFRequired()
92 @view_config(
93 route_name='edit_repo_advanced_archive', request_method='POST',
94 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
95 89 def edit_advanced_archive(self):
96 90 """
97 91 Archives the repository. It will become read-only, and not visible in search
@@ -132,9 +126,6 b' class RepoSettingsView(RepoAppView):'
132 126 @LoginRequired()
133 127 @HasRepoPermissionAnyDecorator('repository.admin')
134 128 @CSRFRequired()
135 @view_config(
136 route_name='edit_repo_advanced_delete', request_method='POST',
137 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
138 129 def edit_advanced_delete(self):
139 130 """
140 131 Deletes the repository, or shows warnings if deletion is not possible
@@ -209,9 +200,6 b' class RepoSettingsView(RepoAppView):'
209 200 @LoginRequired()
210 201 @HasRepoPermissionAnyDecorator('repository.admin')
211 202 @CSRFRequired()
212 @view_config(
213 route_name='edit_repo_advanced_journal', request_method='POST',
214 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
215 203 def edit_advanced_journal(self):
216 204 """
217 205 Set's this repository to be visible in public journal,
@@ -236,9 +224,6 b' class RepoSettingsView(RepoAppView):'
236 224 @LoginRequired()
237 225 @HasRepoPermissionAnyDecorator('repository.admin')
238 226 @CSRFRequired()
239 @view_config(
240 route_name='edit_repo_advanced_fork', request_method='POST',
241 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
242 227 def edit_advanced_fork(self):
243 228 """
244 229 Mark given repository as a fork of another
@@ -281,10 +266,7 b' class RepoSettingsView(RepoAppView):'
281 266 @LoginRequired()
282 267 @HasRepoPermissionAnyDecorator('repository.admin')
283 268 @CSRFRequired()
284 @view_config(
285 route_name='edit_repo_advanced_locking', request_method='POST',
286 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
287 def edit_advanced_locking(self):
269 def edit_advanced_toggle_locking(self):
288 270 """
289 271 Toggle locking of repository
290 272 """
@@ -309,9 +291,6 b' class RepoSettingsView(RepoAppView):'
309 291
310 292 @LoginRequired()
311 293 @HasRepoPermissionAnyDecorator('repository.admin')
312 @view_config(
313 route_name='edit_repo_advanced_hooks', request_method='GET',
314 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
315 294 def edit_advanced_install_hooks(self):
316 295 """
317 296 Install Hooks for repository
@@ -24,7 +24,6 b' import formencode'
24 24 import formencode.htmlfill
25 25
26 26 from pyramid.httpexceptions import HTTPFound
27 from pyramid.view import view_config
28 27
29 28 from rhodecode.apps._base import RepoAppView
30 29 from rhodecode.lib import audit_logger
@@ -48,9 +47,6 b' class RepoSettingsFieldsView(RepoAppView'
48 47
49 48 @LoginRequired()
50 49 @HasRepoPermissionAnyDecorator('repository.admin')
51 @view_config(
52 route_name='edit_repo_fields', request_method='GET',
53 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
54 50 def repo_field_edit(self):
55 51 c = self.load_default_context()
56 52
@@ -63,9 +59,6 b' class RepoSettingsFieldsView(RepoAppView'
63 59 @LoginRequired()
64 60 @HasRepoPermissionAnyDecorator('repository.admin')
65 61 @CSRFRequired()
66 @view_config(
67 route_name='edit_repo_fields_create', request_method='POST',
68 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
69 62 def repo_field_create(self):
70 63 _ = self.request.translate
71 64
@@ -94,9 +87,6 b' class RepoSettingsFieldsView(RepoAppView'
94 87 @LoginRequired()
95 88 @HasRepoPermissionAnyDecorator('repository.admin')
96 89 @CSRFRequired()
97 @view_config(
98 route_name='edit_repo_fields_delete', request_method='POST',
99 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
100 90 def repo_field_delete(self):
101 91 _ = self.request.translate
102 92 field = RepositoryField.get_or_404(self.request.matchdict['field_id'])
@@ -21,7 +21,7 b''
21 21 import logging
22 22
23 23 from pyramid.httpexceptions import HTTPFound, HTTPNotFound
24 from pyramid.view import view_config
24
25 25 import formencode
26 26
27 27 from rhodecode.apps._base import RepoAppView
@@ -45,9 +45,6 b' class RepoSettingsIssueTrackersView(Repo'
45 45
46 46 @LoginRequired()
47 47 @HasRepoPermissionAnyDecorator('repository.admin')
48 @view_config(
49 route_name='edit_repo_issuetracker', request_method='GET',
50 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
51 48 def repo_issuetracker(self):
52 49 c = self.load_default_context()
53 50 c.active = 'issuetracker'
@@ -62,9 +59,6 b' class RepoSettingsIssueTrackersView(Repo'
62 59 @LoginRequired()
63 60 @HasRepoPermissionAnyDecorator('repository.admin')
64 61 @CSRFRequired()
65 @view_config(
66 route_name='edit_repo_issuetracker_test', request_method='POST',
67 renderer='string', xhr=True)
68 62 def repo_issuetracker_test(self):
69 63 return h.urlify_commit_message(
70 64 self.request.POST.get('test_text', ''),
@@ -73,9 +67,6 b' class RepoSettingsIssueTrackersView(Repo'
73 67 @LoginRequired()
74 68 @HasRepoPermissionAnyDecorator('repository.admin')
75 69 @CSRFRequired()
76 @view_config(
77 route_name='edit_repo_issuetracker_delete', request_method='POST',
78 renderer='json_ext', xhr=True)
79 70 def repo_issuetracker_delete(self):
80 71 _ = self.request.translate
81 72 uid = self.request.POST.get('uid')
@@ -107,9 +98,6 b' class RepoSettingsIssueTrackersView(Repo'
107 98 @LoginRequired()
108 99 @HasRepoPermissionAnyDecorator('repository.admin')
109 100 @CSRFRequired()
110 @view_config(
111 route_name='edit_repo_issuetracker_update', request_method='POST',
112 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
113 101 def repo_issuetracker_update(self):
114 102 _ = self.request.translate
115 103 # Save inheritance
@@ -21,7 +21,7 b''
21 21 import logging
22 22
23 23 from pyramid.httpexceptions import HTTPFound
24 from pyramid.view import view_config
24
25 25
26 26 from rhodecode.apps._base import RepoAppView
27 27 from rhodecode.lib import helpers as h
@@ -39,9 +39,6 b' class RepoSettingsRemoteView(RepoAppView'
39 39
40 40 @LoginRequired()
41 41 @HasRepoPermissionAnyDecorator('repository.admin')
42 @view_config(
43 route_name='edit_repo_remote', request_method='GET',
44 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
45 42 def repo_remote_edit_form(self):
46 43 c = self.load_default_context()
47 44 c.active = 'remote'
@@ -51,9 +48,6 b' class RepoSettingsRemoteView(RepoAppView'
51 48 @LoginRequired()
52 49 @HasRepoPermissionAnyDecorator('repository.admin')
53 50 @CSRFRequired()
54 @view_config(
55 route_name='edit_repo_remote_pull', request_method='POST',
56 renderer=None)
57 51 def repo_remote_pull_changes(self):
58 52 _ = self.request.translate
59 53 self.load_default_context()
@@ -25,10 +25,8 b' import formencode.htmlfill'
25 25 from pyramid.httpexceptions import HTTPFound, HTTPBadRequest
26 26 from pyramid.response import Response
27 27 from pyramid.renderers import render
28 from pyramid.view import view_config
29 28
30 29 from rhodecode.apps._base import RepoAppView
31 from rhodecode.lib import audit_logger
32 30 from rhodecode.lib import helpers as h
33 31 from rhodecode.lib.auth import (
34 32 LoginRequired, HasRepoPermissionAnyDecorator, CSRFRequired)
@@ -71,9 +69,6 b' class RepoSettingsVcsView(RepoAppView):'
71 69
72 70 @LoginRequired()
73 71 @HasRepoPermissionAnyDecorator('repository.admin')
74 @view_config(
75 route_name='edit_repo_vcs', request_method='GET',
76 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
77 72 def repo_vcs_settings(self):
78 73 c = self.load_default_context()
79 74 model = VcsSettingsModel(repo=self.db_repo_name)
@@ -100,9 +95,6 b' class RepoSettingsVcsView(RepoAppView):'
100 95 @LoginRequired()
101 96 @HasRepoPermissionAnyDecorator('repository.admin')
102 97 @CSRFRequired()
103 @view_config(
104 route_name='edit_repo_vcs_update', request_method='POST',
105 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
106 98 def repo_settings_vcs_update(self):
107 99 _ = self.request.translate
108 100 c = self.load_default_context()
@@ -153,9 +145,6 b' class RepoSettingsVcsView(RepoAppView):'
153 145 @LoginRequired()
154 146 @HasRepoPermissionAnyDecorator('repository.admin')
155 147 @CSRFRequired()
156 @view_config(
157 route_name='edit_repo_vcs_svn_pattern_delete', request_method='POST',
158 renderer='json_ext', xhr=True)
159 148 def repo_settings_delete_svn_pattern(self):
160 149 self.load_default_context()
161 150 delete_pattern_id = self.request.POST.get('delete_svn_pattern')
@@ -19,7 +19,7 b''
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20
21 21 import logging
22 from pyramid.view import view_config
22
23 23
24 24 from rhodecode.apps._base import RepoAppView
25 25 from rhodecode.lib import audit_logger
@@ -31,7 +31,7 b' from rhodecode.lib.ext_json import json'
31 31 log = logging.getLogger(__name__)
32 32
33 33
34 class StripView(RepoAppView):
34 class RepoStripView(RepoAppView):
35 35 def load_default_context(self):
36 36 c = self._get_local_tmpl_context()
37 37
@@ -40,9 +40,6 b' class StripView(RepoAppView):'
40 40
41 41 @LoginRequired()
42 42 @HasRepoPermissionAnyDecorator('repository.admin')
43 @view_config(
44 route_name='edit_repo_strip', request_method='GET',
45 renderer='rhodecode:templates/admin/repos/repo_edit.mako')
46 43 def strip(self):
47 44 c = self.load_default_context()
48 45 c.active = 'strip'
@@ -53,9 +50,6 b' class StripView(RepoAppView):'
53 50 @LoginRequired()
54 51 @HasRepoPermissionAnyDecorator('repository.admin')
55 52 @CSRFRequired()
56 @view_config(
57 route_name='strip_check', request_method='POST',
58 renderer='json', xhr=True)
59 53 def strip_check(self):
60 54 from rhodecode.lib.vcs.backends.base import EmptyCommit
61 55 data = {}
@@ -79,9 +73,6 b' class StripView(RepoAppView):'
79 73 @LoginRequired()
80 74 @HasRepoPermissionAnyDecorator('repository.admin')
81 75 @CSRFRequired()
82 @view_config(
83 route_name='strip_execute', request_method='POST',
84 renderer='json', xhr=True)
85 76 def strip_execute(self):
86 77 from rhodecode.model.scm import ScmModel
87 78
@@ -24,7 +24,7 b' import time'
24 24
25 25 import rhodecode
26 26
27 from pyramid.view import view_config
27
28 28
29 29 from rhodecode.lib.view_utils import get_format_ref_id
30 30 from rhodecode.apps._base import RepoAppView
@@ -101,9 +101,6 b' class RepoSummaryView(RepoAppView):'
101 101 @LoginRequired()
102 102 @HasRepoPermissionAnyDecorator(
103 103 'repository.read', 'repository.write', 'repository.admin')
104 @view_config(
105 route_name='repo_summary_commits', request_method='GET',
106 renderer='rhodecode:templates/summary/summary_commits.mako')
107 104 def summary_commits(self):
108 105 c = self.load_default_context()
109 106 self._prepare_and_set_clone_url(c)
@@ -113,15 +110,6 b' class RepoSummaryView(RepoAppView):'
113 110 @LoginRequired()
114 111 @HasRepoPermissionAnyDecorator(
115 112 'repository.read', 'repository.write', 'repository.admin')
116 @view_config(
117 route_name='repo_summary', request_method='GET',
118 renderer='rhodecode:templates/summary/summary.mako')
119 @view_config(
120 route_name='repo_summary_slash', request_method='GET',
121 renderer='rhodecode:templates/summary/summary.mako')
122 @view_config(
123 route_name='repo_summary_explicit', request_method='GET',
124 renderer='rhodecode:templates/summary/summary.mako')
125 113 def summary(self):
126 114 c = self.load_default_context()
127 115
@@ -176,9 +164,6 b' class RepoSummaryView(RepoAppView):'
176 164 @LoginRequired()
177 165 @HasRepoPermissionAnyDecorator(
178 166 'repository.read', 'repository.write', 'repository.admin')
179 @view_config(
180 route_name='repo_stats', request_method='GET',
181 renderer='json_ext')
182 167 def repo_stats(self):
183 168 show_stats = bool(self.db_repo.enable_statistics)
184 169 repo_id = self.db_repo.repo_id
@@ -228,9 +213,6 b' class RepoSummaryView(RepoAppView):'
228 213 @LoginRequired()
229 214 @HasRepoPermissionAnyDecorator(
230 215 'repository.read', 'repository.write', 'repository.admin')
231 @view_config(
232 route_name='repo_refs_data', request_method='GET',
233 renderer='json_ext')
234 216 def repo_refs_data(self):
235 217 _ = self.request.translate
236 218 self.load_default_context()
@@ -251,9 +233,6 b' class RepoSummaryView(RepoAppView):'
251 233 @LoginRequired()
252 234 @HasRepoPermissionAnyDecorator(
253 235 'repository.read', 'repository.write', 'repository.admin')
254 @view_config(
255 route_name='repo_refs_changelog_data', request_method='GET',
256 renderer='json_ext')
257 236 def repo_refs_changelog_data(self):
258 237 _ = self.request.translate
259 238 self.load_default_context()
@@ -19,7 +19,6 b''
19 19 # and proprietary license terms, please see https://rhodecode.com/licenses/
20 20
21 21 import logging
22 from pyramid.view import view_config
23 22
24 23 from rhodecode.apps._base import BaseReferencesView
25 24 from rhodecode.lib.ext_json import json
@@ -33,9 +32,6 b' class RepoTagsView(BaseReferencesView):'
33 32 @LoginRequired()
34 33 @HasRepoPermissionAnyDecorator(
35 34 'repository.read', 'repository.write', 'repository.admin')
36 @view_config(
37 route_name='tags_home', request_method='GET',
38 renderer='rhodecode:templates/tags/tags.mako')
39 35 def tags(self):
40 36 c = self.load_default_context()
41 37
@@ -21,23 +21,42 b' from rhodecode.apps._base import ADMIN_P'
21 21
22 22
23 23 def includeme(config):
24 from rhodecode.apps.search.views import (
25 SearchView, SearchRepoView, SearchRepoGroupView)
24 26
25 27 config.add_route(
26 28 name='search',
27 29 pattern=ADMIN_PREFIX + '/search')
30 config.add_view(
31 SearchView,
32 attr='search',
33 route_name='search', request_method='GET',
34 renderer='rhodecode:templates/search/search.mako')
28 35
29 36 config.add_route(
30 37 name='search_repo',
31 38 pattern='/{repo_name:.*?[^/]}/_search', repo_route=True)
39 config.add_view(
40 SearchRepoView,
41 attr='search_repo',
42 route_name='search_repo', request_method='GET',
43 renderer='rhodecode:templates/search/search.mako')
32 44
33 45 config.add_route(
34 46 name='search_repo_alt',
35 47 pattern='/{repo_name:.*?[^/]}/search', repo_route=True)
48 config.add_view(
49 SearchRepoView,
50 attr='search_repo',
51 route_name='search_repo_alt', request_method='GET',
52 renderer='rhodecode:templates/search/search.mako')
36 53
37 54 config.add_route(
38 55 name='search_repo_group',
39 56 pattern='/{repo_group_name:.*?[^/]}/_search',
40 57 repo_group_route=True)
41
42 # Scan module for configuration decorators.
43 config.scan('.views', ignore='.tests')
58 config.add_view(
59 SearchRepoGroupView,
60 attr='search_repo_group',
61 route_name='search_repo_group', request_method='GET',
62 renderer='rhodecode:templates/search/search.mako')
@@ -20,7 +20,7 b''
20 20
21 21 import logging
22 22 import urllib
23 from pyramid.view import view_config
23
24 24 from webhelpers2.html.tools import update_params
25 25
26 26 from rhodecode.apps._base import BaseAppView, RepoAppView, RepoGroupAppView
@@ -130,9 +130,6 b' class SearchView(BaseAppView):'
130 130 return c
131 131
132 132 @LoginRequired()
133 @view_config(
134 route_name='search', request_method='GET',
135 renderer='rhodecode:templates/search/search.mako')
136 133 def search(self):
137 134 c = self.load_default_context()
138 135 perform_search(self.request, c)
@@ -148,12 +145,6 b' class SearchRepoView(RepoAppView):'
148 145 @LoginRequired()
149 146 @HasRepoPermissionAnyDecorator(
150 147 'repository.read', 'repository.write', 'repository.admin')
151 @view_config(
152 route_name='search_repo', request_method='GET',
153 renderer='rhodecode:templates/search/search.mako')
154 @view_config(
155 route_name='search_repo_alt', request_method='GET',
156 renderer='rhodecode:templates/search/search.mako')
157 148 def search_repo(self):
158 149 c = self.load_default_context()
159 150 perform_search(self.request, c, repo_name=self.db_repo_name)
@@ -169,9 +160,6 b' class SearchRepoGroupView(RepoGroupAppVi'
169 160 @LoginRequired()
170 161 @HasRepoGroupPermissionAnyDecorator(
171 162 'group.read', 'group.write', 'group.admin')
172 @view_config(
173 route_name='search_repo_group', request_method='GET',
174 renderer='rhodecode:templates/search/search.mako')
175 163 def search_repo_group(self):
176 164 c = self.load_default_context()
177 165 perform_search(self.request, c, repo_group_name=self.db_repo_group_name)
@@ -37,25 +37,6 b' from . import config_keys'
37 37 log = logging.getLogger(__name__)
38 38
39 39
40 def includeme(config):
41 settings = config.registry.settings
42 _sanitize_settings_and_apply_defaults(settings)
43
44 if settings[config_keys.generate_config]:
45 # Add subscriber to generate the Apache mod dav svn configuration on
46 # repository group events.
47 config.add_subscriber(generate_config_subscriber, RepoGroupEvent)
48
49 # If a reload command is set add a subscriber to execute it on
50 # configuration changes.
51 reload_cmd = settings[config_keys.reload_command]
52 if reload_cmd:
53 reload_timeout = settings[config_keys.reload_timeout] or None
54 reload_subscriber = AsyncSubprocessSubscriber(
55 cmd=reload_cmd, timeout=reload_timeout)
56 config.add_subscriber(reload_subscriber, ModDavSvnConfigChange)
57
58
59 40 def _sanitize_settings_and_apply_defaults(settings):
60 41 """
61 42 Set defaults, convert to python types and validate settings.
@@ -88,3 +69,22 b' def _append_path_sep(path):'
88 69 if isinstance(path, compat.string_types) and not path.endswith(os.path.sep):
89 70 path += os.path.sep
90 71 return path
72
73
74 def includeme(config):
75 settings = config.registry.settings
76 _sanitize_settings_and_apply_defaults(settings)
77
78 if settings[config_keys.generate_config]:
79 # Add subscriber to generate the Apache mod dav svn configuration on
80 # repository group events.
81 config.add_subscriber(generate_config_subscriber, RepoGroupEvent)
82
83 # If a reload command is set add a subscriber to execute it on
84 # configuration changes.
85 reload_cmd = settings[config_keys.reload_command]
86 if reload_cmd:
87 reload_timeout = settings[config_keys.reload_timeout] or None
88 reload_subscriber = AsyncSubprocessSubscriber(
89 cmd=reload_cmd, timeout=reload_timeout)
90 config.add_subscriber(reload_subscriber, ModDavSvnConfigChange)
@@ -28,74 +28,134 b' def admin_routes(config):'
28 28 """
29 29 User groups /_admin prefixed routes
30 30 """
31 from rhodecode.apps.user_group.views import UserGroupsView
31 32
32 33 config.add_route(
33 34 name='user_group_members_data',
34 35 pattern='/user_groups/{user_group_id:\d+}/members',
35 36 user_group_route=True)
37 config.add_view(
38 UserGroupsView,
39 attr='user_group_members',
40 route_name='user_group_members_data', request_method='GET',
41 renderer='json_ext', xhr=True)
36 42
37 43 # user groups perms
38 44 config.add_route(
39 45 name='edit_user_group_perms_summary',
40 46 pattern='/user_groups/{user_group_id:\d+}/edit/permissions_summary',
41 47 user_group_route=True)
48 config.add_view(
49 UserGroupsView,
50 attr='user_group_perms_summary',
51 route_name='edit_user_group_perms_summary', request_method='GET',
52 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
53
42 54 config.add_route(
43 55 name='edit_user_group_perms_summary_json',
44 56 pattern='/user_groups/{user_group_id:\d+}/edit/permissions_summary/json',
45 57 user_group_route=True)
58 config.add_view(
59 UserGroupsView,
60 attr='user_group_perms_summary_json',
61 route_name='edit_user_group_perms_summary_json', request_method='GET',
62 renderer='json_ext')
46 63
47 64 # user groups edit
48 65 config.add_route(
49 66 name='edit_user_group',
50 67 pattern='/user_groups/{user_group_id:\d+}/edit',
51 68 user_group_route=True)
69 config.add_view(
70 UserGroupsView,
71 attr='user_group_edit',
72 route_name='edit_user_group', request_method='GET',
73 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
52 74
53 75 # user groups update
54 76 config.add_route(
55 77 name='user_groups_update',
56 78 pattern='/user_groups/{user_group_id:\d+}/update',
57 79 user_group_route=True)
80 config.add_view(
81 UserGroupsView,
82 attr='user_group_update',
83 route_name='user_groups_update', request_method='POST',
84 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
58 85
59 86 config.add_route(
60 87 name='edit_user_group_global_perms',
61 88 pattern='/user_groups/{user_group_id:\d+}/edit/global_permissions',
62 89 user_group_route=True)
90 config.add_view(
91 UserGroupsView,
92 attr='user_group_global_perms_edit',
93 route_name='edit_user_group_global_perms', request_method='GET',
94 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
63 95
64 96 config.add_route(
65 97 name='edit_user_group_global_perms_update',
66 98 pattern='/user_groups/{user_group_id:\d+}/edit/global_permissions/update',
67 99 user_group_route=True)
100 config.add_view(
101 UserGroupsView,
102 attr='user_group_global_perms_update',
103 route_name='edit_user_group_global_perms_update', request_method='POST',
104 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
68 105
69 106 config.add_route(
70 107 name='edit_user_group_perms',
71 108 pattern='/user_groups/{user_group_id:\d+}/edit/permissions',
72 109 user_group_route=True)
110 config.add_view(
111 UserGroupsView,
112 attr='user_group_edit_perms',
113 route_name='edit_user_group_perms', request_method='GET',
114 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
73 115
74 116 config.add_route(
75 117 name='edit_user_group_perms_update',
76 118 pattern='/user_groups/{user_group_id:\d+}/edit/permissions/update',
77 119 user_group_route=True)
120 config.add_view(
121 UserGroupsView,
122 attr='user_group_update_perms',
123 route_name='edit_user_group_perms_update', request_method='POST',
124 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
78 125
79 126 config.add_route(
80 127 name='edit_user_group_advanced',
81 128 pattern='/user_groups/{user_group_id:\d+}/edit/advanced',
82 129 user_group_route=True)
130 config.add_view(
131 UserGroupsView,
132 attr='user_group_edit_advanced',
133 route_name='edit_user_group_advanced', request_method='GET',
134 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
83 135
84 136 config.add_route(
85 137 name='edit_user_group_advanced_sync',
86 138 pattern='/user_groups/{user_group_id:\d+}/edit/advanced/sync',
87 139 user_group_route=True)
140 config.add_view(
141 UserGroupsView,
142 attr='user_group_edit_advanced_set_synchronization',
143 route_name='edit_user_group_advanced_sync', request_method='POST',
144 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
88 145
89 146 # user groups delete
90 147 config.add_route(
91 148 name='user_groups_delete',
92 149 pattern='/user_groups/{user_group_id:\d+}/delete',
93 150 user_group_route=True)
151 config.add_view(
152 UserGroupsView,
153 attr='user_group_delete',
154 route_name='user_groups_delete', request_method='POST',
155 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
94 156
95 157
96 158 def includeme(config):
97 159 # main admin routes
98 160 config.include(admin_routes, route_prefix=ADMIN_PREFIX)
99 161
100 # Scan module for configuration decorators.
101 config.scan('.views', ignore='.tests')
@@ -24,7 +24,7 b' import peppercorn'
24 24 import formencode
25 25 import formencode.htmlfill
26 26 from pyramid.httpexceptions import HTTPFound
27 from pyramid.view import view_config
27
28 28 from pyramid.response import Response
29 29 from pyramid.renderers import render
30 30
@@ -60,9 +60,6 b' class UserGroupsView(UserGroupAppView):'
60 60
61 61 @LoginRequired()
62 62 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
63 @view_config(
64 route_name='user_group_members_data', request_method='GET',
65 renderer='json_ext', xhr=True)
66 63 def user_group_members(self):
67 64 """
68 65 Return members of given user group
@@ -93,9 +90,6 b' class UserGroupsView(UserGroupAppView):'
93 90
94 91 @LoginRequired()
95 92 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
96 @view_config(
97 route_name='edit_user_group_perms_summary', request_method='GET',
98 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
99 93 def user_group_perms_summary(self):
100 94 c = self.load_default_context()
101 95 c.user_group = self.db_user_group
@@ -106,9 +100,6 b' class UserGroupsView(UserGroupAppView):'
106 100
107 101 @LoginRequired()
108 102 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
109 @view_config(
110 route_name='edit_user_group_perms_summary_json', request_method='GET',
111 renderer='json_ext')
112 103 def user_group_perms_summary_json(self):
113 104 self.load_default_context()
114 105 user_group = self.db_user_group
@@ -131,9 +122,6 b' class UserGroupsView(UserGroupAppView):'
131 122 @LoginRequired()
132 123 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
133 124 @CSRFRequired()
134 @view_config(
135 route_name='user_groups_update', request_method='POST',
136 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
137 125 def user_group_update(self):
138 126 _ = self.request.translate
139 127
@@ -230,9 +218,6 b' class UserGroupsView(UserGroupAppView):'
230 218 @LoginRequired()
231 219 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
232 220 @CSRFRequired()
233 @view_config(
234 route_name='user_groups_delete', request_method='POST',
235 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
236 221 def user_group_delete(self):
237 222 _ = self.request.translate
238 223 user_group = self.db_user_group
@@ -258,9 +243,6 b' class UserGroupsView(UserGroupAppView):'
258 243
259 244 @LoginRequired()
260 245 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
261 @view_config(
262 route_name='edit_user_group', request_method='GET',
263 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
264 246 def user_group_edit(self):
265 247 user_group = self.db_user_group
266 248
@@ -293,9 +275,6 b' class UserGroupsView(UserGroupAppView):'
293 275
294 276 @LoginRequired()
295 277 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
296 @view_config(
297 route_name='edit_user_group_perms', request_method='GET',
298 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
299 278 def user_group_edit_perms(self):
300 279 user_group = self.db_user_group
301 280 c = self.load_default_context()
@@ -326,9 +305,6 b' class UserGroupsView(UserGroupAppView):'
326 305 @LoginRequired()
327 306 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
328 307 @CSRFRequired()
329 @view_config(
330 route_name='edit_user_group_perms_update', request_method='POST',
331 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
332 308 def user_group_update_perms(self):
333 309 """
334 310 grant permission for given user group
@@ -390,9 +366,6 b' class UserGroupsView(UserGroupAppView):'
390 366
391 367 @LoginRequired()
392 368 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
393 @view_config(
394 route_name='edit_user_group_global_perms', request_method='GET',
395 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
396 369 def user_group_global_perms_edit(self):
397 370 user_group = self.db_user_group
398 371 c = self.load_default_context()
@@ -418,9 +391,6 b' class UserGroupsView(UserGroupAppView):'
418 391 @LoginRequired()
419 392 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
420 393 @CSRFRequired()
421 @view_config(
422 route_name='edit_user_group_global_perms_update', request_method='POST',
423 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
424 394 def user_group_global_perms_update(self):
425 395 _ = self.request.translate
426 396 user_group = self.db_user_group
@@ -485,9 +455,6 b' class UserGroupsView(UserGroupAppView):'
485 455
486 456 @LoginRequired()
487 457 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
488 @view_config(
489 route_name='edit_user_group_advanced', request_method='GET',
490 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
491 458 def user_group_edit_advanced(self):
492 459 user_group = self.db_user_group
493 460
@@ -515,9 +482,6 b' class UserGroupsView(UserGroupAppView):'
515 482 @LoginRequired()
516 483 @HasUserGroupPermissionAnyDecorator('usergroup.admin')
517 484 @CSRFRequired()
518 @view_config(
519 route_name='edit_user_group_advanced_sync', request_method='POST',
520 renderer='rhodecode:templates/admin/user_groups/user_group_edit.mako')
521 485 def user_group_edit_advanced_set_synchronization(self):
522 486 _ = self.request.translate
523 487 user_group = self.db_user_group
@@ -20,8 +20,13 b''
20 20
21 21
22 22 def includeme(config):
23 from rhodecode.apps.user_group_profile.views import UserGroupProfileView
24
23 25 config.add_route(
24 26 name='user_group_profile',
25 27 pattern='/_profile_user_group/{user_group_name}')
26 # Scan module for configuration decorators.
27 config.scan('.views', ignore='.tests')
28 config.add_view(
29 UserGroupProfileView,
30 attr='user_group_profile',
31 route_name='user_group_profile', request_method='GET',
32 renderer='rhodecode:templates/user_group/user_group.mako')
@@ -21,7 +21,7 b''
21 21 import logging
22 22
23 23 from pyramid.httpexceptions import HTTPNotFound
24 from pyramid.view import view_config
24
25 25
26 26 from rhodecode.apps._base import BaseAppView
27 27 from rhodecode.lib.auth import HasUserGroupPermissionAnyDecorator, LoginRequired, NotAnonymous
@@ -36,9 +36,6 b' class UserGroupProfileView(BaseAppView):'
36 36 @LoginRequired()
37 37 @NotAnonymous()
38 38 @HasUserGroupPermissionAnyDecorator('usergroup.read', 'usergroup.write', 'usergroup.admin',)
39 @view_config(
40 route_name='user_group_profile', request_method='GET',
41 renderer='rhodecode:templates/user_group/user_group.mako')
42 39 def user_group_profile(self):
43 40 c = self._get_local_tmpl_context()
44 41 c.active = 'profile'
@@ -20,9 +20,13 b''
20 20
21 21
22 22 def includeme(config):
23 from rhodecode.apps.user_profile.views import UserProfileView
24
23 25 config.add_route(
24 26 name='user_profile',
25 27 pattern='/_profiles/{username}')
26
27 # Scan module for configuration decorators.
28 config.scan('.views', ignore='.tests')
28 config.add_view(
29 UserProfileView,
30 attr='user_profile',
31 route_name='user_profile', request_method='GET',
32 renderer='rhodecode:templates/users/user.mako')
@@ -21,7 +21,6 b''
21 21 import logging
22 22
23 23 from pyramid.httpexceptions import HTTPNotFound
24 from pyramid.view import view_config
25 24
26 25 from rhodecode.apps._base import BaseAppView
27 26 from rhodecode.lib.auth import LoginRequired, NotAnonymous
@@ -36,9 +35,6 b' class UserProfileView(BaseAppView):'
36 35
37 36 @LoginRequired()
38 37 @NotAnonymous()
39 @view_config(
40 route_name='user_profile', request_method='GET',
41 renderer='rhodecode:templates/users/user.mako')
42 38 def user_profile(self):
43 39 # register local template context
44 40 c = self._get_local_tmpl_context()
@@ -20,7 +20,7 b''
20 20
21 21 def generate_jsroutes_content(jsroutes):
22 22 statements = []
23 for url_name, url, fields in jsroutes:
23 for url_name, url, fields in sorted(jsroutes):
24 24 statements.append(
25 25 "pyroutes.register('%s', '%s', %s);" % (url_name, url, fields))
26 26 return u'''
@@ -92,6 +92,7 b' def make_pyramid_app(global_config, **se'
92 92 # Allows to use format style "{ENV_NAME}" placeholders in the configuration. It
93 93 # will be replaced by the value of the environment variable "NAME" in this case.
94 94 start_time = time.time()
95 log.info('Pyramid app config starting')
95 96
96 97 debug = asbool(global_config.get('debug'))
97 98 if debug:
@@ -121,6 +122,7 b' def make_pyramid_app(global_config, **se'
121 122 pyramid_app.config = config
122 123
123 124 config.configure_celery(global_config['__file__'])
125
124 126 # creating the app uses a connection - return it after we are done
125 127 meta.Session.remove()
126 128 total_time = time.time() - start_time
@@ -256,16 +258,12 b' def includeme(config, auth_resources=Non'
256 258 config.include('pyramid_mako')
257 259 config.include('rhodecode.lib.rc_beaker')
258 260 config.include('rhodecode.lib.rc_cache')
259
260 261 config.include('rhodecode.apps._base.navigation')
261 262 config.include('rhodecode.apps._base.subscribers')
262 263 config.include('rhodecode.tweens')
263 264 config.include('rhodecode.authentication')
264 265
265 266 if load_all:
266 config.include('rhodecode.integrations')
267
268 if load_all:
269 267 ce_auth_resources = [
270 268 'rhodecode.authentication.plugins.auth_crowd',
271 269 'rhodecode.authentication.plugins.auth_headers',
@@ -291,15 +289,17 b' def includeme(config, auth_resources=Non'
291 289
292 290 # apps
293 291 if load_all:
292 config.include('rhodecode.api')
294 293 config.include('rhodecode.apps._base')
295 294 config.include('rhodecode.apps.hovercards')
296 295 config.include('rhodecode.apps.ops')
297 config.include('rhodecode.apps.admin')
298 296 config.include('rhodecode.apps.channelstream')
299 297 config.include('rhodecode.apps.file_store')
298 config.include('rhodecode.apps.admin')
300 299 config.include('rhodecode.apps.login')
301 300 config.include('rhodecode.apps.home')
302 301 config.include('rhodecode.apps.journal')
302
303 303 config.include('rhodecode.apps.repository')
304 304 config.include('rhodecode.apps.repo_group')
305 305 config.include('rhodecode.apps.user_group')
@@ -307,11 +307,14 b' def includeme(config, auth_resources=Non'
307 307 config.include('rhodecode.apps.user_profile')
308 308 config.include('rhodecode.apps.user_group_profile')
309 309 config.include('rhodecode.apps.my_account')
310 config.include('rhodecode.apps.gist')
311
310 312 config.include('rhodecode.apps.svn_support')
311 313 config.include('rhodecode.apps.ssh_support')
312 config.include('rhodecode.apps.gist')
313 314 config.include('rhodecode.apps.debug_style')
314 config.include('rhodecode.api')
315
316 if load_all:
317 config.include('rhodecode.integrations')
315 318
316 319 config.add_route('rhodecode_support', 'https://rhodecode.com/help/', static=True)
317 320 config.add_translation_dirs('rhodecode:i18n/')
@@ -24,6 +24,9 b' from rhodecode.apps._base import ADMIN_P'
24 24 from rhodecode.lib.utils2 import safe_int
25 25 from rhodecode.model.db import Repository, Integration, RepoGroup
26 26 from rhodecode.integrations import integration_type_registry
27 from rhodecode.integrations.views import GlobalIntegrationsView
28 from rhodecode.integrations.views import RepoGroupIntegrationsView
29 from rhodecode.integrations.views import RepoIntegrationsView
27 30
28 31 log = logging.getLogger(__name__)
29 32
@@ -83,7 +86,7 b' def includeme(config):'
83 86 # global integrations
84 87 config.add_route('global_integrations_new',
85 88 ADMIN_PREFIX + '/integrations/new')
86 config.add_view('rhodecode.integrations.views.GlobalIntegrationsView',
89 config.add_view(GlobalIntegrationsView,
87 90 attr='new_integration',
88 91 renderer='rhodecode:templates/admin/integrations/new.mako',
89 92 request_method='GET',
@@ -94,7 +97,7 b' def includeme(config):'
94 97 config.add_route('global_integrations_list',
95 98 ADMIN_PREFIX + '/integrations/{integration}')
96 99 for route_name in ['global_integrations_home', 'global_integrations_list']:
97 config.add_view('rhodecode.integrations.views.GlobalIntegrationsView',
100 config.add_view(GlobalIntegrationsView,
98 101 attr='integration_list',
99 102 renderer='rhodecode:templates/admin/integrations/list.mako',
100 103 request_method='GET',
@@ -108,12 +111,12 b' def includeme(config):'
108 111 valid_integration=True)
109 112
110 113 for route_name in ['global_integrations_create', 'global_integrations_edit']:
111 config.add_view('rhodecode.integrations.views.GlobalIntegrationsView',
114 config.add_view(GlobalIntegrationsView,
112 115 attr='settings_get',
113 116 renderer='rhodecode:templates/admin/integrations/form.mako',
114 117 request_method='GET',
115 118 route_name=route_name)
116 config.add_view('rhodecode.integrations.views.GlobalIntegrationsView',
119 config.add_view(GlobalIntegrationsView,
117 120 attr='settings_post',
118 121 renderer='rhodecode:templates/admin/integrations/form.mako',
119 122 request_method='POST',
@@ -124,7 +127,7 b' def includeme(config):'
124 127 add_route_requirements('/{repo_group_name}/_settings/integrations'),
125 128 repo_group_route=True)
126 129
127 config.add_view('rhodecode.integrations.views.RepoGroupIntegrationsView',
130 config.add_view(RepoGroupIntegrationsView,
128 131 attr='integration_list',
129 132 renderer='rhodecode:templates/admin/integrations/list.mako',
130 133 request_method='GET',
@@ -133,7 +136,7 b' def includeme(config):'
133 136 config.add_route('repo_group_integrations_new',
134 137 add_route_requirements('/{repo_group_name}/_settings/integrations/new'),
135 138 repo_group_route=True)
136 config.add_view('rhodecode.integrations.views.RepoGroupIntegrationsView',
139 config.add_view(RepoGroupIntegrationsView,
137 140 attr='new_integration',
138 141 renderer='rhodecode:templates/admin/integrations/new.mako',
139 142 request_method='GET',
@@ -143,7 +146,7 b' def includeme(config):'
143 146 add_route_requirements('/{repo_group_name}/_settings/integrations/{integration}'),
144 147 repo_group_route=True,
145 148 valid_integration=True)
146 config.add_view('rhodecode.integrations.views.RepoGroupIntegrationsView',
149 config.add_view(RepoGroupIntegrationsView,
147 150 attr='integration_list',
148 151 renderer='rhodecode:templates/admin/integrations/list.mako',
149 152 request_method='GET',
@@ -153,12 +156,12 b' def includeme(config):'
153 156 add_route_requirements('/{repo_group_name}/_settings/integrations/{integration}/new'),
154 157 repo_group_route=True,
155 158 valid_integration=True)
156 config.add_view('rhodecode.integrations.views.RepoGroupIntegrationsView',
159 config.add_view(RepoGroupIntegrationsView,
157 160 attr='settings_get',
158 161 renderer='rhodecode:templates/admin/integrations/form.mako',
159 162 request_method='GET',
160 163 route_name='repo_group_integrations_create')
161 config.add_view('rhodecode.integrations.views.RepoGroupIntegrationsView',
164 config.add_view(RepoGroupIntegrationsView,
162 165 attr='settings_post',
163 166 renderer='rhodecode:templates/admin/integrations/form.mako',
164 167 request_method='POST',
@@ -169,12 +172,12 b' def includeme(config):'
169 172 repo_group_route=True,
170 173 valid_integration=True)
171 174
172 config.add_view('rhodecode.integrations.views.RepoGroupIntegrationsView',
175 config.add_view(RepoGroupIntegrationsView,
173 176 attr='settings_get',
174 177 renderer='rhodecode:templates/admin/integrations/form.mako',
175 178 request_method='GET',
176 179 route_name='repo_group_integrations_edit')
177 config.add_view('rhodecode.integrations.views.RepoGroupIntegrationsView',
180 config.add_view(RepoGroupIntegrationsView,
178 181 attr='settings_post',
179 182 renderer='rhodecode:templates/admin/integrations/form.mako',
180 183 request_method='POST',
@@ -184,7 +187,7 b' def includeme(config):'
184 187 config.add_route('repo_integrations_home',
185 188 add_route_requirements('/{repo_name}/settings/integrations'),
186 189 repo_route=True)
187 config.add_view('rhodecode.integrations.views.RepoIntegrationsView',
190 config.add_view(RepoIntegrationsView,
188 191 attr='integration_list',
189 192 request_method='GET',
190 193 renderer='rhodecode:templates/admin/integrations/list.mako',
@@ -193,7 +196,7 b' def includeme(config):'
193 196 config.add_route('repo_integrations_new',
194 197 add_route_requirements('/{repo_name}/settings/integrations/new'),
195 198 repo_route=True)
196 config.add_view('rhodecode.integrations.views.RepoIntegrationsView',
199 config.add_view(RepoIntegrationsView,
197 200 attr='new_integration',
198 201 renderer='rhodecode:templates/admin/integrations/new.mako',
199 202 request_method='GET',
@@ -203,7 +206,7 b' def includeme(config):'
203 206 add_route_requirements('/{repo_name}/settings/integrations/{integration}'),
204 207 repo_route=True,
205 208 valid_integration=True)
206 config.add_view('rhodecode.integrations.views.RepoIntegrationsView',
209 config.add_view(RepoIntegrationsView,
207 210 attr='integration_list',
208 211 request_method='GET',
209 212 renderer='rhodecode:templates/admin/integrations/list.mako',
@@ -213,12 +216,12 b' def includeme(config):'
213 216 add_route_requirements('/{repo_name}/settings/integrations/{integration}/new'),
214 217 repo_route=True,
215 218 valid_integration=True)
216 config.add_view('rhodecode.integrations.views.RepoIntegrationsView',
219 config.add_view(RepoIntegrationsView,
217 220 attr='settings_get',
218 221 renderer='rhodecode:templates/admin/integrations/form.mako',
219 222 request_method='GET',
220 223 route_name='repo_integrations_create')
221 config.add_view('rhodecode.integrations.views.RepoIntegrationsView',
224 config.add_view(RepoIntegrationsView,
222 225 attr='settings_post',
223 226 renderer='rhodecode:templates/admin/integrations/form.mako',
224 227 request_method='POST',
@@ -228,12 +231,12 b' def includeme(config):'
228 231 add_route_requirements('/{repo_name}/settings/integrations/{integration}/{integration_id}'),
229 232 repo_route=True,
230 233 valid_integration=True)
231 config.add_view('rhodecode.integrations.views.RepoIntegrationsView',
234 config.add_view(RepoIntegrationsView,
232 235 attr='settings_get',
233 236 renderer='rhodecode:templates/admin/integrations/form.mako',
234 237 request_method='GET',
235 238 route_name='repo_integrations_edit')
236 config.add_view('rhodecode.integrations.views.RepoIntegrationsView',
239 config.add_view(RepoIntegrationsView,
237 240 attr='settings_post',
238 241 renderer='rhodecode:templates/admin/integrations/form.mako',
239 242 request_method='POST',
@@ -4810,6 +4810,7 b' class Gist(Base, BaseModel):'
4810 4810
4811 4811 res = cls.query().filter(cls.gist_access_id == id_).scalar()
4812 4812 if not res:
4813 log.debug('WARN: No DB entry with id %s', id_)
4813 4814 raise HTTPNotFound()
4814 4815 return res
4815 4816
This diff has been collapsed as it changes many lines, (694 lines changed) Show them Hide them
@@ -12,394 +12,392 b''
12 12 ******************************************************************************/
13 13 function registerRCRoutes() {
14 14 // routes registration
15 pyroutes.register('favicon', '/favicon.ico', []);
16 pyroutes.register('robots', '/robots.txt', []);
17 pyroutes.register('auth_home', '/_admin/auth*traverse', []);
18 pyroutes.register('global_integrations_new', '/_admin/integrations/new', []);
19 pyroutes.register('global_integrations_home', '/_admin/integrations', []);
20 pyroutes.register('global_integrations_list', '/_admin/integrations/%(integration)s', ['integration']);
21 pyroutes.register('global_integrations_create', '/_admin/integrations/%(integration)s/new', ['integration']);
22 pyroutes.register('global_integrations_edit', '/_admin/integrations/%(integration)s/%(integration_id)s', ['integration', 'integration_id']);
23 pyroutes.register('repo_group_integrations_home', '/%(repo_group_name)s/_settings/integrations', ['repo_group_name']);
24 pyroutes.register('repo_group_integrations_new', '/%(repo_group_name)s/_settings/integrations/new', ['repo_group_name']);
25 pyroutes.register('repo_group_integrations_list', '/%(repo_group_name)s/_settings/integrations/%(integration)s', ['repo_group_name', 'integration']);
26 pyroutes.register('repo_group_integrations_create', '/%(repo_group_name)s/_settings/integrations/%(integration)s/new', ['repo_group_name', 'integration']);
27 pyroutes.register('repo_group_integrations_edit', '/%(repo_group_name)s/_settings/integrations/%(integration)s/%(integration_id)s', ['repo_group_name', 'integration', 'integration_id']);
28 pyroutes.register('repo_integrations_home', '/%(repo_name)s/settings/integrations', ['repo_name']);
29 pyroutes.register('repo_integrations_new', '/%(repo_name)s/settings/integrations/new', ['repo_name']);
30 pyroutes.register('repo_integrations_list', '/%(repo_name)s/settings/integrations/%(integration)s', ['repo_name', 'integration']);
31 pyroutes.register('repo_integrations_create', '/%(repo_name)s/settings/integrations/%(integration)s/new', ['repo_name', 'integration']);
32 pyroutes.register('repo_integrations_edit', '/%(repo_name)s/settings/integrations/%(integration)s/%(integration_id)s', ['repo_name', 'integration', 'integration_id']);
33 pyroutes.register('hovercard_user', '/_hovercard/user/%(user_id)s', ['user_id']);
34 pyroutes.register('hovercard_username', '/_hovercard/username/%(username)s', ['username']);
35 pyroutes.register('hovercard_user_group', '/_hovercard/user_group/%(user_group_id)s', ['user_group_id']);
36 pyroutes.register('hovercard_pull_request', '/_hovercard/pull_request/%(pull_request_id)s', ['pull_request_id']);
37 pyroutes.register('hovercard_repo_commit', '/_hovercard/commit/%(repo_name)s/%(commit_id)s', ['repo_name', 'commit_id']);
38 pyroutes.register('ops_ping', '/_admin/ops/ping', []);
39 pyroutes.register('ops_error_test', '/_admin/ops/error', []);
40 pyroutes.register('ops_redirect_test', '/_admin/ops/redirect', []);
41 pyroutes.register('ops_ping_legacy', '/_admin/ping', []);
42 pyroutes.register('ops_error_test_legacy', '/_admin/error_test', []);
43 pyroutes.register('admin_home', '/_admin', []);
15 pyroutes.register('admin_audit_log_entry', '/_admin/audit_logs/%(audit_log_id)s', ['audit_log_id']);
44 16 pyroutes.register('admin_audit_logs', '/_admin/audit_logs', []);
45 pyroutes.register('admin_audit_log_entry', '/_admin/audit_logs/%(audit_log_id)s', ['audit_log_id']);
46 pyroutes.register('pull_requests_global_0', '/_admin/pull_requests/%(pull_request_id)s', ['pull_request_id']);
47 pyroutes.register('pull_requests_global_1', '/_admin/pull-requests/%(pull_request_id)s', ['pull_request_id']);
48 pyroutes.register('pull_requests_global', '/_admin/pull-request/%(pull_request_id)s', ['pull_request_id']);
49 pyroutes.register('admin_settings_open_source', '/_admin/settings/open_source', []);
50 pyroutes.register('admin_settings_vcs_svn_generate_cfg', '/_admin/settings/vcs/svn_generate_cfg', []);
51 pyroutes.register('admin_settings_system', '/_admin/settings/system', []);
52 pyroutes.register('admin_settings_system_update', '/_admin/settings/system/updates', []);
53 pyroutes.register('admin_settings_exception_tracker', '/_admin/settings/exceptions', []);
54 pyroutes.register('admin_settings_exception_tracker_delete_all', '/_admin/settings/exceptions/delete', []);
55 pyroutes.register('admin_settings_exception_tracker_show', '/_admin/settings/exceptions/%(exception_id)s', ['exception_id']);
56 pyroutes.register('admin_settings_exception_tracker_delete', '/_admin/settings/exceptions/%(exception_id)s/delete', ['exception_id']);
57 pyroutes.register('admin_settings_sessions', '/_admin/settings/sessions', []);
58 pyroutes.register('admin_settings_sessions_cleanup', '/_admin/settings/sessions/cleanup', []);
59 pyroutes.register('admin_settings_process_management', '/_admin/settings/process_management', []);
60 pyroutes.register('admin_settings_process_management_data', '/_admin/settings/process_management/data', []);
61 pyroutes.register('admin_settings_process_management_signal', '/_admin/settings/process_management/signal', []);
62 pyroutes.register('admin_settings_process_management_master_signal', '/_admin/settings/process_management/master_signal', []);
63 17 pyroutes.register('admin_defaults_repositories', '/_admin/defaults/repositories', []);
64 18 pyroutes.register('admin_defaults_repositories_update', '/_admin/defaults/repositories/update', []);
65 pyroutes.register('admin_settings', '/_admin/settings', []);
66 pyroutes.register('admin_settings_update', '/_admin/settings/update', []);
67 pyroutes.register('admin_settings_global', '/_admin/settings/global', []);
68 pyroutes.register('admin_settings_global_update', '/_admin/settings/global/update', []);
69 pyroutes.register('admin_settings_vcs', '/_admin/settings/vcs', []);
70 pyroutes.register('admin_settings_vcs_update', '/_admin/settings/vcs/update', []);
71 pyroutes.register('admin_settings_vcs_svn_pattern_delete', '/_admin/settings/vcs/svn_pattern_delete', []);
72 pyroutes.register('admin_settings_mapping', '/_admin/settings/mapping', []);
73 pyroutes.register('admin_settings_mapping_update', '/_admin/settings/mapping/update', []);
74 pyroutes.register('admin_settings_visual', '/_admin/settings/visual', []);
75 pyroutes.register('admin_settings_visual_update', '/_admin/settings/visual/update', []);
76 pyroutes.register('admin_settings_issuetracker', '/_admin/settings/issue-tracker', []);
77 pyroutes.register('admin_settings_issuetracker_update', '/_admin/settings/issue-tracker/update', []);
78 pyroutes.register('admin_settings_issuetracker_test', '/_admin/settings/issue-tracker/test', []);
79 pyroutes.register('admin_settings_issuetracker_delete', '/_admin/settings/issue-tracker/delete', []);
80 pyroutes.register('admin_settings_email', '/_admin/settings/email', []);
81 pyroutes.register('admin_settings_email_update', '/_admin/settings/email/update', []);
82 pyroutes.register('admin_settings_hooks', '/_admin/settings/hooks', []);
83 pyroutes.register('admin_settings_hooks_update', '/_admin/settings/hooks/update', []);
84 pyroutes.register('admin_settings_hooks_delete', '/_admin/settings/hooks/delete', []);
85 pyroutes.register('admin_settings_search', '/_admin/settings/search', []);
86 pyroutes.register('admin_settings_labs', '/_admin/settings/labs', []);
87 pyroutes.register('admin_settings_labs_update', '/_admin/settings/labs/update', []);
19 pyroutes.register('admin_home', '/_admin', []);
88 20 pyroutes.register('admin_permissions_application', '/_admin/permissions/application', []);
89 21 pyroutes.register('admin_permissions_application_update', '/_admin/permissions/application/update', []);
22 pyroutes.register('admin_permissions_auth_token_access', '/_admin/permissions/auth_token_access', []);
23 pyroutes.register('admin_permissions_branch', '/_admin/permissions/branch', []);
24 pyroutes.register('admin_permissions_branch_update', '/_admin/permissions/branch/update', []);
90 25 pyroutes.register('admin_permissions_global', '/_admin/permissions/global', []);
91 26 pyroutes.register('admin_permissions_global_update', '/_admin/permissions/global/update', []);
27 pyroutes.register('admin_permissions_ips', '/_admin/permissions/ips', []);
92 28 pyroutes.register('admin_permissions_object', '/_admin/permissions/object', []);
93 29 pyroutes.register('admin_permissions_object_update', '/_admin/permissions/object/update', []);
94 pyroutes.register('admin_permissions_ips', '/_admin/permissions/ips', []);
95 30 pyroutes.register('admin_permissions_overview', '/_admin/permissions/overview', []);
96 pyroutes.register('admin_permissions_auth_token_access', '/_admin/permissions/auth_token_access', []);
97 31 pyroutes.register('admin_permissions_ssh_keys', '/_admin/permissions/ssh_keys', []);
98 32 pyroutes.register('admin_permissions_ssh_keys_data', '/_admin/permissions/ssh_keys/data', []);
99 33 pyroutes.register('admin_permissions_ssh_keys_update', '/_admin/permissions/ssh_keys/update', []);
100 pyroutes.register('users', '/_admin/users', []);
101 pyroutes.register('users_data', '/_admin/users_data', []);
102 pyroutes.register('users_create', '/_admin/users/create', []);
103 pyroutes.register('users_new', '/_admin/users/new', []);
104 pyroutes.register('user_edit', '/_admin/users/%(user_id)s/edit', ['user_id']);
105 pyroutes.register('user_edit_advanced', '/_admin/users/%(user_id)s/edit/advanced', ['user_id']);
106 pyroutes.register('user_edit_global_perms', '/_admin/users/%(user_id)s/edit/global_permissions', ['user_id']);
107 pyroutes.register('user_edit_global_perms_update', '/_admin/users/%(user_id)s/edit/global_permissions/update', ['user_id']);
108 pyroutes.register('user_update', '/_admin/users/%(user_id)s/update', ['user_id']);
109 pyroutes.register('user_delete', '/_admin/users/%(user_id)s/delete', ['user_id']);
110 pyroutes.register('user_enable_force_password_reset', '/_admin/users/%(user_id)s/password_reset_enable', ['user_id']);
111 pyroutes.register('user_disable_force_password_reset', '/_admin/users/%(user_id)s/password_reset_disable', ['user_id']);
112 pyroutes.register('user_create_personal_repo_group', '/_admin/users/%(user_id)s/create_repo_group', ['user_id']);
113 pyroutes.register('user_notice_dismiss', '/_admin/users/%(user_id)s/notice_dismiss', ['user_id']);
34 pyroutes.register('admin_settings', '/_admin/settings', []);
35 pyroutes.register('admin_settings_automation', '/_admin/settings/automation', []);
36 pyroutes.register('admin_settings_automation_update', '/_admin/settings/automation/%(entry_id)s/update', ['entry_id']);
37 pyroutes.register('admin_settings_email', '/_admin/settings/email', []);
38 pyroutes.register('admin_settings_email_update', '/_admin/settings/email/update', []);
39 pyroutes.register('admin_settings_exception_tracker', '/_admin/settings/exceptions', []);
40 pyroutes.register('admin_settings_exception_tracker_delete', '/_admin/settings/exceptions/%(exception_id)s/delete', ['exception_id']);
41 pyroutes.register('admin_settings_exception_tracker_delete_all', '/_admin/settings/exceptions_delete_all', []);
42 pyroutes.register('admin_settings_exception_tracker_show', '/_admin/settings/exceptions/%(exception_id)s', ['exception_id']);
43 pyroutes.register('admin_settings_global', '/_admin/settings/global', []);
44 pyroutes.register('admin_settings_global_update', '/_admin/settings/global/update', []);
45 pyroutes.register('admin_settings_hooks', '/_admin/settings/hooks', []);
46 pyroutes.register('admin_settings_hooks_delete', '/_admin/settings/hooks/delete', []);
47 pyroutes.register('admin_settings_hooks_update', '/_admin/settings/hooks/update', []);
48 pyroutes.register('admin_settings_issuetracker', '/_admin/settings/issue-tracker', []);
49 pyroutes.register('admin_settings_issuetracker_delete', '/_admin/settings/issue-tracker/delete', []);
50 pyroutes.register('admin_settings_issuetracker_test', '/_admin/settings/issue-tracker/test', []);
51 pyroutes.register('admin_settings_issuetracker_update', '/_admin/settings/issue-tracker/update', []);
52 pyroutes.register('admin_settings_labs', '/_admin/settings/labs', []);
53 pyroutes.register('admin_settings_labs_update', '/_admin/settings/labs/update', []);
54 pyroutes.register('admin_settings_license', '/_admin/settings/license', []);
55 pyroutes.register('admin_settings_license_unlock', '/_admin/settings/license_unlock', []);
56 pyroutes.register('admin_settings_mapping', '/_admin/settings/mapping', []);
57 pyroutes.register('admin_settings_mapping_update', '/_admin/settings/mapping/update', []);
58 pyroutes.register('admin_settings_open_source', '/_admin/settings/open_source', []);
59 pyroutes.register('admin_settings_process_management', '/_admin/settings/process_management', []);
60 pyroutes.register('admin_settings_process_management_data', '/_admin/settings/process_management/data', []);
61 pyroutes.register('admin_settings_process_management_master_signal', '/_admin/settings/process_management/master_signal', []);
62 pyroutes.register('admin_settings_process_management_signal', '/_admin/settings/process_management/signal', []);
63 pyroutes.register('admin_settings_scheduler_create', '/_admin/settings/scheduler/create', []);
64 pyroutes.register('admin_settings_scheduler_delete', '/_admin/settings/scheduler/%(schedule_id)s/delete', ['schedule_id']);
65 pyroutes.register('admin_settings_scheduler_edit', '/_admin/settings/scheduler/%(schedule_id)s', ['schedule_id']);
66 pyroutes.register('admin_settings_scheduler_execute', '/_admin/settings/scheduler/%(schedule_id)s/execute', ['schedule_id']);
67 pyroutes.register('admin_settings_scheduler_new', '/_admin/settings/scheduler/new', []);
68 pyroutes.register('admin_settings_scheduler_show_all', '/_admin/settings/scheduler', []);
69 pyroutes.register('admin_settings_scheduler_show_tasks', '/_admin/settings/scheduler/_tasks', []);
70 pyroutes.register('admin_settings_scheduler_update', '/_admin/settings/scheduler/%(schedule_id)s/update', ['schedule_id']);
71 pyroutes.register('admin_settings_search', '/_admin/settings/search', []);
72 pyroutes.register('admin_settings_sessions', '/_admin/settings/sessions', []);
73 pyroutes.register('admin_settings_sessions_cleanup', '/_admin/settings/sessions/cleanup', []);
74 pyroutes.register('admin_settings_system', '/_admin/settings/system', []);
75 pyroutes.register('admin_settings_system_update', '/_admin/settings/system/updates', []);
76 pyroutes.register('admin_settings_update', '/_admin/settings/update', []);
77 pyroutes.register('admin_settings_vcs', '/_admin/settings/vcs', []);
78 pyroutes.register('admin_settings_vcs_svn_generate_cfg', '/_admin/settings/vcs/svn_generate_cfg', []);
79 pyroutes.register('admin_settings_vcs_svn_pattern_delete', '/_admin/settings/vcs/svn_pattern_delete', []);
80 pyroutes.register('admin_settings_vcs_update', '/_admin/settings/vcs/update', []);
81 pyroutes.register('admin_settings_visual', '/_admin/settings/visual', []);
82 pyroutes.register('admin_settings_visual_update', '/_admin/settings/visual/update', []);
83 pyroutes.register('apiv2', '/_admin/api', []);
84 pyroutes.register('atom_feed_home', '/%(repo_name)s/feed-atom', ['repo_name']);
85 pyroutes.register('atom_feed_home_old', '/%(repo_name)s/feed/atom', ['repo_name']);
86 pyroutes.register('auth_home', '/_admin/auth*traverse', []);
87 pyroutes.register('bookmarks_home', '/%(repo_name)s/bookmarks', ['repo_name']);
88 pyroutes.register('branches_home', '/%(repo_name)s/branches', ['repo_name']);
89 pyroutes.register('channelstream_connect', '/_admin/channelstream/connect', []);
90 pyroutes.register('channelstream_proxy', '/_channelstream', []);
91 pyroutes.register('channelstream_subscribe', '/_admin/channelstream/subscribe', []);
92 pyroutes.register('commit_draft_comments_submit', '/%(repo_name)s/changeset/%(commit_id)s/draft_comments_submit', ['repo_name', 'commit_id']);
93 pyroutes.register('debug_style_email', '/_admin/debug_style/email/%(email_id)s', ['email_id']);
94 pyroutes.register('debug_style_email_plain_rendered', '/_admin/debug_style/email-rendered/%(email_id)s', ['email_id']);
95 pyroutes.register('debug_style_home', '/_admin/debug_style', []);
96 pyroutes.register('debug_style_template', '/_admin/debug_style/t/%(t_path)s', ['t_path']);
97 pyroutes.register('download_file', '/_file_store/download/%(fid)s', ['fid']);
98 pyroutes.register('download_file_by_token', '/_file_store/token-download/%(_auth_token)s/%(fid)s', ['_auth_token', 'fid']);
99 pyroutes.register('edit_repo', '/%(repo_name)s/settings', ['repo_name']);
100 pyroutes.register('edit_repo_advanced', '/%(repo_name)s/settings/advanced', ['repo_name']);
101 pyroutes.register('edit_repo_advanced_archive', '/%(repo_name)s/settings/advanced/archive', ['repo_name']);
102 pyroutes.register('edit_repo_advanced_delete', '/%(repo_name)s/settings/advanced/delete', ['repo_name']);
103 pyroutes.register('edit_repo_advanced_fork', '/%(repo_name)s/settings/advanced/fork', ['repo_name']);
104 pyroutes.register('edit_repo_advanced_hooks', '/%(repo_name)s/settings/advanced/hooks', ['repo_name']);
105 pyroutes.register('edit_repo_advanced_journal', '/%(repo_name)s/settings/advanced/journal', ['repo_name']);
106 pyroutes.register('edit_repo_advanced_locking', '/%(repo_name)s/settings/advanced/locking', ['repo_name']);
107 pyroutes.register('edit_repo_audit_logs', '/%(repo_name)s/settings/audit_logs', ['repo_name']);
108 pyroutes.register('edit_repo_caches', '/%(repo_name)s/settings/caches', ['repo_name']);
109 pyroutes.register('edit_repo_fields', '/%(repo_name)s/settings/fields', ['repo_name']);
110 pyroutes.register('edit_repo_fields_create', '/%(repo_name)s/settings/fields/create', ['repo_name']);
111 pyroutes.register('edit_repo_fields_delete', '/%(repo_name)s/settings/fields/%(field_id)s/delete', ['repo_name', 'field_id']);
112 pyroutes.register('edit_repo_group', '/%(repo_group_name)s/_edit', ['repo_group_name']);
113 pyroutes.register('edit_repo_group_advanced', '/%(repo_group_name)s/_settings/advanced', ['repo_group_name']);
114 pyroutes.register('edit_repo_group_advanced_delete', '/%(repo_group_name)s/_settings/advanced/delete', ['repo_group_name']);
115 pyroutes.register('edit_repo_group_perms', '/%(repo_group_name)s/_settings/permissions', ['repo_group_name']);
116 pyroutes.register('edit_repo_group_perms_update', '/%(repo_group_name)s/_settings/permissions/update', ['repo_group_name']);
117 pyroutes.register('edit_repo_issuetracker', '/%(repo_name)s/settings/issue_trackers', ['repo_name']);
118 pyroutes.register('edit_repo_issuetracker_delete', '/%(repo_name)s/settings/issue_trackers/delete', ['repo_name']);
119 pyroutes.register('edit_repo_issuetracker_test', '/%(repo_name)s/settings/issue_trackers/test', ['repo_name']);
120 pyroutes.register('edit_repo_issuetracker_update', '/%(repo_name)s/settings/issue_trackers/update', ['repo_name']);
121 pyroutes.register('edit_repo_maintenance', '/%(repo_name)s/settings/maintenance', ['repo_name']);
122 pyroutes.register('edit_repo_maintenance_execute', '/%(repo_name)s/settings/maintenance/execute', ['repo_name']);
123 pyroutes.register('edit_repo_perms', '/%(repo_name)s/settings/permissions', ['repo_name']);
124 pyroutes.register('edit_repo_perms_branch', '/%(repo_name)s/settings/branch_permissions', ['repo_name']);
125 pyroutes.register('edit_repo_perms_branch_delete', '/%(repo_name)s/settings/branch_permissions/%(rule_id)s/delete', ['repo_name', 'rule_id']);
126 pyroutes.register('edit_repo_perms_set_private', '/%(repo_name)s/settings/permissions/set_private', ['repo_name']);
127 pyroutes.register('edit_repo_remote', '/%(repo_name)s/settings/remote', ['repo_name']);
128 pyroutes.register('edit_repo_remote_pull', '/%(repo_name)s/settings/remote/pull', ['repo_name']);
129 pyroutes.register('edit_repo_remote_push', '/%(repo_name)s/settings/remote/push', ['repo_name']);
130 pyroutes.register('edit_repo_statistics', '/%(repo_name)s/settings/statistics', ['repo_name']);
131 pyroutes.register('edit_repo_statistics_reset', '/%(repo_name)s/settings/statistics/update', ['repo_name']);
132 pyroutes.register('edit_repo_strip', '/%(repo_name)s/settings/strip', ['repo_name']);
133 pyroutes.register('edit_repo_vcs', '/%(repo_name)s/settings/vcs', ['repo_name']);
134 pyroutes.register('edit_repo_vcs_svn_pattern_delete', '/%(repo_name)s/settings/vcs/svn_pattern/delete', ['repo_name']);
135 pyroutes.register('edit_repo_vcs_update', '/%(repo_name)s/settings/vcs/update', ['repo_name']);
136 pyroutes.register('edit_user_audit_logs', '/_admin/users/%(user_id)s/edit/audit', ['user_id']);
137 pyroutes.register('edit_user_audit_logs_download', '/_admin/users/%(user_id)s/edit/audit/download', ['user_id']);
138 pyroutes.register('edit_user_auth_tokens', '/_admin/users/%(user_id)s/edit/auth_tokens', ['user_id']);
139 pyroutes.register('edit_user_auth_tokens_add', '/_admin/users/%(user_id)s/edit/auth_tokens/new', ['user_id']);
140 pyroutes.register('edit_user_auth_tokens_delete', '/_admin/users/%(user_id)s/edit/auth_tokens/delete', ['user_id']);
114 141 pyroutes.register('edit_user_auth_tokens_view', '/_admin/users/%(user_id)s/edit/auth_tokens/view', ['user_id']);
115 pyroutes.register('edit_user_auth_tokens_delete', '/_admin/users/%(user_id)s/edit/auth_tokens/delete', ['user_id']);
116 pyroutes.register('edit_user_ssh_keys', '/_admin/users/%(user_id)s/edit/ssh_keys', ['user_id']);
117 pyroutes.register('edit_user_ssh_keys_generate_keypair', '/_admin/users/%(user_id)s/edit/ssh_keys/generate', ['user_id']);
118 pyroutes.register('edit_user_ssh_keys_add', '/_admin/users/%(user_id)s/edit/ssh_keys/new', ['user_id']);
119 pyroutes.register('edit_user_ssh_keys_delete', '/_admin/users/%(user_id)s/edit/ssh_keys/delete', ['user_id']);
142 pyroutes.register('edit_user_caches', '/_admin/users/%(user_id)s/edit/caches', ['user_id']);
143 pyroutes.register('edit_user_caches_update', '/_admin/users/%(user_id)s/edit/caches/update', ['user_id']);
120 144 pyroutes.register('edit_user_emails', '/_admin/users/%(user_id)s/edit/emails', ['user_id']);
121 145 pyroutes.register('edit_user_emails_add', '/_admin/users/%(user_id)s/edit/emails/new', ['user_id']);
122 146 pyroutes.register('edit_user_emails_delete', '/_admin/users/%(user_id)s/edit/emails/delete', ['user_id']);
147 pyroutes.register('edit_user_group', '/_admin/user_groups/%(user_group_id)s/edit', ['user_group_id']);
148 pyroutes.register('edit_user_group_advanced', '/_admin/user_groups/%(user_group_id)s/edit/advanced', ['user_group_id']);
149 pyroutes.register('edit_user_group_advanced_sync', '/_admin/user_groups/%(user_group_id)s/edit/advanced/sync', ['user_group_id']);
150 pyroutes.register('edit_user_group_global_perms', '/_admin/user_groups/%(user_group_id)s/edit/global_permissions', ['user_group_id']);
151 pyroutes.register('edit_user_group_global_perms_update', '/_admin/user_groups/%(user_group_id)s/edit/global_permissions/update', ['user_group_id']);
152 pyroutes.register('edit_user_group_perms', '/_admin/user_groups/%(user_group_id)s/edit/permissions', ['user_group_id']);
153 pyroutes.register('edit_user_group_perms_summary', '/_admin/user_groups/%(user_group_id)s/edit/permissions_summary', ['user_group_id']);
154 pyroutes.register('edit_user_group_perms_summary_json', '/_admin/user_groups/%(user_group_id)s/edit/permissions_summary/json', ['user_group_id']);
155 pyroutes.register('edit_user_group_perms_update', '/_admin/user_groups/%(user_group_id)s/edit/permissions/update', ['user_group_id']);
156 pyroutes.register('edit_user_groups_management', '/_admin/users/%(user_id)s/edit/groups_management', ['user_id']);
157 pyroutes.register('edit_user_groups_management_updates', '/_admin/users/%(user_id)s/edit/edit_user_groups_management/updates', ['user_id']);
123 158 pyroutes.register('edit_user_ips', '/_admin/users/%(user_id)s/edit/ips', ['user_id']);
124 159 pyroutes.register('edit_user_ips_add', '/_admin/users/%(user_id)s/edit/ips/new', ['user_id']);
125 160 pyroutes.register('edit_user_ips_delete', '/_admin/users/%(user_id)s/edit/ips/delete', ['user_id']);
126 161 pyroutes.register('edit_user_perms_summary', '/_admin/users/%(user_id)s/edit/permissions_summary', ['user_id']);
127 162 pyroutes.register('edit_user_perms_summary_json', '/_admin/users/%(user_id)s/edit/permissions_summary/json', ['user_id']);
128 pyroutes.register('edit_user_groups_management', '/_admin/users/%(user_id)s/edit/groups_management', ['user_id']);
129 pyroutes.register('edit_user_groups_management_updates', '/_admin/users/%(user_id)s/edit/edit_user_groups_management/updates', ['user_id']);
130 pyroutes.register('edit_user_audit_logs', '/_admin/users/%(user_id)s/edit/audit', ['user_id']);
131 pyroutes.register('edit_user_audit_logs_download', '/_admin/users/%(user_id)s/edit/audit/download', ['user_id']);
132 pyroutes.register('edit_user_caches', '/_admin/users/%(user_id)s/edit/caches', ['user_id']);
133 pyroutes.register('edit_user_caches_update', '/_admin/users/%(user_id)s/edit/caches/update', ['user_id']);
134 pyroutes.register('user_groups', '/_admin/user_groups', []);
135 pyroutes.register('user_groups_data', '/_admin/user_groups_data', []);
136 pyroutes.register('user_groups_new', '/_admin/user_groups/new', []);
137 pyroutes.register('user_groups_create', '/_admin/user_groups/create', []);
138 pyroutes.register('repos', '/_admin/repos', []);
139 pyroutes.register('repos_data', '/_admin/repos_data', []);
140 pyroutes.register('repo_new', '/_admin/repos/new', []);
141 pyroutes.register('repo_create', '/_admin/repos/create', []);
142 pyroutes.register('repo_groups', '/_admin/repo_groups', []);
143 pyroutes.register('repo_groups_data', '/_admin/repo_groups_data', []);
144 pyroutes.register('repo_group_new', '/_admin/repo_group/new', []);
145 pyroutes.register('repo_group_create', '/_admin/repo_group/create', []);
146 pyroutes.register('channelstream_connect', '/_admin/channelstream/connect', []);
147 pyroutes.register('channelstream_subscribe', '/_admin/channelstream/subscribe', []);
148 pyroutes.register('channelstream_proxy', '/_channelstream', []);
149 pyroutes.register('upload_file', '/_file_store/upload', []);
150 pyroutes.register('download_file', '/_file_store/download/%(fid)s', ['fid']);
151 pyroutes.register('download_file_by_token', '/_file_store/token-download/%(_auth_token)s/%(fid)s', ['_auth_token', 'fid']);
152 pyroutes.register('logout', '/_admin/logout', []);
153 pyroutes.register('reset_password', '/_admin/password_reset', []);
154 pyroutes.register('reset_password_confirmation', '/_admin/password_reset_confirmation', []);
163 pyroutes.register('edit_user_ssh_keys', '/_admin/users/%(user_id)s/edit/ssh_keys', ['user_id']);
164 pyroutes.register('edit_user_ssh_keys_add', '/_admin/users/%(user_id)s/edit/ssh_keys/new', ['user_id']);
165 pyroutes.register('edit_user_ssh_keys_delete', '/_admin/users/%(user_id)s/edit/ssh_keys/delete', ['user_id']);
166 pyroutes.register('edit_user_ssh_keys_generate_keypair', '/_admin/users/%(user_id)s/edit/ssh_keys/generate', ['user_id']);
167 pyroutes.register('favicon', '/favicon.ico', []);
168 pyroutes.register('file_preview', '/_file_preview', []);
169 pyroutes.register('gist_delete', '/_admin/gists/%(gist_id)s/delete', ['gist_id']);
170 pyroutes.register('gist_edit', '/_admin/gists/%(gist_id)s/edit', ['gist_id']);
171 pyroutes.register('gist_edit_check_revision', '/_admin/gists/%(gist_id)s/edit/check_revision', ['gist_id']);
172 pyroutes.register('gist_show', '/_admin/gists/%(gist_id)s', ['gist_id']);
173 pyroutes.register('gist_show_formatted', '/_admin/gists/%(gist_id)s/rev/%(revision)s/%(format)s', ['gist_id', 'revision', 'format']);
174 pyroutes.register('gist_show_formatted_path', '/_admin/gists/%(gist_id)s/rev/%(revision)s/%(format)s/%(f_path)s', ['gist_id', 'revision', 'format', 'f_path']);
175 pyroutes.register('gist_show_rev', '/_admin/gists/%(gist_id)s/rev/%(revision)s', ['gist_id', 'revision']);
176 pyroutes.register('gist_update', '/_admin/gists/%(gist_id)s/update', ['gist_id']);
177 pyroutes.register('gists_create', '/_admin/gists/create', []);
178 pyroutes.register('gists_new', '/_admin/gists/new', []);
179 pyroutes.register('gists_show', '/_admin/gists', []);
180 pyroutes.register('global_integrations_create', '/_admin/integrations/%(integration)s/new', ['integration']);
181 pyroutes.register('global_integrations_edit', '/_admin/integrations/%(integration)s/%(integration_id)s', ['integration', 'integration_id']);
182 pyroutes.register('global_integrations_home', '/_admin/integrations', []);
183 pyroutes.register('global_integrations_list', '/_admin/integrations/%(integration)s', ['integration']);
184 pyroutes.register('global_integrations_new', '/_admin/integrations/new', []);
185 pyroutes.register('goto_switcher_data', '/_goto_data', []);
155 186 pyroutes.register('home', '/', []);
156 pyroutes.register('main_page_repos_data', '/_home_repos', []);
157 pyroutes.register('main_page_repo_groups_data', '/_home_repo_groups', []);
158 pyroutes.register('user_autocomplete_data', '/_users', []);
159 pyroutes.register('user_group_autocomplete_data', '/_user_groups', []);
160 pyroutes.register('repo_list_data', '/_repos', []);
161 pyroutes.register('repo_group_list_data', '/_repo_groups', []);
162 pyroutes.register('goto_switcher_data', '/_goto_data', []);
163 pyroutes.register('markup_preview', '/_markup_preview', []);
164 pyroutes.register('file_preview', '/_file_preview', []);
165 pyroutes.register('store_user_session_value', '/_store_session_attr', []);
187 pyroutes.register('hovercard_pull_request', '/_hovercard/pull_request/%(pull_request_id)s', ['pull_request_id']);
188 pyroutes.register('hovercard_repo_commit', '/_hovercard/commit/%(repo_name)s/%(commit_id)s', ['repo_name', 'commit_id']);
189 pyroutes.register('hovercard_user', '/_hovercard/user/%(user_id)s', ['user_id']);
190 pyroutes.register('hovercard_user_group', '/_hovercard/user_group/%(user_group_id)s', ['user_group_id']);
191 pyroutes.register('hovercard_username', '/_hovercard/username/%(username)s', ['username']);
166 192 pyroutes.register('journal', '/_admin/journal', []);
167 pyroutes.register('journal_rss', '/_admin/journal/rss', []);
168 193 pyroutes.register('journal_atom', '/_admin/journal/atom', []);
169 194 pyroutes.register('journal_public', '/_admin/public_journal', []);
170 195 pyroutes.register('journal_public_atom', '/_admin/public_journal/atom', []);
171 196 pyroutes.register('journal_public_atom_old', '/_admin/public_journal_atom', []);
172 197 pyroutes.register('journal_public_rss', '/_admin/public_journal/rss', []);
173 198 pyroutes.register('journal_public_rss_old', '/_admin/public_journal_rss', []);
174 pyroutes.register('toggle_following', '/_admin/toggle_following', []);
175 pyroutes.register('repo_creating', '/%(repo_name)s/repo_creating', ['repo_name']);
176 pyroutes.register('repo_creating_check', '/%(repo_name)s/repo_creating_check', ['repo_name']);
177 pyroutes.register('repo_summary_explicit', '/%(repo_name)s/summary', ['repo_name']);
178 pyroutes.register('repo_summary_commits', '/%(repo_name)s/summary-commits', ['repo_name']);
179 pyroutes.register('repo_commit', '/%(repo_name)s/changeset/%(commit_id)s', ['repo_name', 'commit_id']);
180 pyroutes.register('repo_commit_children', '/%(repo_name)s/changeset_children/%(commit_id)s', ['repo_name', 'commit_id']);
181 pyroutes.register('repo_commit_parents', '/%(repo_name)s/changeset_parents/%(commit_id)s', ['repo_name', 'commit_id']);
182 pyroutes.register('repo_commit_raw', '/%(repo_name)s/changeset-diff/%(commit_id)s', ['repo_name', 'commit_id']);
183 pyroutes.register('repo_commit_patch', '/%(repo_name)s/changeset-patch/%(commit_id)s', ['repo_name', 'commit_id']);
184 pyroutes.register('repo_commit_download', '/%(repo_name)s/changeset-download/%(commit_id)s', ['repo_name', 'commit_id']);
185 pyroutes.register('repo_commit_data', '/%(repo_name)s/changeset-data/%(commit_id)s', ['repo_name', 'commit_id']);
186 pyroutes.register('repo_commit_comment_create', '/%(repo_name)s/changeset/%(commit_id)s/comment/create', ['repo_name', 'commit_id']);
187 pyroutes.register('repo_commit_comment_preview', '/%(repo_name)s/changeset/%(commit_id)s/comment/preview', ['repo_name', 'commit_id']);
188 pyroutes.register('repo_commit_comment_history_view', '/%(repo_name)s/changeset/%(commit_id)s/comment/%(comment_history_id)s/history_view', ['repo_name', 'commit_id', 'comment_history_id']);
189 pyroutes.register('repo_commit_comment_attachment_upload', '/%(repo_name)s/changeset/%(commit_id)s/comment/attachment_upload', ['repo_name', 'commit_id']);
190 pyroutes.register('repo_commit_comment_delete', '/%(repo_name)s/changeset/%(commit_id)s/comment/%(comment_id)s/delete', ['repo_name', 'commit_id', 'comment_id']);
191 pyroutes.register('repo_commit_comment_edit', '/%(repo_name)s/changeset/%(commit_id)s/comment/%(comment_id)s/edit', ['repo_name', 'commit_id', 'comment_id']);
192 pyroutes.register('repo_commit_raw_deprecated', '/%(repo_name)s/raw-changeset/%(commit_id)s', ['repo_name', 'commit_id']);
193 pyroutes.register('repo_archivefile', '/%(repo_name)s/archive/%(fname)s', ['repo_name', 'fname']);
194 pyroutes.register('repo_files_diff', '/%(repo_name)s/diff/%(f_path)s', ['repo_name', 'f_path']);
195 pyroutes.register('repo_files_diff_2way_redirect', '/%(repo_name)s/diff-2way/%(f_path)s', ['repo_name', 'f_path']);
196 pyroutes.register('repo_files', '/%(repo_name)s/files/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
197 pyroutes.register('repo_files:default_path', '/%(repo_name)s/files/%(commit_id)s/', ['repo_name', 'commit_id']);
198 pyroutes.register('repo_files:default_commit', '/%(repo_name)s/files', ['repo_name']);
199 pyroutes.register('repo_files:rendered', '/%(repo_name)s/render/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
200 pyroutes.register('repo_files:annotated', '/%(repo_name)s/annotate/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
201 pyroutes.register('repo_files:annotated_previous', '/%(repo_name)s/annotate-previous/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
202 pyroutes.register('repo_nodetree_full', '/%(repo_name)s/nodetree_full/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
203 pyroutes.register('repo_nodetree_full:default_path', '/%(repo_name)s/nodetree_full/%(commit_id)s/', ['repo_name', 'commit_id']);
204 pyroutes.register('repo_files_nodelist', '/%(repo_name)s/nodelist/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
205 pyroutes.register('repo_file_raw', '/%(repo_name)s/raw/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
206 pyroutes.register('repo_file_download', '/%(repo_name)s/download/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
207 pyroutes.register('repo_file_download:legacy', '/%(repo_name)s/rawfile/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
208 pyroutes.register('repo_file_history', '/%(repo_name)s/history/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
209 pyroutes.register('repo_file_authors', '/%(repo_name)s/authors/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
210 pyroutes.register('repo_files_check_head', '/%(repo_name)s/check_head/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
211 pyroutes.register('repo_files_remove_file', '/%(repo_name)s/remove_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
212 pyroutes.register('repo_files_delete_file', '/%(repo_name)s/delete_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
213 pyroutes.register('repo_files_edit_file', '/%(repo_name)s/edit_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
214 pyroutes.register('repo_files_update_file', '/%(repo_name)s/update_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
215 pyroutes.register('repo_files_add_file', '/%(repo_name)s/add_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
216 pyroutes.register('repo_files_upload_file', '/%(repo_name)s/upload_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
217 pyroutes.register('repo_files_create_file', '/%(repo_name)s/create_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
218 pyroutes.register('repo_refs_data', '/%(repo_name)s/refs-data', ['repo_name']);
219 pyroutes.register('repo_refs_changelog_data', '/%(repo_name)s/refs-data-changelog', ['repo_name']);
220 pyroutes.register('repo_stats', '/%(repo_name)s/repo_stats/%(commit_id)s', ['repo_name', 'commit_id']);
221 pyroutes.register('repo_commits', '/%(repo_name)s/commits', ['repo_name']);
222 pyroutes.register('repo_commits_file', '/%(repo_name)s/commits/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
223 pyroutes.register('repo_commits_elements', '/%(repo_name)s/commits_elements', ['repo_name']);
224 pyroutes.register('repo_commits_elements_file', '/%(repo_name)s/commits_elements/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
225 pyroutes.register('repo_changelog', '/%(repo_name)s/changelog', ['repo_name']);
226 pyroutes.register('repo_changelog_file', '/%(repo_name)s/changelog/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
227 pyroutes.register('repo_compare_select', '/%(repo_name)s/compare', ['repo_name']);
228 pyroutes.register('repo_compare', '/%(repo_name)s/compare/%(source_ref_type)s@%(source_ref)s...%(target_ref_type)s@%(target_ref)s', ['repo_name', 'source_ref_type', 'source_ref', 'target_ref_type', 'target_ref']);
229 pyroutes.register('tags_home', '/%(repo_name)s/tags', ['repo_name']);
230 pyroutes.register('branches_home', '/%(repo_name)s/branches', ['repo_name']);
231 pyroutes.register('bookmarks_home', '/%(repo_name)s/bookmarks', ['repo_name']);
232 pyroutes.register('repo_fork_new', '/%(repo_name)s/fork', ['repo_name']);
233 pyroutes.register('repo_fork_create', '/%(repo_name)s/fork/create', ['repo_name']);
234 pyroutes.register('repo_forks_show_all', '/%(repo_name)s/forks', ['repo_name']);
235 pyroutes.register('repo_forks_data', '/%(repo_name)s/forks/data', ['repo_name']);
199 pyroutes.register('journal_rss', '/_admin/journal/rss', []);
200 pyroutes.register('login', '/_admin/login', []);
201 pyroutes.register('logout', '/_admin/logout', []);
202 pyroutes.register('main_page_repo_groups_data', '/_home_repo_groups', []);
203 pyroutes.register('main_page_repos_data', '/_home_repos', []);
204 pyroutes.register('markup_preview', '/_markup_preview', []);
205 pyroutes.register('my_account_auth_tokens', '/_admin/my_account/auth_tokens', []);
206 pyroutes.register('my_account_auth_tokens_add', '/_admin/my_account/auth_tokens/new', []);
207 pyroutes.register('my_account_auth_tokens_delete', '/_admin/my_account/auth_tokens/delete', []);
208 pyroutes.register('my_account_auth_tokens_view', '/_admin/my_account/auth_tokens/view', []);
209 pyroutes.register('my_account_bookmarks', '/_admin/my_account/bookmarks', []);
210 pyroutes.register('my_account_bookmarks_update', '/_admin/my_account/bookmarks/update', []);
211 pyroutes.register('my_account_edit', '/_admin/my_account/edit', []);
212 pyroutes.register('my_account_emails', '/_admin/my_account/emails', []);
213 pyroutes.register('my_account_emails_add', '/_admin/my_account/emails/new', []);
214 pyroutes.register('my_account_emails_delete', '/_admin/my_account/emails/delete', []);
215 pyroutes.register('my_account_external_identity', '/_admin/my_account/external-identity', []);
216 pyroutes.register('my_account_external_identity_delete', '/_admin/my_account/external-identity/delete', []);
217 pyroutes.register('my_account_goto_bookmark', '/_admin/my_account/bookmark/%(bookmark_id)s', ['bookmark_id']);
218 pyroutes.register('my_account_notifications', '/_admin/my_account/notifications', []);
219 pyroutes.register('my_account_notifications_test_channelstream', '/_admin/my_account/test_channelstream', []);
220 pyroutes.register('my_account_notifications_toggle_visibility', '/_admin/my_account/toggle_visibility', []);
221 pyroutes.register('my_account_password', '/_admin/my_account/password', []);
222 pyroutes.register('my_account_password_update', '/_admin/my_account/password/update', []);
223 pyroutes.register('my_account_perms', '/_admin/my_account/perms', []);
224 pyroutes.register('my_account_profile', '/_admin/my_account/profile', []);
225 pyroutes.register('my_account_pullrequests', '/_admin/my_account/pull_requests', []);
226 pyroutes.register('my_account_pullrequests_data', '/_admin/my_account/pull_requests/data', []);
227 pyroutes.register('my_account_repos', '/_admin/my_account/repos', []);
228 pyroutes.register('my_account_ssh_keys', '/_admin/my_account/ssh_keys', []);
229 pyroutes.register('my_account_ssh_keys_add', '/_admin/my_account/ssh_keys/new', []);
230 pyroutes.register('my_account_ssh_keys_delete', '/_admin/my_account/ssh_keys/delete', []);
231 pyroutes.register('my_account_ssh_keys_generate', '/_admin/my_account/ssh_keys/generate', []);
232 pyroutes.register('my_account_update', '/_admin/my_account/update', []);
233 pyroutes.register('my_account_user_group_membership', '/_admin/my_account/user_group_membership', []);
234 pyroutes.register('my_account_watched', '/_admin/my_account/watched', []);
235 pyroutes.register('notifications_delete', '/_admin/notifications/%(notification_id)s/delete', ['notification_id']);
236 pyroutes.register('notifications_mark_all_read', '/_admin/notifications_mark_all_read', []);
237 pyroutes.register('notifications_show', '/_admin/notifications/%(notification_id)s', ['notification_id']);
238 pyroutes.register('notifications_show_all', '/_admin/notifications', []);
239 pyroutes.register('notifications_update', '/_admin/notifications/%(notification_id)s/update', ['notification_id']);
240 pyroutes.register('ops_error_test', '/_admin/ops/error', []);
241 pyroutes.register('ops_ping', '/_admin/ops/ping', []);
242 pyroutes.register('ops_redirect_test', '/_admin/ops/redirect', []);
243 pyroutes.register('plugin_admin_chat', '/_admin/plugin_admin_chat/%(action)s', ['action']);
244 pyroutes.register('pull_requests_global', '/_admin/pull-request/%(pull_request_id)s', ['pull_request_id']);
245 pyroutes.register('pull_requests_global_0', '/_admin/pull_requests/%(pull_request_id)s', ['pull_request_id']);
246 pyroutes.register('pull_requests_global_1', '/_admin/pull-requests/%(pull_request_id)s', ['pull_request_id']);
247 pyroutes.register('pullrequest_comment_create', '/%(repo_name)s/pull-request/%(pull_request_id)s/comment', ['repo_name', 'pull_request_id']);
248 pyroutes.register('pullrequest_comment_delete', '/%(repo_name)s/pull-request/%(pull_request_id)s/comment/%(comment_id)s/delete', ['repo_name', 'pull_request_id', 'comment_id']);
249 pyroutes.register('pullrequest_comment_edit', '/%(repo_name)s/pull-request/%(pull_request_id)s/comment/%(comment_id)s/edit', ['repo_name', 'pull_request_id', 'comment_id']);
250 pyroutes.register('pullrequest_comments', '/%(repo_name)s/pull-request/%(pull_request_id)s/comments', ['repo_name', 'pull_request_id']);
251 pyroutes.register('pullrequest_create', '/%(repo_name)s/pull-request/create', ['repo_name']);
252 pyroutes.register('pullrequest_delete', '/%(repo_name)s/pull-request/%(pull_request_id)s/delete', ['repo_name', 'pull_request_id']);
253 pyroutes.register('pullrequest_draft_comments_submit', '/%(repo_name)s/pull-request/%(pull_request_id)s/draft_comments_submit', ['repo_name', 'pull_request_id']);
254 pyroutes.register('pullrequest_drafts', '/%(repo_name)s/pull-request/%(pull_request_id)s/drafts', ['repo_name', 'pull_request_id']);
255 pyroutes.register('pullrequest_merge', '/%(repo_name)s/pull-request/%(pull_request_id)s/merge', ['repo_name', 'pull_request_id']);
256 pyroutes.register('pullrequest_new', '/%(repo_name)s/pull-request/new', ['repo_name']);
257 pyroutes.register('pullrequest_repo_refs', '/%(repo_name)s/pull-request/refs/%(target_repo_name)s', ['repo_name', 'target_repo_name']);
258 pyroutes.register('pullrequest_repo_targets', '/%(repo_name)s/pull-request/repo-targets', ['repo_name']);
236 259 pyroutes.register('pullrequest_show', '/%(repo_name)s/pull-request/%(pull_request_id)s', ['repo_name', 'pull_request_id']);
237 260 pyroutes.register('pullrequest_show_all', '/%(repo_name)s/pull-request', ['repo_name']);
238 261 pyroutes.register('pullrequest_show_all_data', '/%(repo_name)s/pull-request-data', ['repo_name']);
239 pyroutes.register('pullrequest_repo_refs', '/%(repo_name)s/pull-request/refs/%(target_repo_name)s', ['repo_name', 'target_repo_name']);
240 pyroutes.register('pullrequest_repo_targets', '/%(repo_name)s/pull-request/repo-targets', ['repo_name']);
241 pyroutes.register('pullrequest_new', '/%(repo_name)s/pull-request/new', ['repo_name']);
242 pyroutes.register('pullrequest_create', '/%(repo_name)s/pull-request/create', ['repo_name']);
262 pyroutes.register('pullrequest_todos', '/%(repo_name)s/pull-request/%(pull_request_id)s/todos', ['repo_name', 'pull_request_id']);
243 263 pyroutes.register('pullrequest_update', '/%(repo_name)s/pull-request/%(pull_request_id)s/update', ['repo_name', 'pull_request_id']);
244 pyroutes.register('pullrequest_merge', '/%(repo_name)s/pull-request/%(pull_request_id)s/merge', ['repo_name', 'pull_request_id']);
245 pyroutes.register('pullrequest_delete', '/%(repo_name)s/pull-request/%(pull_request_id)s/delete', ['repo_name', 'pull_request_id']);
246 pyroutes.register('pullrequest_comment_create', '/%(repo_name)s/pull-request/%(pull_request_id)s/comment', ['repo_name', 'pull_request_id']);
247 pyroutes.register('pullrequest_comment_edit', '/%(repo_name)s/pull-request/%(pull_request_id)s/comment/%(comment_id)s/edit', ['repo_name', 'pull_request_id', 'comment_id']);
248 pyroutes.register('pullrequest_comment_delete', '/%(repo_name)s/pull-request/%(pull_request_id)s/comment/%(comment_id)s/delete', ['repo_name', 'pull_request_id', 'comment_id']);
249 pyroutes.register('pullrequest_comments', '/%(repo_name)s/pull-request/%(pull_request_id)s/comments', ['repo_name', 'pull_request_id']);
250 pyroutes.register('pullrequest_todos', '/%(repo_name)s/pull-request/%(pull_request_id)s/todos', ['repo_name', 'pull_request_id']);
251 pyroutes.register('pullrequest_drafts', '/%(repo_name)s/pull-request/%(pull_request_id)s/drafts', ['repo_name', 'pull_request_id']);
252 pyroutes.register('edit_repo', '/%(repo_name)s/settings', ['repo_name']);
253 pyroutes.register('edit_repo_advanced', '/%(repo_name)s/settings/advanced', ['repo_name']);
254 pyroutes.register('edit_repo_advanced_archive', '/%(repo_name)s/settings/advanced/archive', ['repo_name']);
255 pyroutes.register('edit_repo_advanced_delete', '/%(repo_name)s/settings/advanced/delete', ['repo_name']);
256 pyroutes.register('edit_repo_advanced_locking', '/%(repo_name)s/settings/advanced/locking', ['repo_name']);
257 pyroutes.register('edit_repo_advanced_journal', '/%(repo_name)s/settings/advanced/journal', ['repo_name']);
258 pyroutes.register('edit_repo_advanced_fork', '/%(repo_name)s/settings/advanced/fork', ['repo_name']);
259 pyroutes.register('edit_repo_advanced_hooks', '/%(repo_name)s/settings/advanced/hooks', ['repo_name']);
260 pyroutes.register('edit_repo_caches', '/%(repo_name)s/settings/caches', ['repo_name']);
261 pyroutes.register('edit_repo_perms', '/%(repo_name)s/settings/permissions', ['repo_name']);
262 pyroutes.register('edit_repo_perms_set_private', '/%(repo_name)s/settings/permissions/set_private', ['repo_name']);
263 pyroutes.register('edit_repo_maintenance', '/%(repo_name)s/settings/maintenance', ['repo_name']);
264 pyroutes.register('edit_repo_maintenance_execute', '/%(repo_name)s/settings/maintenance/execute', ['repo_name']);
265 pyroutes.register('edit_repo_fields', '/%(repo_name)s/settings/fields', ['repo_name']);
266 pyroutes.register('edit_repo_fields_create', '/%(repo_name)s/settings/fields/create', ['repo_name']);
267 pyroutes.register('edit_repo_fields_delete', '/%(repo_name)s/settings/fields/%(field_id)s/delete', ['repo_name', 'field_id']);
264 pyroutes.register('register', '/_admin/register', []);
265 pyroutes.register('repo_archivefile', '/%(repo_name)s/archive/%(fname)s', ['repo_name', 'fname']);
266 pyroutes.register('repo_artifacts_data', '/%(repo_name)s/artifacts_data', ['repo_name']);
267 pyroutes.register('repo_artifacts_delete', '/%(repo_name)s/artifacts/delete/%(uid)s', ['repo_name', 'uid']);
268 pyroutes.register('repo_artifacts_get', '/%(repo_name)s/artifacts/download/%(uid)s', ['repo_name', 'uid']);
269 pyroutes.register('repo_artifacts_info', '/%(repo_name)s/artifacts/info/%(uid)s', ['repo_name', 'uid']);
270 pyroutes.register('repo_artifacts_list', '/%(repo_name)s/artifacts', ['repo_name']);
271 pyroutes.register('repo_artifacts_new', '/%(repo_name)s/artifacts/new', ['repo_name']);
272 pyroutes.register('repo_artifacts_store', '/%(repo_name)s/artifacts/store', ['repo_name']);
273 pyroutes.register('repo_artifacts_update', '/%(repo_name)s/artifacts/update/%(uid)s', ['repo_name', 'uid']);
274 pyroutes.register('repo_automation', '/%(repo_name)s/settings/automation', ['repo_name']);
275 pyroutes.register('repo_automation_update', '/%(repo_name)s/settings/automation/%(entry_id)s/update', ['repo_name', 'entry_id']);
276 pyroutes.register('repo_changelog', '/%(repo_name)s/changelog', ['repo_name']);
277 pyroutes.register('repo_changelog_file', '/%(repo_name)s/changelog/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
278 pyroutes.register('repo_commit', '/%(repo_name)s/changeset/%(commit_id)s', ['repo_name', 'commit_id']);
279 pyroutes.register('repo_commit_children', '/%(repo_name)s/changeset_children/%(commit_id)s', ['repo_name', 'commit_id']);
280 pyroutes.register('repo_commit_comment_attachment_upload', '/%(repo_name)s/changeset/%(commit_id)s/comment/attachment_upload', ['repo_name', 'commit_id']);
281 pyroutes.register('repo_commit_comment_create', '/%(repo_name)s/changeset/%(commit_id)s/comment/create', ['repo_name', 'commit_id']);
282 pyroutes.register('repo_commit_comment_delete', '/%(repo_name)s/changeset/%(commit_id)s/comment/%(comment_id)s/delete', ['repo_name', 'commit_id', 'comment_id']);
283 pyroutes.register('repo_commit_comment_edit', '/%(repo_name)s/changeset/%(commit_id)s/comment/%(comment_id)s/edit', ['repo_name', 'commit_id', 'comment_id']);
284 pyroutes.register('repo_commit_comment_history_view', '/%(repo_name)s/changeset/%(commit_id)s/comment/%(comment_history_id)s/history_view', ['repo_name', 'commit_id', 'comment_history_id']);
285 pyroutes.register('repo_commit_comment_preview', '/%(repo_name)s/changeset/%(commit_id)s/comment/preview', ['repo_name', 'commit_id']);
286 pyroutes.register('repo_commit_data', '/%(repo_name)s/changeset-data/%(commit_id)s', ['repo_name', 'commit_id']);
287 pyroutes.register('repo_commit_download', '/%(repo_name)s/changeset-download/%(commit_id)s', ['repo_name', 'commit_id']);
288 pyroutes.register('repo_commit_parents', '/%(repo_name)s/changeset_parents/%(commit_id)s', ['repo_name', 'commit_id']);
289 pyroutes.register('repo_commit_patch', '/%(repo_name)s/changeset-patch/%(commit_id)s', ['repo_name', 'commit_id']);
290 pyroutes.register('repo_commit_raw', '/%(repo_name)s/changeset-diff/%(commit_id)s', ['repo_name', 'commit_id']);
291 pyroutes.register('repo_commit_raw_deprecated', '/%(repo_name)s/raw-changeset/%(commit_id)s', ['repo_name', 'commit_id']);
292 pyroutes.register('repo_commits', '/%(repo_name)s/commits', ['repo_name']);
293 pyroutes.register('repo_commits_elements', '/%(repo_name)s/commits_elements', ['repo_name']);
294 pyroutes.register('repo_commits_elements_file', '/%(repo_name)s/commits_elements/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
295 pyroutes.register('repo_commits_file', '/%(repo_name)s/commits/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
296 pyroutes.register('repo_compare', '/%(repo_name)s/compare/%(source_ref_type)s@%(source_ref)s...%(target_ref_type)s@%(target_ref)s', ['repo_name', 'source_ref_type', 'source_ref', 'target_ref_type', 'target_ref']);
297 pyroutes.register('repo_compare_select', '/%(repo_name)s/compare', ['repo_name']);
298 pyroutes.register('repo_create', '/_admin/repos/create', []);
299 pyroutes.register('repo_creating', '/%(repo_name)s/repo_creating', ['repo_name']);
300 pyroutes.register('repo_creating_check', '/%(repo_name)s/repo_creating_check', ['repo_name']);
301 pyroutes.register('repo_default_reviewers_data', '/%(repo_name)s/settings/review/default-reviewers', ['repo_name']);
268 302 pyroutes.register('repo_edit_toggle_locking', '/%(repo_name)s/settings/toggle_locking', ['repo_name']);
269 pyroutes.register('edit_repo_remote', '/%(repo_name)s/settings/remote', ['repo_name']);
270 pyroutes.register('edit_repo_remote_pull', '/%(repo_name)s/settings/remote/pull', ['repo_name']);
271 pyroutes.register('edit_repo_statistics', '/%(repo_name)s/settings/statistics', ['repo_name']);
272 pyroutes.register('edit_repo_statistics_reset', '/%(repo_name)s/settings/statistics/update', ['repo_name']);
273 pyroutes.register('edit_repo_issuetracker', '/%(repo_name)s/settings/issue_trackers', ['repo_name']);
274 pyroutes.register('edit_repo_issuetracker_test', '/%(repo_name)s/settings/issue_trackers/test', ['repo_name']);
275 pyroutes.register('edit_repo_issuetracker_delete', '/%(repo_name)s/settings/issue_trackers/delete', ['repo_name']);
276 pyroutes.register('edit_repo_issuetracker_update', '/%(repo_name)s/settings/issue_trackers/update', ['repo_name']);
277 pyroutes.register('edit_repo_vcs', '/%(repo_name)s/settings/vcs', ['repo_name']);
278 pyroutes.register('edit_repo_vcs_update', '/%(repo_name)s/settings/vcs/update', ['repo_name']);
279 pyroutes.register('edit_repo_vcs_svn_pattern_delete', '/%(repo_name)s/settings/vcs/svn_pattern/delete', ['repo_name']);
280 pyroutes.register('repo_reviewers', '/%(repo_name)s/settings/review/rules', ['repo_name']);
281 pyroutes.register('repo_default_reviewers_data', '/%(repo_name)s/settings/review/default-reviewers', ['repo_name']);
282 pyroutes.register('edit_repo_strip', '/%(repo_name)s/settings/strip', ['repo_name']);
283 pyroutes.register('strip_check', '/%(repo_name)s/settings/strip_check', ['repo_name']);
284 pyroutes.register('strip_execute', '/%(repo_name)s/settings/strip_execute', ['repo_name']);
285 pyroutes.register('edit_repo_audit_logs', '/%(repo_name)s/settings/audit_logs', ['repo_name']);
286 pyroutes.register('rss_feed_home', '/%(repo_name)s/feed-rss', ['repo_name']);
287 pyroutes.register('atom_feed_home', '/%(repo_name)s/feed-atom', ['repo_name']);
288 pyroutes.register('rss_feed_home_old', '/%(repo_name)s/feed/rss', ['repo_name']);
289 pyroutes.register('atom_feed_home_old', '/%(repo_name)s/feed/atom', ['repo_name']);
290 pyroutes.register('repo_summary', '/%(repo_name)s', ['repo_name']);
291 pyroutes.register('repo_summary_slash', '/%(repo_name)s/', ['repo_name']);
292 pyroutes.register('edit_repo_group', '/%(repo_group_name)s/_edit', ['repo_group_name']);
293 pyroutes.register('edit_repo_group_advanced', '/%(repo_group_name)s/_settings/advanced', ['repo_group_name']);
294 pyroutes.register('edit_repo_group_advanced_delete', '/%(repo_group_name)s/_settings/advanced/delete', ['repo_group_name']);
295 pyroutes.register('edit_repo_group_perms', '/%(repo_group_name)s/_settings/permissions', ['repo_group_name']);
296 pyroutes.register('edit_repo_group_perms_update', '/%(repo_group_name)s/_settings/permissions/update', ['repo_group_name']);
303 pyroutes.register('repo_file_authors', '/%(repo_name)s/authors/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
304 pyroutes.register('repo_file_download', '/%(repo_name)s/download/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
305 pyroutes.register('repo_file_download:legacy', '/%(repo_name)s/rawfile/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
306 pyroutes.register('repo_file_history', '/%(repo_name)s/history/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
307 pyroutes.register('repo_file_raw', '/%(repo_name)s/raw/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
308 pyroutes.register('repo_files', '/%(repo_name)s/files/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
309 pyroutes.register('repo_files:annotated', '/%(repo_name)s/annotate/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
310 pyroutes.register('repo_files:annotated_previous', '/%(repo_name)s/annotate-previous/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
311 pyroutes.register('repo_files:default_commit', '/%(repo_name)s/files', ['repo_name']);
312 pyroutes.register('repo_files:default_path', '/%(repo_name)s/files/%(commit_id)s/', ['repo_name', 'commit_id']);
313 pyroutes.register('repo_files:rendered', '/%(repo_name)s/render/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
314 pyroutes.register('repo_files_add_file', '/%(repo_name)s/add_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
315 pyroutes.register('repo_files_check_head', '/%(repo_name)s/check_head/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
316 pyroutes.register('repo_files_create_file', '/%(repo_name)s/create_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
317 pyroutes.register('repo_files_delete_file', '/%(repo_name)s/delete_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
318 pyroutes.register('repo_files_diff', '/%(repo_name)s/diff/%(f_path)s', ['repo_name', 'f_path']);
319 pyroutes.register('repo_files_diff_2way_redirect', '/%(repo_name)s/diff-2way/%(f_path)s', ['repo_name', 'f_path']);
320 pyroutes.register('repo_files_edit_file', '/%(repo_name)s/edit_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
321 pyroutes.register('repo_files_nodelist', '/%(repo_name)s/nodelist/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
322 pyroutes.register('repo_files_remove_file', '/%(repo_name)s/remove_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
323 pyroutes.register('repo_files_update_file', '/%(repo_name)s/update_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
324 pyroutes.register('repo_files_upload_file', '/%(repo_name)s/upload_file/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
325 pyroutes.register('repo_fork_create', '/%(repo_name)s/fork/create', ['repo_name']);
326 pyroutes.register('repo_fork_new', '/%(repo_name)s/fork', ['repo_name']);
327 pyroutes.register('repo_forks_data', '/%(repo_name)s/forks/data', ['repo_name']);
328 pyroutes.register('repo_forks_show_all', '/%(repo_name)s/forks', ['repo_name']);
329 pyroutes.register('repo_group_create', '/_admin/repo_group/create', []);
297 330 pyroutes.register('repo_group_home', '/%(repo_group_name)s', ['repo_group_name']);
298 331 pyroutes.register('repo_group_home_slash', '/%(repo_group_name)s/', ['repo_group_name']);
299 pyroutes.register('user_group_members_data', '/_admin/user_groups/%(user_group_id)s/members', ['user_group_id']);
300 pyroutes.register('edit_user_group_perms_summary', '/_admin/user_groups/%(user_group_id)s/edit/permissions_summary', ['user_group_id']);
301 pyroutes.register('edit_user_group_perms_summary_json', '/_admin/user_groups/%(user_group_id)s/edit/permissions_summary/json', ['user_group_id']);
302 pyroutes.register('edit_user_group', '/_admin/user_groups/%(user_group_id)s/edit', ['user_group_id']);
303 pyroutes.register('user_groups_update', '/_admin/user_groups/%(user_group_id)s/update', ['user_group_id']);
304 pyroutes.register('edit_user_group_global_perms', '/_admin/user_groups/%(user_group_id)s/edit/global_permissions', ['user_group_id']);
305 pyroutes.register('edit_user_group_global_perms_update', '/_admin/user_groups/%(user_group_id)s/edit/global_permissions/update', ['user_group_id']);
306 pyroutes.register('edit_user_group_perms', '/_admin/user_groups/%(user_group_id)s/edit/permissions', ['user_group_id']);
307 pyroutes.register('edit_user_group_perms_update', '/_admin/user_groups/%(user_group_id)s/edit/permissions/update', ['user_group_id']);
308 pyroutes.register('edit_user_group_advanced', '/_admin/user_groups/%(user_group_id)s/edit/advanced', ['user_group_id']);
309 pyroutes.register('edit_user_group_advanced_sync', '/_admin/user_groups/%(user_group_id)s/edit/advanced/sync', ['user_group_id']);
310 pyroutes.register('user_groups_delete', '/_admin/user_groups/%(user_group_id)s/delete', ['user_group_id']);
332 pyroutes.register('repo_group_integrations_create', '/%(repo_group_name)s/_settings/integrations/%(integration)s/new', ['repo_group_name', 'integration']);
333 pyroutes.register('repo_group_integrations_edit', '/%(repo_group_name)s/_settings/integrations/%(integration)s/%(integration_id)s', ['repo_group_name', 'integration', 'integration_id']);
334 pyroutes.register('repo_group_integrations_home', '/%(repo_group_name)s/_settings/integrations', ['repo_group_name']);
335 pyroutes.register('repo_group_integrations_list', '/%(repo_group_name)s/_settings/integrations/%(integration)s', ['repo_group_name', 'integration']);
336 pyroutes.register('repo_group_integrations_new', '/%(repo_group_name)s/_settings/integrations/new', ['repo_group_name']);
337 pyroutes.register('repo_group_list_data', '/_repo_groups', []);
338 pyroutes.register('repo_group_new', '/_admin/repo_group/new', []);
339 pyroutes.register('repo_groups', '/_admin/repo_groups', []);
340 pyroutes.register('repo_groups_data', '/_admin/repo_groups_data', []);
341 pyroutes.register('repo_integrations_create', '/%(repo_name)s/settings/integrations/%(integration)s/new', ['repo_name', 'integration']);
342 pyroutes.register('repo_integrations_edit', '/%(repo_name)s/settings/integrations/%(integration)s/%(integration_id)s', ['repo_name', 'integration', 'integration_id']);
343 pyroutes.register('repo_integrations_home', '/%(repo_name)s/settings/integrations', ['repo_name']);
344 pyroutes.register('repo_integrations_list', '/%(repo_name)s/settings/integrations/%(integration)s', ['repo_name', 'integration']);
345 pyroutes.register('repo_integrations_new', '/%(repo_name)s/settings/integrations/new', ['repo_name']);
346 pyroutes.register('repo_list_data', '/_repos', []);
347 pyroutes.register('repo_new', '/_admin/repos/new', []);
348 pyroutes.register('repo_nodetree_full', '/%(repo_name)s/nodetree_full/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']);
349 pyroutes.register('repo_nodetree_full:default_path', '/%(repo_name)s/nodetree_full/%(commit_id)s/', ['repo_name', 'commit_id']);
350 pyroutes.register('repo_refs_changelog_data', '/%(repo_name)s/refs-data-changelog', ['repo_name']);
351 pyroutes.register('repo_refs_data', '/%(repo_name)s/refs-data', ['repo_name']);
352 pyroutes.register('repo_reviewers', '/%(repo_name)s/settings/review/rules', ['repo_name']);
353 pyroutes.register('repo_reviewers_review_rule_delete', '/%(repo_name)s/settings/review/rules/%(rule_id)s/delete', ['repo_name', 'rule_id']);
354 pyroutes.register('repo_reviewers_review_rule_edit', '/%(repo_name)s/settings/review/rules/%(rule_id)s', ['repo_name', 'rule_id']);
355 pyroutes.register('repo_reviewers_review_rule_new', '/%(repo_name)s/settings/review/rules/new', ['repo_name']);
356 pyroutes.register('repo_stats', '/%(repo_name)s/repo_stats/%(commit_id)s', ['repo_name', 'commit_id']);
357 pyroutes.register('repo_summary', '/%(repo_name)s', ['repo_name']);
358 pyroutes.register('repo_summary_commits', '/%(repo_name)s/summary-commits', ['repo_name']);
359 pyroutes.register('repo_summary_explicit', '/%(repo_name)s/summary', ['repo_name']);
360 pyroutes.register('repo_summary_slash', '/%(repo_name)s/', ['repo_name']);
361 pyroutes.register('repos', '/_admin/repos', []);
362 pyroutes.register('repos_data', '/_admin/repos_data', []);
363 pyroutes.register('reset_password', '/_admin/password_reset', []);
364 pyroutes.register('reset_password_confirmation', '/_admin/password_reset_confirmation', []);
365 pyroutes.register('robots', '/robots.txt', []);
366 pyroutes.register('rss_feed_home', '/%(repo_name)s/feed-rss', ['repo_name']);
367 pyroutes.register('rss_feed_home_old', '/%(repo_name)s/feed/rss', ['repo_name']);
311 368 pyroutes.register('search', '/_admin/search', []);
312 369 pyroutes.register('search_repo', '/%(repo_name)s/_search', ['repo_name']);
313 370 pyroutes.register('search_repo_alt', '/%(repo_name)s/search', ['repo_name']);
314 371 pyroutes.register('search_repo_group', '/%(repo_group_name)s/_search', ['repo_group_name']);
315 pyroutes.register('user_profile', '/_profiles/%(username)s', ['username']);
372 pyroutes.register('store_user_session_value', '/_store_session_attr', []);
373 pyroutes.register('strip_check', '/%(repo_name)s/settings/strip_check', ['repo_name']);
374 pyroutes.register('strip_execute', '/%(repo_name)s/settings/strip_execute', ['repo_name']);
375 pyroutes.register('tags_home', '/%(repo_name)s/tags', ['repo_name']);
376 pyroutes.register('toggle_following', '/_admin/toggle_following', []);
377 pyroutes.register('upload_file', '/_file_store/upload', []);
378 pyroutes.register('user_autocomplete_data', '/_users', []);
379 pyroutes.register('user_create_personal_repo_group', '/_admin/users/%(user_id)s/create_repo_group', ['user_id']);
380 pyroutes.register('user_delete', '/_admin/users/%(user_id)s/delete', ['user_id']);
381 pyroutes.register('user_disable_force_password_reset', '/_admin/users/%(user_id)s/password_reset_disable', ['user_id']);
382 pyroutes.register('user_edit', '/_admin/users/%(user_id)s/edit', ['user_id']);
383 pyroutes.register('user_edit_advanced', '/_admin/users/%(user_id)s/edit/advanced', ['user_id']);
384 pyroutes.register('user_edit_global_perms', '/_admin/users/%(user_id)s/edit/global_permissions', ['user_id']);
385 pyroutes.register('user_edit_global_perms_update', '/_admin/users/%(user_id)s/edit/global_permissions/update', ['user_id']);
386 pyroutes.register('user_enable_force_password_reset', '/_admin/users/%(user_id)s/password_reset_enable', ['user_id']);
387 pyroutes.register('user_group_autocomplete_data', '/_user_groups', []);
388 pyroutes.register('user_group_members_data', '/_admin/user_groups/%(user_group_id)s/members', ['user_group_id']);
316 389 pyroutes.register('user_group_profile', '/_profile_user_group/%(user_group_name)s', ['user_group_name']);
317 pyroutes.register('my_account_profile', '/_admin/my_account/profile', []);
318 pyroutes.register('my_account_edit', '/_admin/my_account/edit', []);
319 pyroutes.register('my_account_update', '/_admin/my_account/update', []);
320 pyroutes.register('my_account_password', '/_admin/my_account/password', []);
321 pyroutes.register('my_account_password_update', '/_admin/my_account/password/update', []);
322 pyroutes.register('my_account_auth_tokens_view', '/_admin/my_account/auth_tokens/view', []);
323 pyroutes.register('my_account_auth_tokens_delete', '/_admin/my_account/auth_tokens/delete', []);
324 pyroutes.register('my_account_ssh_keys', '/_admin/my_account/ssh_keys', []);
325 pyroutes.register('my_account_ssh_keys_generate', '/_admin/my_account/ssh_keys/generate', []);
326 pyroutes.register('my_account_ssh_keys_add', '/_admin/my_account/ssh_keys/new', []);
327 pyroutes.register('my_account_ssh_keys_delete', '/_admin/my_account/ssh_keys/delete', []);
328 pyroutes.register('my_account_user_group_membership', '/_admin/my_account/user_group_membership', []);
329 pyroutes.register('my_account_emails', '/_admin/my_account/emails', []);
330 pyroutes.register('my_account_emails_add', '/_admin/my_account/emails/new', []);
331 pyroutes.register('my_account_emails_delete', '/_admin/my_account/emails/delete', []);
332 pyroutes.register('my_account_repos', '/_admin/my_account/repos', []);
333 pyroutes.register('my_account_watched', '/_admin/my_account/watched', []);
334 pyroutes.register('my_account_bookmarks', '/_admin/my_account/bookmarks', []);
335 pyroutes.register('my_account_bookmarks_update', '/_admin/my_account/bookmarks/update', []);
336 pyroutes.register('my_account_goto_bookmark', '/_admin/my_account/bookmark/%(bookmark_id)s', ['bookmark_id']);
337 pyroutes.register('my_account_perms', '/_admin/my_account/perms', []);
338 pyroutes.register('my_account_notifications', '/_admin/my_account/notifications', []);
339 pyroutes.register('my_account_notifications_toggle_visibility', '/_admin/my_account/toggle_visibility', []);
340 pyroutes.register('my_account_pullrequests', '/_admin/my_account/pull_requests', []);
341 pyroutes.register('my_account_pullrequests_data', '/_admin/my_account/pull_requests/data', []);
342 pyroutes.register('notifications_show_all', '/_admin/notifications', []);
343 pyroutes.register('notifications_mark_all_read', '/_admin/notifications/mark_all_read', []);
344 pyroutes.register('notifications_show', '/_admin/notifications/%(notification_id)s', ['notification_id']);
345 pyroutes.register('notifications_update', '/_admin/notifications/%(notification_id)s/update', ['notification_id']);
346 pyroutes.register('notifications_delete', '/_admin/notifications/%(notification_id)s/delete', ['notification_id']);
347 pyroutes.register('my_account_notifications_test_channelstream', '/_admin/my_account/test_channelstream', []);
348 pyroutes.register('gists_show', '/_admin/gists', []);
349 pyroutes.register('gists_new', '/_admin/gists/new', []);
350 pyroutes.register('gists_create', '/_admin/gists/create', []);
351 pyroutes.register('gist_show', '/_admin/gists/%(gist_id)s', ['gist_id']);
352 pyroutes.register('gist_delete', '/_admin/gists/%(gist_id)s/delete', ['gist_id']);
353 pyroutes.register('gist_edit', '/_admin/gists/%(gist_id)s/edit', ['gist_id']);
354 pyroutes.register('gist_edit_check_revision', '/_admin/gists/%(gist_id)s/edit/check_revision', ['gist_id']);
355 pyroutes.register('gist_update', '/_admin/gists/%(gist_id)s/update', ['gist_id']);
356 pyroutes.register('gist_show_rev', '/_admin/gists/%(gist_id)s/%(revision)s', ['gist_id', 'revision']);
357 pyroutes.register('gist_show_formatted', '/_admin/gists/%(gist_id)s/%(revision)s/%(format)s', ['gist_id', 'revision', 'format']);
358 pyroutes.register('gist_show_formatted_path', '/_admin/gists/%(gist_id)s/%(revision)s/%(format)s/%(f_path)s', ['gist_id', 'revision', 'format', 'f_path']);
359 pyroutes.register('debug_style_home', '/_admin/debug_style', []);
360 pyroutes.register('debug_style_email', '/_admin/debug_style/email/%(email_id)s', ['email_id']);
361 pyroutes.register('debug_style_email_plain_rendered', '/_admin/debug_style/email-rendered/%(email_id)s', ['email_id']);
362 pyroutes.register('debug_style_template', '/_admin/debug_style/t/%(t_path)s', ['t_path']);
363 pyroutes.register('apiv2', '/_admin/api', []);
364 pyroutes.register('admin_settings_license', '/_admin/settings/license', []);
365 pyroutes.register('admin_settings_license_unlock', '/_admin/settings/license_unlock', []);
366 pyroutes.register('login', '/_admin/login', []);
367 pyroutes.register('register', '/_admin/register', []);
368 pyroutes.register('repo_reviewers_review_rule_new', '/%(repo_name)s/settings/review/rules/new', ['repo_name']);
369 pyroutes.register('repo_reviewers_review_rule_edit', '/%(repo_name)s/settings/review/rules/%(rule_id)s', ['repo_name', 'rule_id']);
370 pyroutes.register('repo_reviewers_review_rule_delete', '/%(repo_name)s/settings/review/rules/%(rule_id)s/delete', ['repo_name', 'rule_id']);
371 pyroutes.register('plugin_admin_chat', '/_admin/plugin_admin_chat/%(action)s', ['action']);
372 pyroutes.register('edit_user_auth_tokens', '/_admin/users/%(user_id)s/edit/auth_tokens', ['user_id']);
373 pyroutes.register('edit_user_auth_tokens_add', '/_admin/users/%(user_id)s/edit/auth_tokens/new', ['user_id']);
374 pyroutes.register('admin_settings_scheduler_show_tasks', '/_admin/settings/scheduler/_tasks', []);
375 pyroutes.register('admin_settings_scheduler_show_all', '/_admin/settings/scheduler', []);
376 pyroutes.register('admin_settings_scheduler_new', '/_admin/settings/scheduler/new', []);
377 pyroutes.register('admin_settings_scheduler_create', '/_admin/settings/scheduler/create', []);
378 pyroutes.register('admin_settings_scheduler_edit', '/_admin/settings/scheduler/%(schedule_id)s', ['schedule_id']);
379 pyroutes.register('admin_settings_scheduler_update', '/_admin/settings/scheduler/%(schedule_id)s/update', ['schedule_id']);
380 pyroutes.register('admin_settings_scheduler_delete', '/_admin/settings/scheduler/%(schedule_id)s/delete', ['schedule_id']);
381 pyroutes.register('admin_settings_scheduler_execute', '/_admin/settings/scheduler/%(schedule_id)s/execute', ['schedule_id']);
382 pyroutes.register('admin_settings_automation', '/_admin/settings/automation', []);
383 pyroutes.register('admin_settings_automation_update', '/_admin/settings/automation/%(entry_id)s/update', ['entry_id']);
384 pyroutes.register('admin_permissions_branch', '/_admin/permissions/branch', []);
385 pyroutes.register('admin_permissions_branch_update', '/_admin/permissions/branch/update', []);
386 pyroutes.register('my_account_auth_tokens', '/_admin/my_account/auth_tokens', []);
387 pyroutes.register('my_account_auth_tokens_add', '/_admin/my_account/auth_tokens/new', []);
388 pyroutes.register('my_account_external_identity', '/_admin/my_account/external-identity', []);
389 pyroutes.register('my_account_external_identity_delete', '/_admin/my_account/external-identity/delete', []);
390 pyroutes.register('pullrequest_draft_comments_submit', '/%(repo_name)s/pull-request/%(pull_request_id)s/draft_comments_submit', ['repo_name', 'pull_request_id']);
391 pyroutes.register('commit_draft_comments_submit', '/%(repo_name)s/changeset/%(commit_id)s/draft_comments_submit', ['repo_name', 'commit_id']);
392 pyroutes.register('repo_artifacts_list', '/%(repo_name)s/artifacts', ['repo_name']);
393 pyroutes.register('repo_artifacts_data', '/%(repo_name)s/artifacts_data', ['repo_name']);
394 pyroutes.register('repo_artifacts_new', '/%(repo_name)s/artifacts/new', ['repo_name']);
395 pyroutes.register('repo_artifacts_get', '/%(repo_name)s/artifacts/download/%(uid)s', ['repo_name', 'uid']);
396 pyroutes.register('repo_artifacts_store', '/%(repo_name)s/artifacts/store', ['repo_name']);
397 pyroutes.register('repo_artifacts_info', '/%(repo_name)s/artifacts/info/%(uid)s', ['repo_name', 'uid']);
398 pyroutes.register('repo_artifacts_delete', '/%(repo_name)s/artifacts/delete/%(uid)s', ['repo_name', 'uid']);
399 pyroutes.register('repo_artifacts_update', '/%(repo_name)s/artifacts/update/%(uid)s', ['repo_name', 'uid']);
400 pyroutes.register('repo_automation', '/%(repo_name)s/settings/automation', ['repo_name']);
401 pyroutes.register('repo_automation_update', '/%(repo_name)s/settings/automation/%(entry_id)s/update', ['repo_name', 'entry_id']);
402 pyroutes.register('edit_repo_remote_push', '/%(repo_name)s/settings/remote/push', ['repo_name']);
403 pyroutes.register('edit_repo_perms_branch', '/%(repo_name)s/settings/branch_permissions', ['repo_name']);
404 pyroutes.register('edit_repo_perms_branch_delete', '/%(repo_name)s/settings/branch_permissions/%(rule_id)s/delete', ['repo_name', 'rule_id']);
390 pyroutes.register('user_groups', '/_admin/user_groups', []);
391 pyroutes.register('user_groups_create', '/_admin/user_groups/create', []);
392 pyroutes.register('user_groups_data', '/_admin/user_groups_data', []);
393 pyroutes.register('user_groups_delete', '/_admin/user_groups/%(user_group_id)s/delete', ['user_group_id']);
394 pyroutes.register('user_groups_new', '/_admin/user_groups/new', []);
395 pyroutes.register('user_groups_update', '/_admin/user_groups/%(user_group_id)s/update', ['user_group_id']);
396 pyroutes.register('user_notice_dismiss', '/_admin/users/%(user_id)s/notice_dismiss', ['user_id']);
397 pyroutes.register('user_profile', '/_profiles/%(username)s', ['username']);
398 pyroutes.register('user_update', '/_admin/users/%(user_id)s/update', ['user_id']);
399 pyroutes.register('users', '/_admin/users', []);
400 pyroutes.register('users_create', '/_admin/users/create', []);
401 pyroutes.register('users_data', '/_admin/users_data', []);
402 pyroutes.register('users_new', '/_admin/users/new', []);
405 403 }
@@ -233,7 +233,7 b' def write_usage_data(event):'
233 233
234 234 # write every 6th hour
235 235 if age_in_min and age_in_min < 60 * 6:
236 log.debug('Usage file created %s minutes ago, skipping (threashold: %s)...',
236 log.debug('Usage file created %s minutes ago, skipping (threshold: %s minutes)...',
237 237 age_in_min, 60 * 6)
238 238 return
239 239
General Comments 0
You need to be logged in to leave comments. Login now