fix field control
This commit is contained in:
parent
8f88cd6d2c
commit
e2465e2874
@ -106,6 +106,9 @@ function jeanCloudContactFormIntercept (formId, notifier) {
|
||||
loadingText.parentNode.removeChild(loadingText)
|
||||
notifier.error('Impossible d’envoyer le formulaire. Vérifiez votre connexion internet ou réessayez plus tard.')
|
||||
})
|
||||
|
||||
/* Remove timer field after xhr. So we can try again. */
|
||||
formElem.removeChild(timerField)
|
||||
}
|
||||
}
|
||||
|
||||
|
10
main.py
10
main.py
@ -46,7 +46,6 @@ class EnableCors(object):
|
||||
return _enable_cors
|
||||
|
||||
app = application = bottle.Bottle(catchall=False)
|
||||
#app.install(EnableCors())
|
||||
|
||||
##################################################### Configuration ############################################
|
||||
|
||||
@ -137,11 +136,13 @@ def submission ():
|
||||
# Did the bot filled the honeypot field?
|
||||
if 'honeypotfield' in form and form['honeypotfield'] in request.forms and request.forms.get(form['honeypotfield']) != '':
|
||||
response.status = 400
|
||||
print('honeypotfield')
|
||||
return resp('error', 'We identified you as a bot. If this is an error, try to contact us via another way.')
|
||||
# Is the js timer enabled?
|
||||
if 'timerdelay' in form:
|
||||
# Did it work?
|
||||
if 'timerfield' not in request.forms or request.forms.get('timerfield') < form['timerdelay']:
|
||||
if 'timerfield' not in request.forms or int(request.forms.get('timerfield')) < int(form['timerdelay']):
|
||||
print('timer : {}/{}'.format(request.forms.get('timerfield'), form['timerdelay']))
|
||||
response.status = 400
|
||||
return resp('error', 'We identified you as a bot. If this is an error, try to contact us via another way.')
|
||||
|
||||
@ -190,9 +191,13 @@ def fill_fields(request, fields):
|
||||
"""Look for fields in request and fill fields dict with values or let default ones. If the value is required, throw exception."""
|
||||
for field in fields:
|
||||
if field in request.forms:
|
||||
if request.forms.get(field).strip() == '' and fields[field] is None: # If empty and mandatory
|
||||
raise MissingParameterException("Le champs {} doit être rempli".format(field))
|
||||
fields[field] = request.forms.getunicode(field)
|
||||
if fields[field] is None: # if unicode failed
|
||||
fields[field] = request.forms.get(field)
|
||||
if fields[field] is None: # if get failed too
|
||||
raise Exception("Error, field '{}' not gettable".format(field))
|
||||
elif fields[field] is None:
|
||||
raise MissingParameterException("Le champs {} est obligatoire".format(field))
|
||||
return fields
|
||||
@ -418,6 +423,7 @@ def delete_user (username):
|
||||
|
||||
##################################################### app startup ############################################
|
||||
if __name__ == '__main__':
|
||||
app.install(EnableCors())
|
||||
bottle.run(app=StripPathMiddleware(app), host=listen_address, port=listen_port, debug=True)
|
||||
else:
|
||||
prod_app = StripPathMiddleware(app)
|
||||
|
Loading…
Reference in New Issue
Block a user