예제 #1
0
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))
예제 #2
0
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)
예제 #3
0
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))