Move ldappass and secret code to its own file and cleanup

This commit is contained in:
Anthony Wang 2022-01-25 07:34:34 -06:00
parent 0096bc4df5
commit e763317fff
Signed by: a
GPG key ID: BC96B00AEC5F2D76
5 changed files with 12 additions and 25 deletions

View file

@ -4,5 +4,4 @@ from sys import argv
from adduser import adduser
username, firstname, lastname, email, password = [argv[i] for i in range(1, 6)]
adduser(username, firstname, lastname, email, password)
adduser(*[argv[i] for i in range(1, 6)])

View file

@ -1,6 +1,7 @@
from os import rename, remove, chown
from subprocess import run, call, check_output
from crypt import crypt
from ldappass import ldappass
def configure(username):
@ -51,7 +52,7 @@ gidNumber: {uid}'''.format(username=username,
lastname=lastname,
email=email,
uid=uid,
hashedpassword=crypt(password))
hashedpassword=crypt(password))
# Write to file
filename = username + '.ldif'
@ -59,13 +60,8 @@ gidNumber: {uid}'''.format(username=username,
f.write(ldif)
# Add user
if ldap_pass is None:
run(['vim', filename])
ret = call(['ldapadd', '-D', 'cn=Manager,dc=exozy,dc=me',
'-W', '-f', filename])
else:
ret = call(['ldapadd', '-D', 'cn=Manager,dc=exozy,dc=me',
'-w', ldap_pass, '-f', filename])
ret = call(['ldapadd', '-D', 'cn=Manager,dc=exozy,dc=me',
'-w', ldap_pass, '-f', filename])
if ret != 0:
remove(filename)
return

View file

@ -1,2 +1,5 @@
def ldappass():
return open('/etc/ldappass', 'r').read()[:-1]
return open('/etc/ldappass', 'r').read().split()[0]
def code():
return open('/etc/ldappass', 'r').read().split()[1]

View file

@ -5,12 +5,6 @@ from http.server import HTTPServer
from srvuser import srvuser
if len(argv) == 1:
code = input('Registration code: ')
ldap_pass = input('LDAP password: ')
else:
code, ldap_pass = open(argv[1], 'r').read().split()
# Create and run server
httpd = HTTPServer(('localhost', 1337), srvuser(code, ldap_pass))
httpd = HTTPServer(('localhost', 1337), srvuser)
httpd.serve_forever()

View file

@ -2,17 +2,12 @@ from subprocess import run, check_output
from json import loads
from http.server import BaseHTTPRequestHandler
from adduser import adduser
from ldappass import code
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"""
@ -21,7 +16,7 @@ class srvuser(BaseHTTPRequestHandler):
# Print data
print([data[key] for key in data.keys() if key != 'password'])
if data['code'] != code:
if data['code'] != code():
print('Incorrect code')
return
if not all(c.isdigit() or c.islower()