mirror of
https://github.com/nikdoof/test-auth.git
synced 2025-12-14 14:52:15 +00:00
Switch EVE API access log view to class based views
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
<tr><th>Service ID</th><th>Date / Time</th><th>API</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for log in logs %}
|
||||
{% for log in object_list %}
|
||||
<tr>
|
||||
<td>{{ log.service }}</td>
|
||||
<td>{{ log.time_access }}</td>
|
||||
|
||||
@@ -9,7 +9,7 @@ urlpatterns = patterns('',
|
||||
url(r'^eveapi/update/(?P<userid>\d+)/$', views.eveapi_update, name="eveapi-update"),
|
||||
url(r'^eveapi/delete/(?P<userid>\d+)/$', views.eveapi_del, name="eveapi-delete"),
|
||||
url(r'^eveapi/refresh/(?P<userid>\d+)/$', views.eveapi_refresh, name="eveapi-refresh"),
|
||||
url(r'^eveapi/log/(?P<userid>\d+)/$', views.eveapi_log, name="eveapi-log"),
|
||||
url(r'^eveapi/log/(?P<userid>\d+)/$', login_required(views.EVEAPILogView.as_view()), name="eveapi-log"),
|
||||
url(r'^eveapi/access/(?P<slug>\d+)/$', login_required(views.EVEAPIAccessView.as_view()), name="eveapi-accessview"),
|
||||
|
||||
url(r'^character/list/$', views.eveapi_character, name="eveapi-characters-list"),
|
||||
|
||||
@@ -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:
|
||||
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
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
<td id="api-time-{{ acc.api_user_id }}">{{ acc.api_last_updated|naturaltimediff }}</td>
|
||||
<td>{% ifswitch api-disableprocessing %}{% else %}<a href="{% url eve_api.views.eveapi_refresh acc.api_user_id %}" onclick="javascript:refresh_apikey({{ acc.api_user_id }}); return false;">Refresh</a>,
|
||||
<a href="{% url eve_api.views.eveapi_update acc.api_user_id %}">Update Key</a>, {% endifswitch %}
|
||||
<a href="{% url eve_api.views.eveapi_log acc.api_user_id %}">Logs</a>{% ifswitch eve-keydelete %},
|
||||
<a href="{% url eveapi-log acc.api_user_id %}">Logs</a>{% ifswitch eve-keydelete %},
|
||||
<a href="{% url eve_api.views.eveapi_del acc.api_user_id %}">Delete</a>{% endifswitch %}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
Reference in New Issue
Block a user