99 lines
3.3 KiB
Python
99 lines
3.3 KiB
Python
# coding: utf-8
|
|
import simplejson as json
|
|
import datetime
|
|
|
|
from django.http import HttpResponse, HttpResponseRedirect
|
|
from django.conf import settings
|
|
from django.contrib.auth import login
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.contrib.auth.forms import AuthenticationForm
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
from django.core.urlresolvers import reverse
|
|
from django.shortcuts import render_to_response, get_object_or_404
|
|
from django.template import RequestContext
|
|
from django.views.decorators.csrf import csrf_protect
|
|
from django.shortcuts import get_object_or_404
|
|
from django.contrib import messages
|
|
|
|
|
|
from models import *
|
|
from forms import *
|
|
|
|
from pdf import render_to_pdf
|
|
|
|
def index(request):
|
|
if request.method == "POST":
|
|
form = AuthenticationForm(data=request.POST)
|
|
if form.is_valid():
|
|
# Log the user in.
|
|
login(request, form.get_user())
|
|
else:
|
|
if request.user.is_authenticated():
|
|
return HttpResponseRedirect( reverse('main.views.system') )
|
|
else:
|
|
form = AuthenticationForm(request)
|
|
|
|
return render_to_response('public/index.html', locals(), context_instance=RequestContext(request))
|
|
|
|
@login_required
|
|
def new(request):
|
|
if request.method == "POST":
|
|
form = TempUserForm(data=request.POST)
|
|
if form.is_valid():
|
|
duration = datetime.timedelta(days=form.cleaned_data['duration'])
|
|
expires = datetime.datetime.now() + duration
|
|
log = TempUserLog(
|
|
who=form.cleaned_data['who'],
|
|
why=form.cleaned_data['why'],
|
|
expires=expires,
|
|
issued_by=request.user)
|
|
#TODO : generate username and pasword
|
|
#TODO : save in radiusdb
|
|
log.save()
|
|
messages.success(request, log.id) # Store the id in session, since we are redirecting
|
|
return HttpResponseRedirect( reverse('main.views.new_created') )
|
|
else:
|
|
form = TempUserForm(request.POST)
|
|
return render_to_response('private/new.html', locals(), context_instance=RequestContext(request))
|
|
form = TempUserForm()
|
|
|
|
return render_to_response('private/new.html', locals(), context_instance=RequestContext(request))
|
|
|
|
@login_required
|
|
def new_created(request):
|
|
# Retrieve the last id from session
|
|
storage = messages.get_messages(request)
|
|
msgs = [message for message in storage]
|
|
tempuserlog_id = msgs[0].message
|
|
return render_to_response('private/new_created.html', locals(), context_instance=RequestContext(request))
|
|
|
|
|
|
@login_required
|
|
def list_users(request):
|
|
# generic view?
|
|
users = TempUserLog.objects.all()
|
|
return render_to_response('private/list.html', locals(), context_instance=RequestContext(request))
|
|
|
|
@login_required
|
|
def system(request):
|
|
return render_to_response('private/system.html', locals(), context_instance=RequestContext(request))
|
|
|
|
|
|
@login_required
|
|
def download_pdf(request, tempuserlog_id=-1):
|
|
log = get_object_or_404(TempUserLog, pk=tempuserlog_id)
|
|
|
|
return render_to_pdf(
|
|
'pdf/new_temp_user.html',
|
|
{
|
|
'pagesize':'A4',
|
|
'log': log,
|
|
}
|
|
)
|
|
|
|
def client_status(request):
|
|
# example json view
|
|
data = { 'example' : 'json_view' }
|
|
return HttpResponse(json.dumps(data), content_type='application/javascript; charset=utf8')
|
|
|