Source code for oioioi.base.urls

from django.conf import settings
from django.urls import include, re_path
from oioioi.base import admin, api, views
from oioioi.base.main_page import main_page_view
from rest_framework.documentation import include_docs_urls
from two_factor.urls import urlpatterns as tf_urls

[docs]app_name = 'base'
[docs]urlpatterns = [ re_path(r'', include(tf_urls)), re_path(r'^force_error/$', views.force_error_view, name='force_error'), re_path( r'^force_permission_denied/$', views.force_permission_denied_view, name='force_permission_denied', ), re_path(r'^edit_profile/$', views.edit_profile_view, name='edit_profile'), re_path(r'^logout/$', views.logout_view, name='logout'), re_path(r'^translate/$', views.translate_view, name='translate'), re_path(r'^login/$', views.login_view, name='login'), re_path(r'^delete_account/$', views.delete_account_view, name='delete_account'), re_path(r'^generate_key/$', views.generate_key_view, name='generate_key'), # don't include without appropriate patching! admincdocs provides its own # login view which can be used to bypass 2FA. # re_path(r'^admin/doc/', include('django.contrib.admindocs.urls')), re_path(r'^admin/logout/$', views.logout_view), re_path(r'^admin/', admin.site.urls), ]
urlpatterns += [ re_path(r'^$', main_page_view, name='index'), ]
[docs]noncontest_patterns = []
if settings.USE_API: urlpatterns += [ re_path(r'^api/token', api.api_token, name='api_token'), re_path(r'^api/regenerate_token', api.regenerate_token, name='api_regenerate_key'), ] noncontest_patterns += [ # the c prefix doesn't make sense for non contest related endpoints as # well as for the documentation which anyway does not require authorization re_path(r'^api/docs/', include_docs_urls(title='OIOIOI API'), name='api_docs'), re_path(r'^api/ping', api.ping), re_path(r'^api/auth_ping', api.auth_ping), ]