Example #1
0
def admin_user_add(request):
    context = RequestContext(request)
    new_user = User()

    if request.method == 'POST':
        # Retrieve data.
        new_user.username = request.POST.get('username')
        new_user.first_name = request.POST.get('first-name')
        new_user.last_name = request.POST.get('last-name')
        new_user.email = request.POST.get('email')

        if request.POST.get('rol', ''):
            new_user.is_admin = True

        new_user.role = request.POST.get('role')

        # Check if username already exists.
        try:
            User.objects.get(username=request.POST.get('username'))
        except User.DoesNotExist:
            # Password verification
            password = request.POST.get('password')
            confirm_password = request.POST.get('confirm-password')
            if password == confirm_password:
                new_user.set_password(password)
            else:
                messages.error(request, u"Las contraseñas no coinciden.",
                               context)
                return TemplateResponse(request, 'admin/admin_users_add.html',
                                        context)

            # Save user!
            new_user.save()
            messages.info(
                request,
                u"El usuario '%s' ha sido creado." % new_user.username)
            return HttpResponseRedirect(
                reverse('admin.views.admin_user_list', urlconf='admin.urls'),
                context)

        # If username exist notify user.
        if User.objects.get(username=request.POST.get('username')):
            context.update({'new_user': new_user})
            messages.error(
                request, u"El nombre de usuario '%s' ya existe." %
                request.POST.get('username'))
            return TemplateResponse(request, 'admin/admin_users_add.html',
                                    context)

    return TemplateResponse(request, 'admin/admin_users_add.html', context)