Files @ 94c56bb468cb
Branch filter:

Location: website/conservancy/urls.py

bsturmfels
Rewrite the `index` view to avoid risk of path traversal

I've simplified this view by removing the custom HTTP error handlers, Python 3.5
exception handling and adding documentation.
# Copyright 2005-2008, James Garrison
# Copyright 2010, 2012 Bradley M. Kuhn

# This software's license gives you freedom; you can copy, convey,
# propagate, redistribute, modify and/or redistribute modified versions of
# this program under the terms of the GNU Affero General Public License
# (AGPL) as published by the Free Software Foundation (FSF), either
# version 3 of the License, or (at your option) any later version of the
# AGPL published by the FSF.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero
# General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program in a file in the toplevel directory called
# "AGPLv3".  If not, see <http://www.gnu.org/licenses/>.

from django.conf.urls import url
from django.urls import include, path
from django.contrib import admin

from . import feeds, frontpage, sponsors
from .fundgoal import views as fundgoal_views
from . import views as static_views

admin.autodiscover()

urlpatterns = [
    url(r'^$', frontpage.view),
    url(r'^sponsors$', frontpage.view),
    url(r'^sponsors/$', sponsors.view),
    url(r'^sponsors/index.html$', sponsors.view),
    url(r'^admin/', admin.site.urls),
    url(r'^feeds/blog/?$', feeds.BlogFeed()),
    url(r'^feeds/news/?$', feeds.PressReleaseFeed()),
    url(r'^feeds/omnibus/?$', feeds.OmnibusFeed()),
    url(r'^feeds/?$', feeds.view),
    url(r'^news/', include('conservancy.news.urls')),
    url(r'^blog/', include('conservancy.blog.urls')),
    # formerly static templated things... (dirs with templates)
    url(r'^about', static_views.index),
    url(r'^activities', static_views.index),
    url(r'^donate', static_views.index),
    url(r'^copyleft-compliance', static_views.index, {'fundraiser_sought': 'vmware-match-0'}),
    url(r'^learn', static_views.index),
    url(r'^press', static_views.index),
    url(r'^projects', static_views.index),
    url(r'^GiveUpGitHub', static_views.index),
    url(r'^npoacct', static_views.index, {'fundraiser_sought': 'npoacct'}),
    url(r'^contractpatch', include('conservancy.contractpatch.urls')),
    url(r'^overview', static_views.index),
    url(r'^privacy-policy', static_views.index),
    url(r'^sustainer/', include('conservancy.supporter.urls')),
    url(r'^coming-soon.html', static_views.index),
    url(r'^fundraiser_data', fundgoal_views.view),
    path('assignment/', include('conservancy.assignment.urls')),
    url(r'^fossy/$', static_views.index),
    path('fossy/', include('conservancy.fossy.urls')),
    path('casts/the-corresponding-source/', include('conservancy.podjango.urls')),
    path('usethesource/', include('conservancy.usethesource.urls')),
]