From c4f3109452a74e58d763ec3bd0ad8f3d2bf9e5eb Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Fri, 8 Jun 2012 16:02:35 +0100 Subject: [PATCH] Make use of django-braces mixins in eve_api --- app/eve_api/urls.py | 22 +++++++++++----------- app/eve_api/views/base.py | 23 ++++++++++++----------- requirements.txt | 1 + 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/app/eve_api/urls.py b/app/eve_api/urls.py index 32bd540..06d7409 100644 --- a/app/eve_api/urls.py +++ b/app/eve_api/urls.py @@ -5,20 +5,20 @@ from django.contrib.auth.decorators import login_required from eve_api import views urlpatterns = patterns('', - url(r'^eveapi/add/$', login_required(views.EVEAPICreateView.as_view()), name="eveapi-add"), - url(r'^eveapi/update/(?P\d+)/$', login_required(views.EVEAPIUpdateView.as_view()), name="eveapi-update"), - url(r'^eveapi/delete/(?P\d+)/$', login_required(views.EVEAPIDeleteView.as_view()), name="eveapi-delete"), - url(r'^eveapi/refresh/(?P\d+)/$', login_required(views.EVEAPIRefreshView.as_view()), name="eveapi-refresh"), - url(r'^eveapi/log/(?P\d+)/$', login_required(views.EVEAPILogView.as_view()), name="eveapi-log"), - url(r'^eveapi/access/(?P\d+)/$', login_required(views.EVEAPIAccessView.as_view()), name="eveapi-accessview"), + url(r'^eveapi/add/$', views.EVEAPICreateView.as_view(), name="eveapi-add"), + url(r'^eveapi/update/(?P\d+)/$', views.EVEAPIUpdateView.as_view(), name="eveapi-update"), + url(r'^eveapi/delete/(?P\d+)/$', views.EVEAPIDeleteView.as_view(), name="eveapi-delete"), + url(r'^eveapi/refresh/(?P\d+)/$', views.EVEAPIRefreshView.as_view(), name="eveapi-refresh"), + url(r'^eveapi/log/(?P\d+)/$', views.EVEAPILogView.as_view(), name="eveapi-log"), + url(r'^eveapi/access/(?P\d+)/$', views.EVEAPIAccessView.as_view(), name="eveapi-accessview"), - url(r'^character/list/$', login_required(views.EVEAPICharacterListView.as_view()), name="eveapi-characters-list"), - url(r'^character/(?P\d+)/$', login_required(views.EVEAPICharacterDetailView.as_view()), name="eveapi-character"), + url(r'^character/list/$', views.EVEAPICharacterListView.as_view(), name="eveapi-characters-list"), + url(r'^character/(?P\d+)/$', views.EVEAPICharacterDetailView.as_view(), name="eveapi-character"), - url(r'^corporation/(?P\d+)/$', login_required(views.EVEAPICorporationView.as_view()), name="eveapi-corporation"), - url(r'^corporation/(?P\d+)/export/$', login_required(views.EVEAPICorporationMembersCSV.as_view()), name="eveapi-corporation-members-csv"), + url(r'^corporation/(?P\d+)/$', views.EVEAPICorporationView.as_view(), name="eveapi-corporation"), + url(r'^corporation/(?P\d+)/export/$', views.EVEAPICorporationMembersCSV.as_view(), name="eveapi-corporation-members-csv"), - url(r'^alliance/(?P\d+)/$', login_required(views.EVEAPIAllianceView.as_view()), name="eveapi-alliance"), + url(r'^alliance/(?P\d+)/$', views.EVEAPIAllianceView.as_view(), name="eveapi-alliance"), ) try: diff --git a/app/eve_api/views/base.py b/app/eve_api/views/base.py index e10c6f0..1e730d4 100644 --- a/app/eve_api/views/base.py +++ b/app/eve_api/views/base.py @@ -12,6 +12,7 @@ from django.contrib.auth.decorators import login_required import celery from gargoyle import gargoyle +from braces.views import LoginRequiredMixin from eve_proxy.models import ApiAccessLog, CachedDocument from eve_proxy.exceptions import DocumentRetrievalError @@ -23,7 +24,7 @@ from eve_api.utils import basic_xml_parse_doc from eve_api.views.mixins import DetailPaginationMixin, CSVResponseMixin -class EVEAPICreateView(CreateView): +class EVEAPICreateView(LoginRequiredMixin, CreateView): """Adds a EVE API key to the system""" model = EVEAccount @@ -52,7 +53,7 @@ class EVEAPICreateView(CreateView): return {'user': self.request.user.pk} -class EVEAPIUpdateView(UpdateView): +class EVEAPIUpdateView(LoginRequiredMixin, UpdateView): """Updates a existing API key stored in the system""" model = EVEAccount @@ -91,7 +92,7 @@ class EVEAPIUpdateView(UpdateView): return HttpResponseRedirect(self.get_success_url()) -class EVEAPIDeleteView(DeleteView): +class EVEAPIDeleteView(LoginRequiredMixin, DeleteView): """Deletes a EVE API key that exists within the system after confirmation""" model = EVEAccount @@ -114,7 +115,7 @@ class EVEAPIDeleteView(DeleteView): return HttpResponseRedirect(self.get_success_url()) -class EVEAPIRefreshView(SingleObjectMixin, View): +class EVEAPIRefreshView(LoginRequiredMixin, SingleObjectMixin, View): """Force a refresh of a EVE API key, accepts requests via AJAX or normal requests""" model = EVEAccount @@ -138,7 +139,7 @@ class EVEAPIRefreshView(SingleObjectMixin, View): return HttpResponseRedirect('/') -class EVEAPILogView(ListView): +class EVEAPILogView(LoginRequiredMixin, ListView): """Shows EVE API access log for a particular API key""" model = ApiAccessLog @@ -162,7 +163,7 @@ class EVEAPILogView(ListView): return self.model.objects.filter(userid=self.userid).order_by('-time_access')[:limit] -class EVEAPICharacterDetailView(DetailView): +class EVEAPICharacterDetailView(LoginRequiredMixin, DetailView): model = EVEPlayerCharacter template_name = 'eve_api/character.html' @@ -202,7 +203,7 @@ class EVEAPICharacterDetailView(DetailView): return ctx -class EVEAPICharacterListView(TemplateView): +class EVEAPICharacterListView(LoginRequiredMixin, TemplateView): template_name = 'eve_api/character_list.html' @@ -214,7 +215,7 @@ class EVEAPICharacterListView(TemplateView): return ctx -class EVEAPICorporationView(DetailPaginationMixin, DetailView): +class EVEAPICorporationView(LoginRequiredMixin, DetailPaginationMixin, DetailView): model = EVEPlayerCorporation template_name = 'eve_api/corporation.html' @@ -232,7 +233,7 @@ class EVEAPICorporationView(DetailPaginationMixin, DetailView): return ctx -class EVEAPICorporationMembersCSV(SingleObjectMixin, CSVResponseMixin, View): +class EVEAPICorporationMembersCSV(LoginRequiredMixin, SingleObjectMixin, CSVResponseMixin, View): model = EVEPlayerCorporation @@ -255,7 +256,7 @@ class EVEAPICorporationMembersCSV(SingleObjectMixin, CSVResponseMixin, View): return "%s-members_export.csv" % self.object.pk -class EVEAPIAllianceView(DetailPaginationMixin, DetailView): +class EVEAPIAllianceView(LoginRequiredMixin, DetailPaginationMixin, DetailView): model = EVEPlayerAlliance template_name= 'eve_api/alliance.html' @@ -274,7 +275,7 @@ class EVEAPIAllianceView(DetailPaginationMixin, DetailView): return ctx -class EVEAPIAccessView(DetailView): +class EVEAPIAccessView(LoginRequiredMixin, DetailView): model = EVEAccount template_name = 'eve_api/accessview.html' diff --git a/requirements.txt b/requirements.txt index 2c4dec7..7dabaf5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,6 +12,7 @@ django-jsonfield==0.8.7 South==0.7.4 django-redis-cache IPy==0.75 +-e git+https://github.com/nikdoof/django-braces.git@b573a69c06907cff74d3623f61a551ceb264cf08#egg=django-braces nexus gargoyle==0.9.0