Esempio n. 1
0
def user_info():
    if request.method == "POST":
        if not manage_permissions(session.get("username")):
            return abort(StopCodes.ClientError.Unauthorized)

        if "suspend_user" in request.form:
            user_repo.suspend_user(request.form.get("suspend_user"),
                                   request.form.get("suspend_until"),
                                   request.form.get("suspend_message"))

        if "un_suspend_user" in request.form:
            user_repo.del_suspend_user(request.form.get("un_suspend_user"))

        if "delete_user" in request.form:
            user_repo.delete_user(request.form.get("delete_user"))
        if "switch_admin" in request.form:
            user_repo.switch_admin(request.form.get("switch_admin"))

        return api_utils.empty_success()

    if "avatar" in request.args:
        return user_repo.get_user_query_object(
            request.args.get("avatar")).get_avatar(html=True)
    if "get_plugins" in request.args:
        return api_utils.craft_response(
            kelp_plugin_repo.get_paginated_plugins_by_user(
                request.args.get("username") or session.get("username"),
                int(request.args.get("page")),
                int(request.args.get("amount"))), StopCodes.Success.OK)
    if "get_extensions" in request.args:
        return api_utils.craft_response(
            kelp_module_repo.get_paginated_modules_by_user(
                request.args.get("username") or session.get("username"),
                int(request.args.get("page")),
                int(request.args.get("amount"))), StopCodes.Success.OK)
Esempio n. 2
0
def acp_plugins():
    if request.method == "POST":
        if "add_tag" in request.form:
            kelp_plugin_repo.add_plugin_tag(request.form.get("add_tag"))
        if "remove_tag" in request.form:
            kelp_plugin_repo.remove_plugin_tag(request.form.get("remove_tag"))
        if "remove_report" in request.form:
            kelp_plugin_repo.remove_report_by_id(
                request.form.get("remove_report"))
        if "remove_reports" in request.form:
            kelp_plugin_repo.remove_reports_by_plugin_uuid(
                request.form.get("remove_reports"))
        if "remove_plugin" in request.form:
            kelp_plugin_repo.remove_plugin(request.form.get("remove_plugin"))

        return api_utils.empty_success()

    if "get_plugins" in request.args:
        return api_utils.craft_response(kelp_plugin_repo.get_latest_plugins(),
                                        StopCodes.Success.OK)
    if "get_tags" in request.args:
        return api_utils.craft_response(kelp_plugin_repo.get_all_tags(),
                                        StopCodes.Success.OK)
    if "get_plugins_reports" in request.args:
        return api_utils.craft_response(kelp_plugin_repo.get_all_reports(),
                                        StopCodes.Success.OK)
    if "get_plugin" in request.args:
        return api_utils.craft_response(
            kelp_plugin_repo.get_plugin_by_uuid(
                request.args.get("get_plugin")), StopCodes.Success.OK)
    return render_template("acp/acp_plugins.html")
Esempio n. 3
0
def acp_users():
    if request.method == "POST":
        if "remove_user" in request.form:
            user_repo.delete_user(
                request.form.get("remove_user")
            )
        if "suspend_user" in request.form:
            user_repo.suspend_user(
                request.form.get("suspend_user"),
                request.form.get("suspend_until"),
                request.form.get("suspend_message")
            )
        if "remove_report" in request.form:
            user_repo.remove_report_by_id(
                request.form.get("remove_report")
            )
        if "remove_reports" in request.form:
            user_repo.remove_reports_by_username(
                request.form.get("remove_reports")
            )
        return api_utils.empty_success()

    if "get_user_reports" in request.args:
        return api_utils.craft_response(
            user_repo.get_all_reports(),
            StopCodes.Success.OK
        )
    if "get_user_report" in request.args:
        return api_utils.craft_response(
            user_repo.get_user_report_by_id(
                request.args.get("get_user_report")
            ), StopCodes.Success.OK
        )

    return render_template("acp/acp_users.html")
