Implement login/logout/edit in profiles app

This commit is contained in:
Trever Fischer
2012-02-19 17:47:51 -05:00
parent ecf02a7ac7
commit 629823dd0d
6 changed files with 65 additions and 0 deletions

View File

@@ -1,5 +1,11 @@
from django.conf.urls.defaults import patterns, include, url
from django.views.generic.simple import direct_to_template
urlpatterns = patterns('profiles',
url(r'^me$', 'views.profile', name='user_profile'),
url(r'^edit$', 'views.edit'),
url(r'^login$', 'views.login'),
url(r'^logout$', 'views.logout'),
url(r'^disabled$', direct_to_template, {'template': 'profiles/disabled.html'}, name='disabled_account')
)

View File

@@ -1,7 +1,46 @@
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.core.urlresolvers import reverse
import django.contrib.auth
from django.contrib.auth import authenticate, login
import forms
@login_required
def profile(request):
return render_to_response('profiles/profile.html', context_instance = RequestContext(request))
@login_required
def edit(request):
if request.method == 'POST':
form = forms.ProfileForm(request.POST, instance=request.user.get_profile())
else:
form = forms.ProfileForm(instance=request.user.get_profile())
if form.is_valid():
profile = request.user.get_profile()
profile.mc_username = form.cleaned_data['mc_username']
profile.save()
return HttpResponseRedirect(reverse('profiles.views.profile'))
return render_to_response('profiles/edit.html', {"form":form}, context_instance = RequestContext(request))
def logout(request):
django.contrib.auth.logout(request)
return HttpResponseRedirect("/")
def login(request):
if request.method == 'POST':
form = forms.LoginForm(request.POST)
else:
form = forms.LoginForm()
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
django.contrib.auth.login(request, user)
return HttpResponseRedirect("/")
else:
return HttpResponseRedirect(reverse('disabled_account'))
return render_to_response('profiles/login.html', {"login_form":form}, context_instance = RequestContext(request))

View File

@@ -0,0 +1,5 @@
<form method="POST" action="{% url profiles.views.login %}">
{% csrf_token %}
{{login_form.as_p}}
<input type="submit" value="Login"/>
</form>

View File

@@ -0,0 +1,9 @@
{% extends "base.html" %}
{% block content %}
<form method="POST" action="{%url profiles.views.edit %}">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit"/>
</form>
{% endblock %}

View File

@@ -0,0 +1,4 @@
{% extends 'base.html' %}
{% block content %}
{% include 'profiles/_login_form.html' %}
{% endblock %}

View File

@@ -3,4 +3,6 @@
{%block content %}
<p>Welcome, {{ user.username }}</p>
<a href="{%url profiles.views.edit %}">Edit profile</a>
{%endblock%}