Esempio n. 1
0
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
Esempio n. 2
0
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)