scripts/register

34 lines
1.2 KiB
Python
Executable file

#!/usr/bin/python
import os
from json import loads
from http.server import BaseHTTPRequestHandler, HTTPServer
class Server(BaseHTTPRequestHandler):
def do_POST(self):
content_length = int(self.headers['Content-Length'])
data = loads(self.rfile.read(content_length).decode('utf-8'))
data['password'] = os.popen('slappasswd -s "' + data['password'] + '"').read()[:-1]
print(data)
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
os.system('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()
ldap_pass = input('LDAP password: ')
code = input('Registration code: ')
server_address = ('localhost', 6789)
httpd = HTTPServer(server_address, Server)
httpd.serve_forever()