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)
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")
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")
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 "/")
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")
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)
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())
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()
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")