cleaning code
This commit is contained in:
parent
f1cc88a0b1
commit
321fa8ffa0
59
main.py
59
main.py
@ -5,15 +5,38 @@ redirect = bottle.redirect
|
|||||||
import smtplib
|
import smtplib
|
||||||
from email.mime.text import MIMEText
|
from email.mime.text import MIMEText
|
||||||
from email.mime.multipart import MIMEMultipart
|
from email.mime.multipart import MIMEMultipart
|
||||||
import os
|
import os # for environ vars
|
||||||
import sys # to print ot stderr
|
import sys # to print ot stderr
|
||||||
import re
|
import re # to match our template system
|
||||||
import pymongo
|
import pymongo # database
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
import random, string
|
import random, string # for tokens
|
||||||
import html # for sanitization
|
import html # for sanitization
|
||||||
|
|
||||||
|
|
||||||
|
##################################################### Bottle stuff ############################################$
|
||||||
|
|
||||||
|
# The exception that is thrown when an argument is missing
|
||||||
|
class MissingParameterException (Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class StripPathMiddleware(object):
|
||||||
|
'''
|
||||||
|
Get that slash out of the request
|
||||||
|
'''
|
||||||
|
def __init__(self, a):
|
||||||
|
self.a = a
|
||||||
|
def __call__(self, e, h):
|
||||||
|
e['PATH_INFO'] = e['PATH_INFO'].rstrip('/')
|
||||||
|
return self.a(e, h)
|
||||||
|
|
||||||
|
|
||||||
|
app = application = bottle.Bottle()
|
||||||
|
|
||||||
|
|
||||||
|
##################################################### Configuration ############################################$
|
||||||
|
|
||||||
# Load file from .env file.
|
# Load file from .env file.
|
||||||
load_dotenv(os.path.dirname(__file__) + '.env')
|
load_dotenv(os.path.dirname(__file__) + '.env')
|
||||||
|
|
||||||
@ -21,12 +44,6 @@ token_chars = string.ascii_lowercase+string.ascii_uppercase+string.digits
|
|||||||
token_len = 50
|
token_len = 50
|
||||||
|
|
||||||
|
|
||||||
# The exception that is thrown when an argument is missing
|
|
||||||
class MissingParameterException (Exception):
|
|
||||||
pass
|
|
||||||
|
|
||||||
app = application = bottle.Bottle()
|
|
||||||
|
|
||||||
# Get address and port from env
|
# Get address and port from env
|
||||||
listen_address = os.environ['LISTEN_ADDRESS'] if 'LISTEN_ADDRESS' in os.environ else '0.0.0.0'
|
listen_address = os.environ['LISTEN_ADDRESS'] if 'LISTEN_ADDRESS' in os.environ else '0.0.0.0'
|
||||||
listen_port = os.environ['LISTEN_PORT'] if 'LISTEN_PORT' in os.environ else 8080
|
listen_port = os.environ['LISTEN_PORT'] if 'LISTEN_PORT' in os.environ else 8080
|
||||||
@ -97,14 +114,12 @@ form_regex = '\{\{(\w+)(\|\w+)?\}\}'
|
|||||||
|
|
||||||
|
|
||||||
@app.post('/fail')
|
@app.post('/fail')
|
||||||
@app.post('/fail/')
|
|
||||||
def fail ():
|
def fail ():
|
||||||
a = 2/0
|
a = 2/0
|
||||||
print('lol, failed', file=sys.stderr)
|
print('lol, failed', file=sys.stderr)
|
||||||
return 'failed'
|
return 'failed'
|
||||||
|
|
||||||
@app.post('/submit')
|
@app.post('/submit')
|
||||||
@app.post('/submit/')
|
|
||||||
def submission ():
|
def submission ():
|
||||||
# Getting subject
|
# Getting subject
|
||||||
if 'token' in request.forms:
|
if 'token' in request.forms:
|
||||||
@ -212,7 +227,6 @@ def login(request):
|
|||||||
##################################################### Forms ############################################$
|
##################################################### Forms ############################################$
|
||||||
|
|
||||||
@app.post('/form')
|
@app.post('/form')
|
||||||
@app.post('/form/')
|
|
||||||
def create_form ():
|
def create_form ():
|
||||||
# Getting subject template
|
# Getting subject template
|
||||||
if 'subject' in request.forms:
|
if 'subject' in request.forms:
|
||||||
@ -255,7 +269,6 @@ def create_form ():
|
|||||||
return 'Créé : ' + token
|
return 'Créé : ' + token
|
||||||
|
|
||||||
@app.post('/form/list')
|
@app.post('/form/list')
|
||||||
@app.post('/form/list/')
|
|
||||||
def list_forms ():
|
def list_forms ():
|
||||||
user = login(request)
|
user = login(request)
|
||||||
if user['_privilege'] == 0:
|
if user['_privilege'] == 0:
|
||||||
@ -269,7 +282,6 @@ def list_forms ():
|
|||||||
|
|
||||||
|
|
||||||
@app.delete('/form/<token>')
|
@app.delete('/form/<token>')
|
||||||
@app.delete('/form/<token>/')
|
|
||||||
def delete_form(token):
|
def delete_form(token):
|
||||||
# If admin or form owner
|
# If admin or form owner
|
||||||
user = login(request)
|
user = login(request)
|
||||||
@ -296,7 +308,6 @@ def delete_form(token):
|
|||||||
##################################################### Users ############################################$
|
##################################################### Users ############################################$
|
||||||
|
|
||||||
@app.post('/user/list')
|
@app.post('/user/list')
|
||||||
@app.post('/user/list/')
|
|
||||||
def list_users ():
|
def list_users ():
|
||||||
user = login(request)
|
user = login(request)
|
||||||
if user['_privilege'] > 0:
|
if user['_privilege'] > 0:
|
||||||
@ -305,7 +316,6 @@ def list_users ():
|
|||||||
return bottle.template("list.tpl", data=mongodb_database['users'].find())
|
return bottle.template("list.tpl", data=mongodb_database['users'].find())
|
||||||
|
|
||||||
@app.put('/user/<username>')
|
@app.put('/user/<username>')
|
||||||
@app.put('/user/<username>/')
|
|
||||||
def create_user (username):
|
def create_user (username):
|
||||||
user = login(request)
|
user = login(request)
|
||||||
if user['_privilege'] > 0:
|
if user['_privilege'] > 0:
|
||||||
@ -323,7 +333,6 @@ def create_user (username):
|
|||||||
|
|
||||||
|
|
||||||
@app.delete('/user/<username>')
|
@app.delete('/user/<username>')
|
||||||
@app.delete('/user/<username>/')
|
|
||||||
def delete_user (username):
|
def delete_user (username):
|
||||||
user = login(request)
|
user = login(request)
|
||||||
if user['_privilege'] > 0:
|
if user['_privilege'] > 0:
|
||||||
@ -340,17 +349,7 @@ def delete_user (username):
|
|||||||
return 'Supprimé ' + username
|
return 'Supprimé ' + username
|
||||||
|
|
||||||
|
|
||||||
##################################################### Bottle stuff ############################################$
|
|
||||||
|
|
||||||
class StripPathMiddleware(object):
|
|
||||||
'''
|
|
||||||
Get that slash out of the request
|
|
||||||
'''
|
|
||||||
def __init__(self, a):
|
|
||||||
self.a = a
|
|
||||||
def __call__(self, e, h):
|
|
||||||
e['PATH_INFO'] = e['PATH_INFO'].rstrip('/')
|
|
||||||
return self.a(e, h)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
bottle.run(app=StripPathMiddleware(app), host=listen_address, port=listen_port, debug=True)
|
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