from subprocess import run, check_output from json import loads from http.server import BaseHTTPRequestHandler from adduser import adduser class srvuser(BaseHTTPRequestHandler): """User management HTTP server""" def __init__(self, code, ldap_pass): """Set parameters""" self.code = code self.ldap_pass = ldap_pass def do_POST(self): """Handle registration POST requests""" content_length = int(self.headers['Content-Length']) data = loads(self.rfile.read(content_length).decode('utf-8')) # Print data print([data[key] for key in data.keys() if key != 'password']) if data['code'] != code: print('Incorrect code') return if not all(c.isdigit() or c.islower() for c in data['username']) or data['username'][0].isdigit(): print('Bad username') return # Add the user adduser(data['username'], data['firstname'].capitalize(), data['lastname'].capitalize(), data['email'], data['password'], ldap_pass) self.send_response(200) self.send_header('Content-type', 'text/html') self.end_headers()