Mercurial > public > sg101
diff gpp/accounts/__init__.py @ 347:69d0306a6fe7
Fixing #165: add a way to filter users in the admin by join date; add an admin action to approve a pending user; added a honeypot type field to the registration form.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Wed, 02 Mar 2011 01:11:32 +0000 |
parents | dbd703f7d63a |
children |
line wrap: on
line diff
--- a/gpp/accounts/__init__.py Mon Feb 28 03:53:04 2011 +0000 +++ b/gpp/accounts/__init__.py Wed Mar 02 01:11:32 2011 +0000 @@ -0,0 +1,37 @@ +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)