def password_reset(request): if (request.method=='GET'): form = PasswordResetForm() return render_to_response(PASSWORD_RESET_PAGE, {'form':form }, context_instance=RequestContext(request)) else: form = PasswordResetForm(request.POST) if form.is_valid(): username = form.cleaned_data.get('username') email = form.cleaned_data.get('email') # look for user with given username, email try: # retrieve user for given username and email user = User.objects.filter(username=username).get(email__iexact=email) # generate new random password new_password = User.objects.make_random_password(length=10) # change password in database user.set_password(new_password) user.save() # logout user (if logged in) logout(request) # user profile url url = reverse('user_detail', kwargs={ 'user_id': user.id }) url = request.build_absolute_uri(url) # send email to user subject = "Password Reset" message = "Your new password has been set to: %s .\nFor security reasons, please change this password as soon as you log in." % new_password message += "\nTo change your password, click on the 'My Account' link on the top-right of each page, " \ + "\nor visit the following URL: %s" % url notify(user, subject, message) # redirect to login page with special message message = 'A new password has been e-mailed to you. Please use the new password to login and change it as soon as possible.' return HttpResponseRedirect(reverse('login')+"?message=%s" % message) # user not found except User.DoesNotExist: return render_to_response(PASSWORD_RESET_PAGE, {'form':form, 'message':'Invalid username/email combination' }, context_instance=RequestContext(request)) else: print "Form is invalid: %s" % form.errors return render_to_response(PASSWORD_RESET_PAGE, {'form':form }, context_instance=RequestContext(request))
def notifyAdminsOfUserRegistration(user, subscribed): subject = 'New User Registration' message = 'User %s has created a new account' % user.get_full_name() # user attributes message += "\nFirst Name: %s" % user.first_name message += "\nLast Name: %s" % user.last_name message += "\nUser Name: %s" % user.username message += "\nEmail: %s" % user.email message += "\nSubscribe to OCG email list? %s" % subscribed for admin in getSiteAdministrators(): notify(admin, subject, message)
def username_reminder(request): if (request.method=='GET'): form = UsernameReminderForm() return render_to_response(USER_REMINDER_PAGE, {'form':form }, context_instance=RequestContext(request)) else: form = UsernameReminderForm(request.POST) if form.is_valid(): email = form.cleaned_data.get('email') # look up username users = User.objects.filter(email__iexact=email) if len(users)>0: # send email with username(s) to user subject = "Username Reminder" message = "" for user in users: message += "Your username is: %s\n" % user.username notify(user, subject, message) # redirect to login page with special message message = 'Your username has been emailed to the address you provided. Please check your email box.' return HttpResponseRedirect(reverse('login')+"?message=%s" % message) # user not found else: return render_to_response(USER_REMINDER_PAGE, {'form':form, 'message':'This email address cannot be found' }, context_instance=RequestContext(request)) else: print "Form is invalid: %s" % form.errors return render_to_response(USER_REMINDER_PAGE, {'form':form }, context_instance=RequestContext(request))