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
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') |