view gpp/accounts/__init__.py @ 505:a5d11471d031

Refactor the logic in the rate limiter decorator. Check to see if the request was ajax, as the ajax view always returns 200. Have to decode the JSON response to see if an error occurred or not.
author Brian Neal <bgneal@gmail.com>
date Sat, 03 Dec 2011 19:13:38 +0000
parents 69d0306a6fe7
children
line wrap: on
line source
import datetime
import logging

from django.contrib.auth.models import User


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)

    logging.info(msg)