Captcha working on application and redirection after sending application

This commit is contained in:
henu
2016-10-25 19:32:05 +03:00
parent 26191ef369
commit b494d75de6
6 changed files with 44 additions and 18 deletions
+5 -4
View File
@@ -31,7 +31,7 @@ app.controller("applicationController", function($scope, $http, $location, $wind
$scope.response = null;
$scope.widgetId = null;
$scope.model = {
key: '6LevHAcUAAAAAA45B7c-7qja-2aSwHztr9xb4K2Z'
key: "6LevHAcUAAAAAA45B7c-7qja-2aSwHztr9xb4K2Z"
};
$scope.setResponse = function(response) {
$scope.response = response;
@@ -47,16 +47,17 @@ app.controller("applicationController", function($scope, $http, $location, $wind
var valid;
//server side validation
$scope.member.reCaptchaResponse = vcRecaptchaService.getResponse()
if($scope.member.reCaptchaResponse === "") {
console.log($scope.member.reCaptchaResponse);
if($scope.member.reCaptchaResponse === "") {
notyError("Ole hyvä ja täytä kuvavarmennus");
} else {
$http.post("/members/api/request", $scope.member).then(function(data){
notySuccess("Hakemus lähetetty!");
$window.location.href = "/application/";
$window.location.href = "/application/success";
}, function(data){
notyError("Jokin meni vikaan. Yritä uudelleen.");
vcRecaptchaService.reload($scope.widgetId);
});
}
}
});
});
+2 -2
View File
@@ -64,7 +64,7 @@
<div
vc-recaptcha
theme="'light'"
key="6LevHAcUAAAAAA45B7c-7qja-2aSwHztr9xb4K2Z"
key="'6LevHAcUAAAAAA45B7c-7qja-2aSwHztr9xb4K2Z'"
on-create="setWidgetId(widgetId)"
on-success="setResponse(response)"
on-expire="cbExpiration()"
@@ -72,4 +72,4 @@
<button ng-click="applicationForm.$valid && send()" type="submit" class="btn btn-success" id="sendmember">Tallenna</button>
</form>
</div>
</body>
</body>
@@ -0,0 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="uli uli">
<meta name="author" content="veedeeämkoo">
<title>Hienoa! Jäsenhakemuksesi on nyt lähetetty.</title>
</head>
<body>
<h1>Hienoa! Jäsenhakemuksesi on nyt lähetetty.</h1>
<a href="http://sahkoinsinoorikilta.fi">Takaisin Sähköinsinöörikillan web-sivuille</a>
</body>
</html>
+19 -12
View File
@@ -17,23 +17,22 @@ def validateReCaptcha(response):
'response': response,
}
url = "https://www.google.com/recaptcha/api/siteverify"
headers = {'Content-type': 'application/json'}
resp = requests.post(url, data=json.dumps(values), headers=headers)
headers = {'Content-type': 'application/x-www-form-urlencoded'}
resp = requests.post(url, values, headers=headers)
result = json.loads(resp.text)
print(resp.text)
print(values)
if not result["success"]:
return False
return True
def sendmail(subject, message):
send_mail(
subject,
message,
'no-reply@sahkoinsinoorikilta.fi',
['viestintamestari@sahkoinsinoorikilta.fi'],
fail_silently=False
)
#def sendmail(subject, message):
#send_mail(
# subject,
# message,
# 'no-reply@sahkoinsinoorikilta.fi',
# ['viestintamestari@sahkoinsinoorikilta.fi'],
# fail_silently=False
#)
@ensure_csrf_cookie
@require_http_methods(["GET"])
@@ -44,6 +43,10 @@ def index(request, *args, **kwargs):
@ensure_csrf_cookie
def applicationindex(request, *args, **kwargs):
return render(request, 'application_index.html',{})
@ensure_csrf_cookie
def applicationSuccessIndex(request, *args, **kwargs):
return render(request, 'application_success.html',{})
@ensure_csrf_cookie
@require_http_methods(["GET"])
@@ -120,8 +123,12 @@ def member_requests(request, *args, **kwargs):
def new_member_request(request, *args, **kwargs):
try:
data = json.loads(request.body.decode("utf-8"))
print("jsondada:")
print(data)
#get captcha response from member
captcha = data.pop("reCaptchaResponse", "")
print("Captcha:")
print(captcha)
#send response to google and check it out
captcha_ok = validateReCaptcha(captcha)
#if not ok, inform user
@@ -141,7 +148,7 @@ def new_member_request(request, *args, **kwargs):
message += 'To mail list: ' + str(mem.jas) + '\r\n'
message += 'Created: ' + mem.created.isoformat(' ') + '\r\n'
message += 'Please go to the http://sika.sahkoinsinoorikilta.fi/members/ and do something about it!\r\n'
sendmail(subject, message)
#sendmail(subject, message)
return HttpResponse(json.dumps(mem.get_dict()))
except ValueError:
return HttpResponseBadRequest('{"error" : "Invalid parameters supplied"}')
+1
View File
@@ -14,3 +14,4 @@ paramiko==2.0.2
qrcode==5.3
Pillow==3.3.1
requests==2.11.1
django-nocaptcha-recaptcha==0.0.19
+2
View File
@@ -47,6 +47,7 @@ from infoscreen.views import createSossoItem
from infoscreen.views import admin as infoscreen_admin
#application
from members.views import applicationindex
from members.views import applicationSuccessIndex
urlpatterns = [
# main
@@ -83,4 +84,5 @@ urlpatterns = [
url(r'^infoscreen/admin$', infoscreen_admin),
#application
url(r'^application/$', applicationindex),
url(r'^application/success$', applicationSuccessIndex),
]