def admin_users_setlevel(sid: uuid.UUID, level: int): if level not in User.LEVELS: return json_result(-1, "invalid level") user: User = user_api.find_by_uuid(sid) user.level = level user_api.update_by_uuid(sid, user) return json_result(0, "success")
def admin_users_add(): username = request.form["username"] password = request.form["password"] level = int(request.form["level"]) if "../" in username: return json_result(0, "invalid username") result = user_api.find_by_name(username) if result != None: return json_result(-1, "exist user") u_uuid = user_api.add(username, password, level) return json_result(0, u_uuid)
def admin_users_update(sid: uuid.UUID): password = request.form["password"] level = request.form["level"] user: User = user_api.find_by_uuid(sid) if user == None: return json_result(-1, "user not found") user.password = password try: user.level = int(level) except: return json_result(-1, "level is not integer") if user.level not in User.LEVELS: return json_result(-1, "invalid level") user_api.update_by_uuid(sid, user) return json_result(0, "success")
def signup(): if request.method == "GET": return render_template("user/signup.html") username = request.form["username"] password = request.form["password"] if "../" in username: return render_template("user/signup.html") result = userAPI.find_by_name(username) if result != None: return "exist user" u_uuid = userAPI.add(username, password, 0) session["username"] = username session["uuid"] = str(u_uuid) session["level"] = 0 return redirect("/docker")
def signin(): """ POST :param username: username :param password: password """ if request.method == "GET": return render_template("user/signin.html") elif request.method == "POST": username = request.form["username"] password = request.form["password"] result = userAPI.signin(username, password) if result == None: return "<script>alert('user not found'); history.back(-1);</script>" session["username"] = username session["uuid"] = str(result.uuid) session["level"] = result.level return redirect("/docker")
def admin_images(): images = docker_api.image.getImages() result = [] for image in images: rimage = Image() rimage.uid = "system" rimage.uuid = "system" rimage.status = "done" rimage.tag = image["RepoTags"][0] r: Image = docker_api.image.find_by_tag(rimage.tag) if r != None: rimage.uid = r.uid rimage.uuid = r.uuid rimage.status = r.status u: User = user_api.find_by_uuid(rimage.uid) if u != None: rimage.uid = u.username rimage.tag = rimage.tag.replace(":", "-") result += [rimage] return render_template("/admin/image.html", images=result)
def api_users(): return json_result(0, Users.all())
def admin_users_remove(sid: uuid.UUID): if str(sid) == "b30d1e92-e356-4aca-8c3c-c20b7bf7dc76": return json_result(-1, "master admin can't remove") user_api.remove_by_uuid(sid) return json_result(0, "success")
def admin_users(): return render_template("/admin/user.html", users=user_api.all())