コード例 #1
0
ファイル: admin.py プロジェクト: Kur0N3k0/webdock
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")
コード例 #2
0
ファイル: admin.py プロジェクト: Kur0N3k0/webdock
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)
コード例 #3
0
ファイル: admin.py プロジェクト: Kur0N3k0/webdock
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")
コード例 #4
0
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")
コード例 #5
0
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")
コード例 #6
0
ファイル: admin.py プロジェクト: Kur0N3k0/webdock
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)
コード例 #7
0
def api_users():
    return json_result(0, Users.all())
コード例 #8
0
ファイル: admin.py プロジェクト: Kur0N3k0/webdock
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")
コード例 #9
0
ファイル: admin.py プロジェクト: Kur0N3k0/webdock
def admin_users():
    return render_template("/admin/user.html", users=user_api.all())