2013-02-25 15:10:15 -08:00
|
|
|
from django.contrib.auth.models import Permission
|
2012-04-26 03:44:16 +00:00
|
|
|
from django.template.response import TemplateResponse
|
2012-05-12 00:27:02 +00:00
|
|
|
from django.http import HttpResponseRedirect
|
2012-04-26 03:44:16 +00:00
|
|
|
from django.core.urlresolvers import reverse
|
|
|
|
|
from django.contrib.auth.decorators import login_required
|
2013-03-02 12:26:54 -08:00
|
|
|
from django.contrib.auth import logout, authenticate, login
|
2012-05-01 05:44:50 +00:00
|
|
|
from django.contrib import messages
|
2012-08-01 03:06:41 +00:00
|
|
|
from django.conf import settings
|
2013-03-02 12:26:54 -08:00
|
|
|
from django.utils.functional import lazy
|
|
|
|
|
from django.views.generic import CreateView
|
2012-04-26 03:44:16 +00:00
|
|
|
|
2013-02-21 07:43:52 +00:00
|
|
|
from .forms import UserCreationForm
|
2013-03-02 12:26:54 -08:00
|
|
|
from .models import User
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reverse_lazy = lambda name=None, *args : lazy(reverse, str)(name, args=args)
|
2013-02-21 07:43:52 +00:00
|
|
|
|
2012-04-26 03:44:16 +00:00
|
|
|
|
|
|
|
|
def home(request):
|
|
|
|
|
return HttpResponseRedirect(reverse('pins:recent-pins'))
|
|
|
|
|
|
2012-05-12 00:27:02 +00:00
|
|
|
|
2012-08-01 21:30:18 +00:00
|
|
|
def private(request):
|
2013-02-26 03:27:41 +00:00
|
|
|
return TemplateResponse(request, 'user/private.html', None)
|
2012-08-01 21:30:18 +00:00
|
|
|
|
|
|
|
|
|
2013-03-02 12:26:54 -08:00
|
|
|
class CreateUser(CreateView):
|
|
|
|
|
template_name = 'user/register.html'
|
|
|
|
|
model = User
|
|
|
|
|
form_class = UserCreationForm
|
|
|
|
|
success_url = reverse_lazy('pins:recent-pins')
|
|
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
|
|
|
if not settings.ALLOW_NEW_REGISTRATIONS:
|
|
|
|
|
messages.error(request, "The admin of this service is not allowing new registrations.")
|
|
|
|
|
return HttpResponseRedirect(reverse('pins:recent-pins'))
|
|
|
|
|
return super(CreateUser, self).get(request, *args, **kwargs)
|
|
|
|
|
|
|
|
|
|
def form_valid(self, form):
|
|
|
|
|
redirect = super(CreateUser, self).form_valid(form)
|
|
|
|
|
permissions = Permission.objects.filter(codename__in=['add_pin', 'add_image'])
|
|
|
|
|
user = authenticate(username=form.cleaned_data['username'],
|
|
|
|
|
password=form.cleaned_data['password'])
|
|
|
|
|
user.user_permissions = permissions
|
|
|
|
|
login(self.request, user)
|
|
|
|
|
return redirect
|
2012-04-26 03:44:16 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
|
def logout_user(request):
|
|
|
|
|
logout(request)
|
2012-05-01 05:44:50 +00:00
|
|
|
messages.success(request, 'You have successfully logged out.')
|
2012-04-26 03:44:16 +00:00
|
|
|
return HttpResponseRedirect(reverse('core:home'))
|