diff --git a/app/eve_api/templates/eve_api/log.html b/app/eve_api/templates/eve_api/log.html
index 6d0f77c..fd30e1d 100644
--- a/app/eve_api/templates/eve_api/log.html
+++ b/app/eve_api/templates/eve_api/log.html
@@ -12,7 +12,7 @@
| Service ID | Date / Time | API |
- {% for log in logs %}
+ {% for log in object_list %}
| {{ log.service }} |
{{ log.time_access }} |
diff --git a/app/eve_api/urls.py b/app/eve_api/urls.py
index 58ab64e..f314aac 100644
--- a/app/eve_api/urls.py
+++ b/app/eve_api/urls.py
@@ -9,7 +9,7 @@ urlpatterns = patterns('',
url(r'^eveapi/update/(?P\d+)/$', views.eveapi_update, name="eveapi-update"),
url(r'^eveapi/delete/(?P\d+)/$', views.eveapi_del, name="eveapi-delete"),
url(r'^eveapi/refresh/(?P\d+)/$', views.eveapi_refresh, name="eveapi-refresh"),
- url(r'^eveapi/log/(?P\d+)/$', views.eveapi_log, name="eveapi-log"),
+ 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'^character/list/$', views.eveapi_character, name="eveapi-characters-list"),
diff --git a/app/eve_api/views/base.py b/app/eve_api/views/base.py
index 0b260a5..3de88fe 100644
--- a/app/eve_api/views/base.py
+++ b/app/eve_api/views/base.py
@@ -5,7 +5,7 @@ from django.core.urlresolvers import reverse
from django.http import HttpResponse, Http404
from django.shortcuts import render_to_response, get_object_or_404, redirect
from django.template import RequestContext
-from django.views.generic import DetailView
+from django.views.generic import DetailView, ListView
from django.contrib import messages
from django.contrib.auth.decorators import login_required
@@ -132,19 +132,27 @@ def eveapi_refresh(request, userid, post_save_redirect='/'):
return redirect(post_save_redirect)
-@login_required
-def eveapi_log(request, userid, template='eve_api/log.html'):
- """ Provides a list of access logs for a specific EVE API key """
+class EVEAPILogView(ListView):
- acc = get_object_or_404(EVEAccount, pk=userid)
- if acc and (acc.user == request.user or request.user.is_staff):
- context = {
- 'userid': userid,
- 'logs': ApiAccessLog.objects.filter(userid=userid).order_by('-time_access')[:50],
- }
- return render_to_response(template, context, context_instance=RequestContext(request))
- else:
- raise Http404
+ model = ApiAccessLog
+ template_name = 'eve_api/log.html'
+
+ def dispatch(self, request, *args, **kwargs):
+ self.userid = kwargs.pop('userid')
+ if not (get_object_or_404(EVEAccount, pk=self.userid).user == request.user or request.user.is_superuser):
+ raise Http404
+ return super(EVEAPILogView, self).dispatch(request, *args, **kwargs)
+
+ def get_context_data(self, **kwargs):
+ ctx = super(EVEAPILogView, self).get_context_data(**kwargs)
+ ctx.update({
+ 'userid': self.userid,
+ })
+ return ctx
+
+ def get_queryset(self):
+ limit = getattr(self, 'limit', 50)
+ return self.model.objects.filter(userid=self.userid).order_by('-time_access')[:limit]
@login_required
diff --git a/app/sso/templates/sso/profile.html b/app/sso/templates/sso/profile.html
index 500858e..a270b7a 100644
--- a/app/sso/templates/sso/profile.html
+++ b/app/sso/templates/sso/profile.html
@@ -100,7 +100,7 @@
{{ acc.api_last_updated|naturaltimediff }} |
{% ifswitch api-disableprocessing %}{% else %}Refresh,
Update Key, {% endifswitch %}
- Logs{% ifswitch eve-keydelete %},
+ Logs{% ifswitch eve-keydelete %},
Delete{% endifswitch %} |
{% endfor %}