1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# vim: set sw=4 sts=4 et :
# Copyright: 2008 Gentoo Foundation
# Author(s): Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
# License: AGPL-3
#
# Immortal lh!
#
import process
from master.models import User, Job
from django.shortcuts import *
from django.conf import settings
from django.http import HttpResponseRedirect
from django.template import RequestContext
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.decorators import login_required
from django.views.decorators.cache import never_cache
details = {'media_prefix': settings.MEDIA_PREFIX}
def front_page(request):
return render_to_response('frontpage.html', details,
context_instance=RequestContext(request))
@never_cache
def login(request):
"""Displays the login form and handles the login action."""
redirect_to = request.REQUEST.get('next', '')
if request.method == "POST":
form = AuthenticationForm(data=request.POST)
if form.is_valid():
# Light security check -- make sure redirect_to isn't garbage.
if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
redirect_to = '/~%s' % form.get_user()
from django.contrib.auth import login
login(request, form.get_user())
if request.session.test_cookie_worked():
request.session.delete_test_cookie()
return HttpResponseRedirect(redirect_to)
else:
form = AuthenticationForm(request)
request.session.set_test_cookie()
details['form'] = form
details['next'] = redirect_to
return render_to_response('registration/login.html', details,
context_instance=RequestContext(request))
def user_page(request, username):
user = get_object_or_404(User, username=username)
for i in ('first_name', 'last_name', 'email',):
details[i] = getattr(user, i)
return render_to_response('userpage.html', details,
context_instance=RequestContext(request))
def jobs_page(request, username=None):
jobs = None
if username:
user = get_object_or_404(User, username=username)
jobs = get_list_or_404(Job, maintainer=user)
else:
jobs = get_list_or_404(Job)
for job in jobs:
job.stage_url = process.generate_stage_url(job)
details['jobs'] = jobs
return render_to_response('jobs.html', details,
context_instance=RequestContext(request))
|