From 1c73d74f751441b136213f51e1de5a098a830522 Mon Sep 17 00:00:00 2001 From: Anthony Wang Date: Sat, 21 May 2022 14:57:31 -0500 Subject: [PATCH] Rewrite srvuser API to parse application/x-www-form-urlencoded --- srvuser.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/srvuser.py b/srvuser.py index 08eed60..c68f8d2 100644 --- a/srvuser.py +++ b/srvuser.py @@ -1,5 +1,5 @@ from subprocess import run, check_output -from json import loads +from urllib.parse import parse_qs from http.server import BaseHTTPRequestHandler from adduser import adduser @@ -9,14 +9,29 @@ from ldappass import code class srvuser(BaseHTTPRequestHandler): """User management HTTP server""" + def do_GET(self): + """Handle GET requests""" + + body = 'It worked!' + self.send_response(200) + self.send_header('Content-Type', 'text/plain') + self.send_header('Content-Length', str(len(body))) + self.end_headers() + self.wfile.write(body.encode('utf-8')) + def do_POST(self): - """Handle registration POST requests""" + """Handle API POST requests""" content_length = int(self.headers['Content-Length']) - data = loads(self.rfile.read(content_length).decode('utf-8')) - print([data[key] for key in data.keys() if key != 'password']) # Print data + data = parse_qs(self.rfile.read(content_length).decode('utf-8')) - if data['type'] == 'new': + # Print debug data + debug = data.copy() + debug.pop('password') + debug.pop('confirmpassword') + print(debug) + + if self.path == '/api/join': # New user if data['code'] != code(): print('Incorrect code')