bgneal@1206: import datetime bgneal@1206: import logging bgneal@1206: bgneal@1206: from django.contrib.auth.models import User bgneal@1206: bgneal@1206: bgneal@1206: logger = logging.getLogger('auth') bgneal@1206: bgneal@1206: bgneal@1206: def create_new_user(pending_user, ip=None, admin_activation=False): bgneal@1206: """ bgneal@1206: This function contains the code to create a new user from a bgneal@1206: pending user. The pending user is deleted and the new user bgneal@1206: is saved. A log message is produced. If admin_activation is false, bgneal@1206: then ip should be the user's IP they confirmed from, if available. bgneal@1206: bgneal@1206: """ bgneal@1206: new_user = User() bgneal@1206: bgneal@1206: new_user.username = pending_user.username bgneal@1206: new_user.first_name = '' bgneal@1206: new_user.last_name = '' bgneal@1206: new_user.email = pending_user.email bgneal@1206: new_user.password = pending_user.password # already been hashed bgneal@1206: new_user.is_staff = False bgneal@1206: new_user.is_active = True bgneal@1206: new_user.is_superuser = False bgneal@1206: new_user.last_login = datetime.datetime.now() bgneal@1206: new_user.date_joined = new_user.last_login bgneal@1206: bgneal@1206: new_user.save() bgneal@1206: pending_user.delete() bgneal@1206: bgneal@1206: if admin_activation: bgneal@1206: msg = 'Accounts registration confirmed by ADMIN for %s' % new_user.username bgneal@1206: else: bgneal@1206: msg = 'Accounts registration confirmed by USER for %s from %s' % ( bgneal@1206: new_user.username, ip) bgneal@1206: bgneal@1206: logger.info(msg)