2020-11-21 19:41:37 -05:00
|
|
|
from flask import Flask, redirect, url_for, render_template, request
|
|
|
|
|
|
|
|
app=Flask(__name__)
|
|
|
|
|
|
|
|
@app.route("/")
|
|
|
|
def home():
|
|
|
|
app.route('/')
|
2020-11-26 01:53:20 -05:00
|
|
|
|
|
|
|
u_list = [];
|
|
|
|
with open("user_list.txt") as u_file:
|
|
|
|
for line in u_file:
|
|
|
|
u_list.append(line);
|
|
|
|
|
2020-11-26 16:41:00 -05:00
|
|
|
return render_template("index.html", u_list=u_list, page_name="home")
|
|
|
|
|
|
|
|
|
|
|
|
def rules():
|
|
|
|
return render_template("rules.html")
|
2020-11-21 19:41:37 -05:00
|
|
|
|
|
|
|
def home2(name):
|
|
|
|
# app.route('/home2/<name>')
|
|
|
|
# return redirect(url_for('home'))
|
|
|
|
return render_template("home.html")
|
|
|
|
|
|
|
|
def success(name):
|
|
|
|
return "welcome %s" % name
|
|
|
|
|
2020-11-22 02:42:56 -05:00
|
|
|
# this is a weird way to do this
|
|
|
|
# right?
|
|
|
|
def widg_fun(widg):
|
|
|
|
if(widg.w_type == "input"):
|
|
|
|
return "input id=id_%s name=%s type=text></input"%(widg.w_name, widg.w_name)
|
|
|
|
elif(widg.w_type == "textarea"):
|
|
|
|
return "textarea cols=40 id=id_%s name=%s rows=10 required=\"\""%(widg.w_name, widg.w_name)
|
|
|
|
elif(widg.w_type == "check"):
|
|
|
|
return "input id=id_%s name=%s type=checkbox required=\"\""%(widg.w_name, widg.w_name)
|
|
|
|
return widg.w_type;
|
|
|
|
|
2020-11-22 01:24:41 -05:00
|
|
|
def req():
|
2020-11-26 17:06:39 -05:00
|
|
|
app.route('/req')
|
2020-11-22 02:42:56 -05:00
|
|
|
class Widg:
|
|
|
|
def __init__(self, w_name, w_type, w_opt):
|
|
|
|
self.w_name = w_name
|
|
|
|
self.w_type = w_type
|
|
|
|
self.w_opt = w_opt
|
|
|
|
|
2020-11-22 01:24:41 -05:00
|
|
|
rt = {
|
2020-11-22 02:42:56 -05:00
|
|
|
"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")]),
|
|
|
|
"have you read the rules?": Widg("rule_read", "check", None)
|
2020-11-22 01:24:41 -05:00
|
|
|
};
|
2020-11-22 02:42:56 -05:00
|
|
|
|
|
|
|
# uhhh is this how you're supposed to do this?
|
2020-11-26 16:41:00 -05:00
|
|
|
return render_template("req.html", req_tab = rt, widg_fun = widg_fun, page_name="req")
|
|
|
|
|
|
|
|
def signup():
|
2020-11-26 17:06:39 -05:00
|
|
|
app.route('/req/signup')
|
|
|
|
|
2020-11-26 16:41:00 -05:00
|
|
|
username = request.form["username"]
|
|
|
|
email = request.form["email"]
|
|
|
|
shell = request.form["shell"]
|
|
|
|
rule_read = request.form["rule_read"]
|
|
|
|
|
2020-11-26 17:06:39 -05:00
|
|
|
is_email_user = False;
|
|
|
|
|
2020-11-26 16:41:00 -05:00
|
|
|
if(rule_read != "on"):
|
2020-11-26 17:06:39 -05:00
|
|
|
return redirect(url_for('req'))
|
|
|
|
|
|
|
|
if(len(email) > 1):
|
|
|
|
is_email_user = True
|
|
|
|
|
|
|
|
print(username + " " + email + " " + shell + " " + rule_read)
|
|
|
|
return render_template("signup.html", is_email_user = is_email_user)
|
2020-11-26 16:41:00 -05:00
|
|
|
|
2020-11-22 01:24:41 -05:00
|
|
|
|
2020-11-21 19:41:37 -05:00
|
|
|
def login():
|
|
|
|
if request.method == "POST":
|
|
|
|
user = request.form["nm"]
|
|
|
|
return redirect(url_for('success', name = user))
|
|
|
|
else:
|
|
|
|
return redirect(url_for('home'))
|
|
|
|
|
|
|
|
if __name__=="__main__":
|
|
|
|
app.add_url_rule('/home2/<name>', 'home2', home2)
|
2020-11-26 16:41:00 -05:00
|
|
|
app.add_url_rule('/rules', 'rules', rules)
|
2020-11-21 19:41:37 -05:00
|
|
|
app.add_url_rule('/success/<name>', 'success', success)
|
|
|
|
app.add_url_rule('/login', 'login', login, methods = ['POST', 'GET'])
|
2020-11-22 01:24:41 -05:00
|
|
|
app.add_url_rule('/req', 'req', req, methods = ['POST', 'GET'])
|
2020-11-26 17:06:39 -05:00
|
|
|
app.add_url_rule('/req/signup', 'signup', signup, methods = ['POST'])
|
2020-11-26 01:14:59 -05:00
|
|
|
app.run(host="104.248.118.130",debug=True)
|