view accounts/__init__.py @ 752:95f4e7f352fd

For Django 1.6: contrib auth password reset confirm view signature changed. The uidb64 parameter was previously base 36 encoded and named uidb36. Had to update urls.py. While I was in there I decided to make the password reset email use the {% url %} tag to be more resilient if the url changes.
author Brian Neal <bgneal@gmail.com>
date Wed, 01 Jan 2014 19:52:07 -0600
parents 988782c6ce6c
children 02181fa5ac9d
line wrap: on
line source
import datetime
import logging

from django.contrib.auth.models import User


logger = logging.getLogger('auth')


def create_new_user(pending_user, ip=None, admin_activation=False):
    """
    This function contains the code to create a new user from a
    pending user. The pending user is deleted and the new user
    is saved. A log message is produced. If admin_activation is false,
    then ip should be the user's IP they confirmed from, if available.

    """
    new_user = User()

    new_user.username = pending_user.username
    new_user.first_name = ''
    new_user.last_name = ''
    new_user.email = pending_user.email
    new_user.password = pending_user.password     # already been hashed
    new_user.is_staff = False
    new_user.is_active = True
    new_user.is_superuser = False
    new_user.last_login = datetime.datetime.now()
    new_user.date_joined = new_user.last_login

    new_user.save()
    pending_user.delete()

    if admin_activation:
        msg = 'Accounts registration confirmed by ADMIN for %s' % new_user.username
    else:
        msg = 'Accounts registration confirmed by USER for %s from %s' % (
                new_user.username, ip)

    logger.info(msg)