Esempio n. 4
0
def login():
    if request.method == "POST":

        if "reset_password" in request.form:
            if request.form.get(
                    "reset") in temp_db.data["user_password_resets"]:
                username = temp_db.data["user_password_resets"][
                    request.form.get("reset")]
                user_repo.set_password(username,
                                       request.form.get("reset_password"))
                session["logged_in"] = True
                session["username"] = username
                session[username] = user_repo.get_password_hash(username)
                temp_db.data["user_password_resets"].pop(
                    request.form.get("reset"), None)
                return redirect("/")
            abort(StopCodes.ClientError.NotFound)
        if "reset_password" in request.args:
            if user_repo.user_exists(request.form.get("username")):
                code = str(uuid.uuid4()).replace("-", "5c74e68")
                email_utils.send_user_password_reset_email(
                    user_repo.get_user_query_object(
                        request.form.get("username")).get_email(), code)
                temp_db.data["user_password_resets"][code] = request.form.get(
                    "username")
                return api_utils.craft_response({"successful": True}, 200)
            return api_utils.craft_response({"successful": False}, 200)

        redirection = request.args.get("goto_confirm") or "/"

        username = request.form.get("username")
        password = request.form.get("password")
        remember = request.form.get("remember")
        state = user_repo.check_user_password(username, password)

        if state:
            if not user_repo.check_verified(username):
                return render_template("login.html", non_verified=True)
            session["logged_in"] = True
            session["username"] = username
            session[username] = user_repo.get_password_hash(username)
            session.permanent = remember == "on"
            if not user_repo.get_user_query_object(username).get_suspended():
                return redirect(redirection)
            return render_template("suspended.html")

        return make_response(
            render_template("login.html", error="Wrong username or password"),
            StopCodes.ClientError.Unauthorized)

    if "reset" in request.args:
        if request.args.get("reset") in temp_db.data["user_password_resets"]:
            return render_template("login.html",
                                   _reset=request.args.get("reset"))
        abort(StopCodes.ClientError.NotFound)

    return render_template("login.html",
                           redirect=request.args.get("goto_confirm") or "/")
Esempio n. 5
0
def extensions_nav():
    if "get_modules" in request.args:
        return api_utils.craft_response(
            kelp_module_repo.get_all_modules(int(request.args.get("page")),
                                             int(request.args.get("amount"))),
            200)

    if "picture" in request.args:
        if request.args.get("picture") == "module_uuid":
            return api_utils.empty_success()
        return kelp_module_repo.get_module_picture(request.args.get("picture"))
    return render_template("extensions/extensions_nav.html")
Esempio n. 6
0
def search_engine():
    sorted_return = list()

    search = request.args.get("search")

    if search:
        for hit in search_utils.search_all_by_string(search):
            sorted_return.append(hit)

    if "q-search" in request.args:
        return render_template("search_nav.html", hits=sorted_return)

    return api_utils.craft_response(sorted_return, 200)
Esempio n. 7
0
def plugins_new():
    if request.method == "POST" and "plugin_create" in request.form:
        return api_utils.craft_response(
            kelp_plugin_repo.create_plugin(
                request.form.get("plugin_name"),
                session.get("username"),
                request.form.get("plugin_short_description"),
                request.form.get("plugin_description"),
                request.files.get("plugin_icon"),
                request.files.get("plugin_banner"),
                (request.form.get("plugin_tags") or "").split(","),
            ), StopCodes.Success.OK)
    return render_template("plugins/plugins_new.html",
                           tags=kelp_plugin_repo.get_all_tags())
Esempio n. 8
0
def plugin_manage():
    if not manage_permissions(session.get("username"), request.form[list(
            request.form.keys())[0]]):
        return abort(StopCodes.ClientError.Unauthorized)

    if "upload_plugin_file" in request.form:
        file = request.files.get("file")
        kelp_plugin_repo.upload_to_plugin(
            request.form.get("upload_plugin_file"), file, file.filename)
    if "add_plugin_link" in request.form:
        kelp_plugin_repo.add_link_to_plugin(
            request.form.get("add_plugin_link"), request.form.get("link"),
            request.form.get("name"))
    if "manage_files" in request.form:
        if "delete_file" in request.form:
            kelp_plugin_repo.remove_from_plugin(
                request.form.get("manage_files"),
                request.form.get("delete_file"))
            return api_utils.empty_success()
        return api_utils.craft_response(
            kelp_plugin_repo.get_plugin_file_list(
                request.form.get("manage_files")), StopCodes.Success.OK)
    if "change_plugin_icon" in request.form:
        kelp_plugin_repo.change_plugin_icon(
            request.form.get("change_plugin_icon"),
            request.files.get("picture"))
    if "change_plugin_banner" in request.form:
        kelp_plugin_repo.change_plugin_banner(
            request.form.get("change_plugin_banner"),
            request.files.get("picture"))
    if "edit_plugin_name" in request.form:
        kelp_plugin_repo.change_plugin_name(
            request.form.get("edit_plugin_name"),
            request.form.get("plugin_name"))
    if "edit_plugin_short_description" in request.form:
        kelp_plugin_repo.change_plugin_short_description(
            request.form.get("edit_plugin_short_description"),
            request.form.get("plugin_short_description"))
    if "edit_plugin_tags" in request.form:
        kelp_plugin_repo.set_plugin_tags(request.form.get("edit_plugin_tags"),
                                         request.form.get("plugin_tags"))
    if "edit_plugin_description" in request.form:
        kelp_plugin_repo.change_plugin_description(
            request.form.get("edit_plugin_description"),
            request.form.get("plugin_description"))
    if "remove_plugin" in request.form:
        kelp_plugin_repo.remove_plugin(request.form.get("remove_plugin"))

    return api_utils.empty_success()
