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 from flask import Flask, redirect, url_for, render_template, request
app=Flask(__name__) 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("/") @app.route("/")
def home(): def home():
app.route('/') app.route('/')
@ -48,7 +65,7 @@ def req():
"username": Widg("username", "input", None), "username": Widg("username", "input", None),
"email for account lockout / registration confirmation (optional)": Widg("email", "input", None), "email for account lockout / registration confirmation (optional)": Widg("email", "input", None),
"SSH public key": Widg("pub_key", "textarea", 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) "have you read the rules?": Widg("rule_read", "check", None)
}; };
@ -57,7 +74,7 @@ def req():
def signup(): def signup():
app.route('/req/signup') app.route('/req/signup')
username = request.form["username"] username = request.form["username"]
email = request.form["email"] email = request.form["email"]
shell = request.form["shell"] shell = request.form["shell"]
@ -70,7 +87,26 @@ def signup():
if(len(email) > 1): if(len(email) > 1):
is_email_user = True 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) print(username + " " + email + " " + shell + " " + rule_read)
return render_template("signup.html", is_email_user = is_email_user) 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"
}
}