Implement login/logout/edit in profiles app
This commit is contained in:
@@ -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')
|
||||
)
|
||||
|
@@ -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))
|
||||
|
5
templates/profiles/_login_form.html
Normal file
5
templates/profiles/_login_form.html
Normal 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>
|
9
templates/profiles/edit.html
Normal file
9
templates/profiles/edit.html
Normal 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 %}
|
4
templates/profiles/login.html
Normal file
4
templates/profiles/login.html
Normal file
@@ -0,0 +1,4 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
{% include 'profiles/_login_form.html' %}
|
||||
{% endblock %}
|
@@ -3,4 +3,6 @@
|
||||
|
||||
{%block content %}
|
||||
<p>Welcome, {{ user.username }}</p>
|
||||
|
||||
<a href="{%url profiles.views.edit %}">Edit profile</a>
|
||||
{%endblock%}
|
||||
|
Reference in New Issue
Block a user