Esempio n. 9
0
def plugins_nav():
    if "get_plugins" in request.args:
        if "tags" in request.args or "q" in request.args:
            return api_utils.craft_complex_response(
                kelp_plugin_repo.filter_plugins_by(
                    int(request.args.get("page")),
                    int(request.args.get("amount")),
                    request.args.get("q") or "", (request.args.get("tags")
                                                  or "").split(","),
                    read_count=True), StopCodes.Success.OK)
        return api_utils.craft_response(
            kelp_plugin_repo.get_all_plugins(int(request.args.get("page")),
                                             int(request.args.get("amount"))),
            StopCodes.Success.OK)
    if "get_tags" in request.args:
        return api_utils.craft_response(kelp_plugin_repo.get_all_tags(),
                                        StopCodes.Success.OK)

    if "icon" in request.args:
        return kelp_plugin_repo.get_plugin_icon(request.args.get("icon"))
    if "banner" in request.args:
        return kelp_plugin_repo.get_plugin_banner(request.args.get("banner"))

    return render_template("plugins/plugins_nav.html")
def acp_extensions():
    if request.method == "POST":
        if "create_module" in request.form:
            kelp_module_repo.create_module(
                request.form.get("id"),
                request.form.get("name"),
                session.get("username"),
                request.form.get("short_desc"),
                request.form.get("desc"),
                request.files.get("pict"),
                request.form.get("pin") == "true"
            )
        if "switch_pin" in request.form:
            kelp_module_repo.switch_pinned(
                request.form.get("switch_pin")
            )
        if "change_module_picture" in request.form:
            kelp_module_repo.change_module_picture(
                request.form.get("change_module_picture"),
                request.files.get("pict")
            )
        if "delete_module" in request.form:
            kelp_module_repo.remove_module(
                request.form.get("delete_module")
            )
        if "edit_module_name" in request.form:
            kelp_module_repo.change_module_name(
                request.form.get("edit_module_name"),
                request.form.get("module_name")
            )
        if "upload_module_file" in request.form:
            kelp_module_repo.upload_to_module(
                request.form.get("upload_module_file"),
                request.files.get("file"),
                request.form.get("filename")
            )
        if "delete_module_file" in request.form:
            kelp_module_repo.remove_from_module(
                request.form.get("delete_module_file"),
                request.form.get("filename")
            )
        if "edit_short_description" in request.form:
            kelp_module_repo.change_module_short_description(
                request.form.get("edit_short_description"),
                request.form.get("short_description")
            )
        if "edit_description" in request.form:
            kelp_module_repo.change_module_description(
                request.form.get("edit_description"),
                request.form.get("description")
            )

        return api_utils.empty_success()

    if "get_modules" in request.args:
        return api_utils.craft_response(
            kelp_module_repo.get_all_modules(all_by_creation_date=False),
            StopCodes.Success.OK
        )
    if "get_module" in request.args:
        return api_utils.craft_response(
            {
                "gen": kelp_module_repo.get_module_by_uuid(
                    request.args.get("get_module")
                ),
                "files": kelp_module_repo.get_module_file_list(
                    request.args.get("get_module")
                )
            }, StopCodes.Success.OK
        )

    return render_template("acp/acp_extensions.html")