This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
mbftns/main/views.py
T

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')