You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

116 lines
3.1 KiB

# -*- coding: utf-8 -*-
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect, HttpResponse
from django.core.context_processors import csrf
from django.contrib.auth.decorators import login_required
#models and forms
from models import User
from forms import UserForm, UserCreationForm
#custom views
from functions.custom_views import objects_list
from hashlib import md5
def user_all(request):
"""
Return list of all users with pagination
"""
return objects_list(request, User, 'user_all.html')
def user_change(request, url):
"""
Return form of user and post it on the server.
If form is posted redirect on the page of all users.
"""
user = User.objects.safe_get(id=url)
# try get user by url if doesnt work by id
if user is None:
user = User.objects.safe_get(url=url)
#redirect to list of all users if cannot find user
if user is None:
return HttpResponseRedirect('/accounts/all')
if request.POST:
form = UserForm(request.POST, instance=user)
if form.is_valid():
form.save()
return HttpResponseRedirect('/accounts/all')
else:
form = UserForm(instance=user)
args = {}
args.update(csrf(request))
args['form'] = form
return render_to_response('user_change.html', args)
def create_admin(request):
if request.POST:
form = UserCreationForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
user.is_admin = False
user.save()
return HttpResponseRedirect('/accounts/all')
else:
form = UserCreationForm()
args = {}
args.update(csrf(request))
args['form'] = form
return render_to_response('create_admin.html', args)
def create_md5(request):
if request.POST:
form = UserCreationForm(request.POST)
if form.is_valid():
user = User()
user.email = request.POST['email']
user.first_name = request.POST['first_name']
user.last_name = request.POST['last_name']
user.password = md5(request.POST['password2']).hexdigest()
user.is_admin = True
user.save()
return HttpResponseRedirect('/accounts/all')
else:
form = UserCreationForm()
args = {}
args.update(csrf(request))
args['form'] = form
return render_to_response('create_admin.html', args)
def registration(request):
if request.POST:
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/accounts/registration')
else:
form = UserCreationForm()
args = {}
args.update(csrf(request))
args['form'] = form
return render_to_response('registration.html', args)
def reset_password_email(request):
"""
"""
if request.GET:
user = User.objects.get(email=request.GET['email'])
user.set_password(u'qwerty')
user.save()
return HttpResponse('success')
else:
return HttpResponse('error')