def make_ids_emails(elections,user): try: connection = mail.get_connection() connection.open() emaillist = [] v = Voter.objects.only('id','email','voter_id','password').filter(election_id=elections) template = get_template('elections/voter_email.txt') count = 0 for voters in v: count += 1 s1 = "%s%d" % (elections.voter_prefix,voters.id) voters.voter_id = s1 password = ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for i in range(7)) voters.password = make_password(password) if not check_password(password,make_password(password)): print "KEYERROR" raise KeyError voters.save() context = Context({ 'organisation' : elections.organisation, 'first_name' : user.first_name, 'last_name' : user.last_name, 'user_email' : user.email, 'election_name' : elections.name, 'description' : elections.description, 'starts' : elections.starts, 'ends' : elections.ends, 'timezones' : elections.timezone, 'instructions' : elections.instructions, 'voterid' : s1, 'password' : password, }) content = template.render(context) email = mail.EmailMessage("%s Vote Invite"%(elections.name),content,"iVote" , ["%s" %(voters.email)], headers = { 'Reply-To' : "*****@*****.**" } ) emaillist.append(email) elections.num_voters = count elections.save() connection.send_messages(emaillist) connection.close() except: return False return True
def VoterLogin(request): if request.method=='GET': verify = request.session.get('voter_session',None) if not verify: request.session.set_test_cookie() return render(request,"elections/VoterLogin.html") else: return HttpResponseRedirect(reverse('elections:VoterDashboard')) elif request.method=='POST': if request.session.test_cookie_worked(): request.session.delete_test_cookie() else: messages.error(request,"Please enable cookies and try again.") request.session.set_test_cookie() return render(request, "elections/VoterLogin.html") voterid = request.POST.get('voterid',None) password = request.POST.get('password',None) #voter_user = Voter.objects. voters = Voter.objects.only('password','voter_id').filter(voter_id=voterid) if voters.exists(): if check_password(password,voters[0].password): request.session.flush() request.session['voter_session'] = voters[0].voter_id request.session.set_expiry(3600) messages.success(request,"Successfully Logged in") return HttpResponseRedirect(reverse('elections:VoterDashboard')) else: request.session.set_test_cookie() messages.error(request,"Incorrect VoterId/Password Combination.") return render(request,"elections/VoterLogin.html") else: request.session.set_test_cookie() messages.error(request,"No VoterId exists.") return render(request,"elections/VoterLogin.html") else: return HttpResponse("BAD REQUEST",status=403)