Compare commits

...

2 Commits

Author SHA1 Message Date
gashapwn
f6ca5b2f7a added a conf file 2020-11-26 23:56:41 +00:00
gashapwn
98545237ff signup creates an ident file now 2020-11-26 23:30:35 +00:00
2 changed files with 45 additions and 2 deletions

40
app.py
View File

@ -1,7 +1,24 @@
import glob
import json
from flask import Flask, redirect, url_for, render_template, request
app=Flask(__name__)
WORKING_DIR = "/home/gashapwn/lyadmin/";
ACCOUNT_DIR = "test/";
FULL_PATH = str(WORKING_DIR) + str(ACCOUNT_DIR)
CONF_PATH = str(WORKING_DIR) + "lyadmin.conf.json"
# Account requests are given ID numbers
# the first request will have the below
# id number
INIT_REQ_ID = "00000"
with open(CONF_PATH) as c: conf_json_str = c.read()
conf_obj = json.loads(conf_json_str)
@app.route("/")
def home():
app.route('/')
@ -48,7 +65,7 @@ def req():
"username": Widg("username", "input", None),
"email for account lockout / registration confirmation (optional)": Widg("email", "input", None),
"SSH public key": Widg("pub_key", "textarea", None),
"shell of choice": Widg("shell", "choice", [("bash", "/bin/bash"), ("ksh", "/bin/ksh")]),
"shell of choice": Widg("shell", "choice", map(lambda k : (k, conf_obj["shell"][k]), list(conf_obj["shell"].keys()))),
"have you read the rules?": Widg("rule_read", "check", None)
};
@ -57,7 +74,7 @@ def req():
def signup():
app.route('/req/signup')
username = request.form["username"]
email = request.form["email"]
shell = request.form["shell"]
@ -70,7 +87,26 @@ def signup():
if(len(email) > 1):
is_email_user = True
else:
email = "NO_EMAIL"
if(len(glob.glob("./test/[0-9]*ident*")) == 0):
new_id = int(INIT_REQ_ID)
new_id_str = INIT_REQ_ID
else:
max_id = max(list(map( lambda path : path.split("/")[-1].split(".")[0] , glob.glob("./test/[0-9]*ident*"))))
zpad = len(max_id)
new_id = int(max_id)+1
new_id_str = str(new_id).zfill(zpad)
fn1 = str(FULL_PATH) + str(new_id_str) + ".ident"
with open(fn1, "w") as ident_file:
ident_file.write(str(username) + "\n")
ident_file.write(str(email) + "\n")
ident_file.write(str(shell) + "\n")
ident_file.write(str(rule_read) + "\n")
print(username + " " + email + " " + shell + " " + rule_read)
return render_template("signup.html", is_email_user = is_email_user)

7
lyadmin.conf.json Normal file
View File

@ -0,0 +1,7 @@
{
"instance_name": "lingy.in",
"shell": {
"SHELL_BASH": "/usr/local/bin/bash",
"SHELL_KSH": "/bin/ksh"
}
}