login/logout/register
This commit is contained in:
parent
b91cbbe8fb
commit
d3e68f5ba0
8 changed files with 101 additions and 1 deletions
0
app/__init__.py
Normal file
0
app/__init__.py
Normal file
3
app/models.py
Normal file
3
app/models.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
# Create your models here.
|
16
app/tests.py
Normal file
16
app/tests.py
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
"""
|
||||||
|
This file demonstrates writing tests using the unittest module. These will pass
|
||||||
|
when you run "manage.py test".
|
||||||
|
|
||||||
|
Replace this with more appropriate tests for your application.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
|
||||||
|
class SimpleTest(TestCase):
|
||||||
|
def test_basic_addition(self):
|
||||||
|
"""
|
||||||
|
Tests that 1 + 1 always equals 2.
|
||||||
|
"""
|
||||||
|
self.assertEqual(1 + 1, 2)
|
62
app/views.py
Normal file
62
app/views.py
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from django.shortcuts import render_to_response, get_object_or_404, get_list_or_404
|
||||||
|
from django.template import RequestContext
|
||||||
|
from django.conf import settings
|
||||||
|
from django.http import HttpResponse, HttpResponseRedirect
|
||||||
|
from django.contrib import auth
|
||||||
|
from django.contrib.auth.models import User, Group
|
||||||
|
from django.contrib.auth import authenticate
|
||||||
|
from django.core.mail import send_mail
|
||||||
|
from django.core.cache import cache
|
||||||
|
|
||||||
|
from ox.django.shortcuts import render_to_json_response
|
||||||
|
|
||||||
|
|
||||||
|
def login(request):
|
||||||
|
message = ''
|
||||||
|
if 'username' in request.POST and 'password' in request.POST:
|
||||||
|
user = authenticate(username=request.POST['username'], password=request.POST['password'])
|
||||||
|
if user and user.is_active:
|
||||||
|
auth.login(request, user)
|
||||||
|
return HttpResponseRedirect(settings.PREFIX+'/')
|
||||||
|
else:
|
||||||
|
message = 'Login failed.'
|
||||||
|
context = RequestContext(request, {
|
||||||
|
'settings': settings,
|
||||||
|
'message': message
|
||||||
|
})
|
||||||
|
return render_to_response('login.html', context)
|
||||||
|
|
||||||
|
def logout(request):
|
||||||
|
auth.logout(request)
|
||||||
|
return HttpResponseRedirect(settings.PREFIX+'/')
|
||||||
|
|
||||||
|
def register(request):
|
||||||
|
message = ''
|
||||||
|
if 'username' in request.POST and 'password' in request.POST:
|
||||||
|
username = request.POST['username']
|
||||||
|
password = request.POST['password']
|
||||||
|
email = request.POST['email']
|
||||||
|
#fixme validate email
|
||||||
|
if User.objects.filter(username__iexact=username).count() > 0:
|
||||||
|
message = 'Username already exists'
|
||||||
|
elif User.objects.filter(email__iexact=email).count() > 0:
|
||||||
|
message = 'Email address already exits'
|
||||||
|
elif not password:
|
||||||
|
message = 'Password can not be empty'
|
||||||
|
else:
|
||||||
|
user = User(username=username, email=email)
|
||||||
|
user.set_password(password)
|
||||||
|
user.save()
|
||||||
|
user = authenticate(username=username, password=password)
|
||||||
|
auth.login(request, user)
|
||||||
|
return HttpResponseRedirect(settings.PREFIX+'/')
|
||||||
|
|
||||||
|
context = RequestContext(request, {
|
||||||
|
'settings': settings,
|
||||||
|
'message': message
|
||||||
|
})
|
||||||
|
return render_to_response('register.html', context)
|
|
@ -85,9 +85,13 @@ def add(request):
|
||||||
return HttpResponseRedirect('/')
|
return HttpResponseRedirect('/')
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
|
items = None
|
||||||
|
if not request.user.is_anonymous():
|
||||||
|
items = request.user.items.order_by('filename')
|
||||||
context = RequestContext(request, {
|
context = RequestContext(request, {
|
||||||
'PREFIX': settings.PREFIX,
|
'PREFIX': settings.PREFIX,
|
||||||
'anonymous': request.user.is_anonymous(),
|
'anonymous': request.user.is_anonymous(),
|
||||||
|
'items': items,
|
||||||
})
|
})
|
||||||
return render_to_response('index.html', context)
|
return render_to_response('index.html', context)
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,10 @@ var UPLOAD_URL = "{{PREFIX}}/add";
|
||||||
<h1>videopdf</h1>
|
<h1>videopdf</h1>
|
||||||
{% if anonymous %}
|
{% if anonymous %}
|
||||||
<div>
|
<div>
|
||||||
you need an account
|
You have to
|
||||||
|
<a href="{{PREFIX}}/login">login</a>
|
||||||
|
or <a href="{{PREFIX}}register">register</a>.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div>
|
<div>
|
||||||
|
@ -23,6 +26,11 @@ var UPLOAD_URL = "{{PREFIX}}/add";
|
||||||
<input id="upload" type="button" value="Upload" style="display: none" />
|
<input id="upload" type="button" value="Upload" style="display: none" />
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
<ul>
|
||||||
|
{% for item in items %}
|
||||||
|
<li><a href="{{item.get_absolute_url}}">{{item.filename}}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -122,6 +122,7 @@ INSTALLED_APPS = (
|
||||||
'django.contrib.admin',
|
'django.contrib.admin',
|
||||||
# Uncomment the next line to enable admin documentation:
|
# Uncomment the next line to enable admin documentation:
|
||||||
'django.contrib.admindocs',
|
'django.contrib.admindocs',
|
||||||
|
'app',
|
||||||
'item'
|
'item'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,12 @@ if settings.DEBUG:
|
||||||
{'document_root': settings.STATIC_ROOT}),
|
{'document_root': settings.STATIC_ROOT}),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
urlpatterns += patterns('app.views',
|
||||||
|
(p('login$'), 'login'),
|
||||||
|
(p('logout$'), 'logout'),
|
||||||
|
(p('register$'), 'register'),
|
||||||
|
)
|
||||||
|
|
||||||
urlpatterns += patterns('item.views',
|
urlpatterns += patterns('item.views',
|
||||||
(p('$'), 'index'),
|
(p('$'), 'index'),
|
||||||
(p('add$'), 'add'),
|
(p('add$'), 'add'),
|
||||||
|
|
Loading…
Reference in a new issue