diff options
author | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2008-10-04 01:56:23 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2008-10-04 02:19:46 +0530 |
commit | 17699233c8086cf05477c3174016d4db014ef16a (patch) | |
tree | 5c25b8cf49f46cd7351b39b02023b5c726f29777 /master/master/views.py | |
parent | Add a frontpage for displaying the root webpage (diff) | |
download | autotua-17699233c8086cf05477c3174016d4db014ef16a.tar.gz autotua-17699233c8086cf05477c3174016d4db014ef16a.tar.bz2 autotua-17699233c8086cf05477c3174016d4db014ef16a.zip |
Un-suck front page! Login support!
* master/icons/Makefile:
* master/icons/home.svg:
* master/master/templates/basic.html
- Replace login.svg with an edited version of logout.svg
- Add a new icon (home.svg), and it's logged-out version: none.png
- Use logout, login, home icons
- Modify header to accomodate login/logout/home icons
* master/master/templates/frontpage.html:
* master/master/media/css/frontpage.css:
- Fix the frontpage to not suck while displaying the "pieces" (the
4 large images)
* master/master/templates/registration/login.html:
* master/master/urls.py:
* master/master/views.py:
- Implement login!
- Also, implement awesome login/logout image behaviour ;p
* Using RequestContext()
* none.png/home.png are implemented in the same way
Diffstat (limited to 'master/master/views.py')
-rw-r--r-- | master/master/views.py | 44 |
1 files changed, 38 insertions, 6 deletions
diff --git a/master/master/views.py b/master/master/views.py index e1b5eba..a95892c 100644 --- a/master/master/views.py +++ b/master/master/views.py @@ -6,22 +6,53 @@ # Immortal lh! # -from django.http import HttpResponse -from django.shortcuts import * +import process from master.models import User, Job + +from django.shortcuts import * from django.conf import settings -import process +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) + 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) + return render_to_response('userpage.html', details, + context_instance=RequestContext(request)) def jobs_page(request, username=None): jobs = None @@ -33,4 +64,5 @@ def jobs_page(request, username=None): for job in jobs: job.stage_url = process.generate_stage_url(job) details['jobs'] = jobs - return render_to_response('jobs.html', details) + return render_to_response('jobs.html', details, + context_instance=RequestContext(request)) |