scripts/srvuser.py

39 lines
1.2 KiB
Python
Raw Normal View History

from subprocess import run, check_output
2021-11-22 21:15:48 +00:00
from json import loads
from http.server import BaseHTTPRequestHandler
from adduser import adduser
2022-01-06 01:01:32 +00:00
class srvuser(BaseHTTPRequestHandler):
"""User management HTTP server"""
def __init__(self, code, ldap_pass):
"""Set parameters"""
self.code = code
self.ldap_pass = ldap_pass
2021-11-22 21:15:48 +00:00
def do_POST(self):
"""Handle registration POST requests"""
2021-11-22 21:15:48 +00:00
content_length = int(self.headers['Content-Length'])
data = loads(self.rfile.read(content_length).decode('utf-8'))
# Print data
2022-01-06 01:01:32 +00:00
print([data[key] for key in data.keys() if key != 'password'])
2021-12-04 01:46:51 +00:00
2021-11-30 04:17:26 +00:00
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():
2021-11-30 04:17:26 +00:00
print('Bad username')
2021-11-23 21:58:25 +00:00
return
# Add the user
adduser(data['username'], data['firstname'].capitalize(), data['lastname'].capitalize(),
data['email'], data['password'], ldap_pass)
2021-11-22 21:15:48 +00:00
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()