From 44259a8c51bd8196412e642f63150e47ef339a71 Mon Sep 17 00:00:00 2001 From: Norm Rasmussen Date: Thu, 16 Mar 2023 17:36:10 -0400 Subject: [PATCH] Clear session now deletes all the templates. Added socketio disconnect function too. Need to remove special characters from filepath since glob can't recognize. --- app/__pycache__/forms.cpython-311.pyc | Bin 3167 -> 3167 bytes app/__pycache__/routes.cpython-311.pyc | Bin 20994 -> 23260 bytes app/routes.py | 72 +++++-- .../_cards_course.html.liquid | 49 ----- .../_cards_featured_course.html.liquid | 44 ----- .../_course_details.html.liquid | 0 .../_footer.html.liquid | 80 -------- .../_head.html.liquid | 11 -- .../_header.html.liquid | 183 ------------------ .../_section_faqs.html.liquid | 109 ----------- .../_section_instructors.html.liquid | 91 --------- .../catalog.html.liquid | 39 ---- .../community.html.liquid | 33 ---- .../files/{ => csv}/Amyris-12-21T1630.csv | 0 .../files/{ => csv}/FLASK-TEST_-_Sheet1.csv | 0 .../files/{ => csv}/FLASK-TEST_-_Sheet1_1.csv | 0 16 files changed, 55 insertions(+), 656 deletions(-) delete mode 100644 app/static/files/[Sandbox] Norm's Academy/_cards_course.html.liquid delete mode 100644 app/static/files/[Sandbox] Norm's Academy/_cards_featured_course.html.liquid delete mode 100644 app/static/files/[Sandbox] Norm's Academy/_course_details.html.liquid delete mode 100644 app/static/files/[Sandbox] Norm's Academy/_footer.html.liquid delete mode 100644 app/static/files/[Sandbox] Norm's Academy/_head.html.liquid delete mode 100644 app/static/files/[Sandbox] Norm's Academy/_header.html.liquid delete mode 100644 app/static/files/[Sandbox] Norm's Academy/_section_faqs.html.liquid delete mode 100644 app/static/files/[Sandbox] Norm's Academy/_section_instructors.html.liquid delete mode 100644 app/static/files/[Sandbox] Norm's Academy/catalog.html.liquid delete mode 100644 app/static/files/[Sandbox] Norm's Academy/community.html.liquid rename app/static/files/{ => csv}/Amyris-12-21T1630.csv (100%) rename app/static/files/{ => csv}/FLASK-TEST_-_Sheet1.csv (100%) rename app/static/files/{ => csv}/FLASK-TEST_-_Sheet1_1.csv (100%) diff --git a/app/__pycache__/forms.cpython-311.pyc b/app/__pycache__/forms.cpython-311.pyc index 34fd422eb6fa804cfbd46afa5420ffb565545534..10728c14f80d1b1db7b6c45d6345d015b742f431 100644 GIT binary patch delta 20 acmcaFabJRaIWI340}wQb2yf&L;Q;_R&IE`6 delta 20 acmcaFabJRaIWI340}ymy6Wquh!UF(3odr_> diff --git a/app/__pycache__/routes.cpython-311.pyc b/app/__pycache__/routes.cpython-311.pyc index c5ae44804c84f3f163c6a4236e98b61e82395eb8..18f4d6e843b95bba177954b8ca9a22cf4ca7057a 100644 GIT binary patch delta 8943 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 X2Rg{t10Y>_u0~Jq+}Ede!(#t05l!yC delta 7064 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 B6leed diff --git a/app/routes.py b/app/routes.py index 5b5129f..c513f99 100644 --- a/app/routes.py +++ b/app/routes.py @@ -1,8 +1,13 @@ import requests +import shutil import itertools import re import os import csv +import glob +import pathlib +from flask_socketio import SocketIO +from datetime import datetime, timezone from .forms import TemplateForm from functools import wraps from flask import ( @@ -19,12 +24,15 @@ from werkzeug.utils import secure_filename from app import app, forms # Upload folder -UPLOAD_FOLDER = "/Users/normrasmussen/Documents/Projects/CSM_webapp/app/static/files" -# UPLOAD_FOLDER = 'static/files' +UPLOAD_FOLDER = "/Users/normrasmussen/Documents/Projects/CSM_webapp/app/static/files/csv" +TEMPLATES_FOLDER = "/Users/normrasmussen/Documents/Projects/CSM_webapp/app/static/files/templates/" app.config["UPLOAD_FOLDER"] = UPLOAD_FOLDER +app.config["TEMPLATES_FOLDER"] = TEMPLATES_FOLDER ALLOWED_EXTENSIONS = {"csv"} # Global Variables +socketio = SocketIO(app) +specials = '"!@#$%^&[]*()-+?_=,<>/"' url = "https://api.northpass.com/" @@ -72,7 +80,6 @@ def ask_key(): Without this key, no other functions will work. It also assigns the api key to the session and clears the session upon each reload. """ - specials = '"!@#$%^&*()-+?_=,<>/"' if request.method == "POST": session["key"] = request.form.get("apikey") if any(char in specials for char in session["key"]) or re.search( @@ -104,6 +111,19 @@ def render_home(): @app.route("/clear_session", methods=["GET", "POST"]) def clear_session(): if session.get("key"): + if session.get("client_path"): + client = session["client_path"] + print(client) + wildcard = glob.glob(client + '_*') + print(wildcard) + for directory in wildcard: + print(directory) + try: + shutil.rmtree(directory) + print(directory) + except OSError: + print(OSError) + print("Error?") session.clear() error = "Session Cleared!" return render_template("index.html", error=error, title="Home, New session") @@ -118,7 +138,6 @@ def table(): @app.route("/upload_file", methods=["GET", "POST"]) @key_required def upload_file(): - print("Uploading CSV") if request.method == "POST": if "file" not in request.files: flash("No file found or uploaded") @@ -312,6 +331,8 @@ def load_templates(): nextlink = data["links"] for response in data["data"]: last_updated = response["attributes"]["updated_at"].split("T") + full_updated = response["attributes"]["updated_at"] + g.full_updated = datetime.fromisoformat(full_updated) last_updated = last_updated[0] name, body, last_updated = ( response["attributes"]["name"], @@ -340,7 +361,6 @@ def templates(): if request.form["submit-template"]: name = request.form.get("template_name") body = request.form.get("body") - g.last_template = name if body == "": error = ( "Ooph. Looks like you didn't load the changes before submitting." @@ -355,15 +375,18 @@ def templates(): } payload = {"custom_template": {"name": name, "body": body}} response = requests.post(url + endpoint, json=payload, headers=headers) - return check_templates(response) + return check_templates(response, name) return load_templates() -def check_templates(response): - print(response) +def check_templates(response, name): response = str(response) if "201" in response: - error = "Success! Templates Uploaded." + error = ( + f"Success! The {name} template was successfully uploaded for " + + session["school"] + + "." + ) button = "Undo" return render_template( "templates.html", title="Templates Added", error=error, button=button @@ -380,16 +403,25 @@ def check_templates(response): def save_templates_backup(templates): - g.client_path = os.path.join(UPLOAD_FOLDER, session["school"]) - if os.path.exists(g.client_path): + session["client_path"] = os.path.join(TEMPLATES_FOLDER, session["school"]) + if any(char in specials for char in session["client_path"]): + for char in specials: + session["sanitized_path"] = session["client_path"].replace(char,"") + print(session["sanitized_path"]) + else: + session["sanitized_path"] = session["client_path"] + print(session["client_path"]) + today = datetime.now(timezone.utc) + if os.path.exists(session["client_path"]): pass else: - os.mkdir(g.client_path) + path = session["client_path"] + "_" + str(today) + os.mkdir(path) for tupe in templates: file_name = tupe[0] + ".liquid" file_body = tupe[1] - complete_path = os.path.join(g.client_path, file_name) + complete_path = os.path.join(path, file_name) with open(complete_path, "w+") as temp: temp.write(file_body) @@ -399,12 +431,18 @@ def save_templates_backup(templates): @app.route("/undo_template", methods=["POST"]) @key_required def undo_template(): - print(g.client_path) - template_path = os.path.join(g.client_path, g.last_template) if request.method == "POST": if request.form["undo_templates"]: - if os.path.exists(template_path): - print(template_path) + pass + +@socketio.on("disconnect") +def test_disconnect(): + print("Client disconnected") + + +@socketio.on("connect") +def test_connect(): + print("connection established") @app.route("/cmtest", methods=["GET", "POST"]) diff --git a/app/static/files/[Sandbox] Norm's Academy/_cards_course.html.liquid b/app/static/files/[Sandbox] Norm's Academy/_cards_course.html.liquid deleted file mode 100644 index 7d08608..0000000 --- a/app/static/files/[Sandbox] Norm's Academy/_cards_course.html.liquid +++ /dev/null @@ -1,49 +0,0 @@ - -
- {% if course.ribbon %} -
- {{ course.ribbon }} -
- {% endif %} - -
-

- {{ course.name }} -

-
- {{ course.full_description }} -
- -
- {% t shared.progress, count: course.progress %} -
- -
-
-
- diff --git a/app/static/files/[Sandbox] Norm's Academy/_cards_featured_course.html.liquid b/app/static/files/[Sandbox] Norm's Academy/_cards_featured_course.html.liquid deleted file mode 100644 index 70cba72..0000000 --- a/app/static/files/[Sandbox] Norm's Academy/_cards_featured_course.html.liquid +++ /dev/null @@ -1,44 +0,0 @@ - diff --git a/app/static/files/[Sandbox] Norm's Academy/_course_details.html.liquid b/app/static/files/[Sandbox] Norm's Academy/_course_details.html.liquid deleted file mode 100644 index e69de29..0000000 diff --git a/app/static/files/[Sandbox] Norm's Academy/_footer.html.liquid b/app/static/files/[Sandbox] Norm's Academy/_footer.html.liquid deleted file mode 100644 index 79a0481..0000000 --- a/app/static/files/[Sandbox] Norm's Academy/_footer.html.liquid +++ /dev/null @@ -1,80 +0,0 @@ -
- - - -
diff --git a/app/static/files/[Sandbox] Norm's Academy/_head.html.liquid b/app/static/files/[Sandbox] Norm's Academy/_head.html.liquid deleted file mode 100644 index bde9ff3..0000000 --- a/app/static/files/[Sandbox] Norm's Academy/_head.html.liquid +++ /dev/null @@ -1,11 +0,0 @@ -{% styles default %} -{% styles colors %} -{% styles custom %} - - - - - - - - diff --git a/app/static/files/[Sandbox] Norm's Academy/_header.html.liquid b/app/static/files/[Sandbox] Norm's Academy/_header.html.liquid deleted file mode 100644 index 56b76c5..0000000 --- a/app/static/files/[Sandbox] Norm's Academy/_header.html.liquid +++ /dev/null @@ -1,183 +0,0 @@ -
-
-
- {% if current_person.signed_in? %} - - - {% endif %} -
- {% if current_school.logo_url %} -

- - {{ current_school.name }} - -

- {% else %} - - {{ current_school.name }} - - {% endif %} - -
- -
- - {% if current_person.signed_in? %} - -
- - -
- {% else %} -
- -{% include "messages" %} - diff --git a/app/static/files/[Sandbox] Norm's Academy/_section_faqs.html.liquid b/app/static/files/[Sandbox] Norm's Academy/_section_faqs.html.liquid deleted file mode 100644 index 7e6d46f..0000000 --- a/app/static/files/[Sandbox] Norm's Academy/_section_faqs.html.liquid +++ /dev/null @@ -1,109 +0,0 @@ - -/ - - - \ No newline at end of file diff --git a/app/static/files/[Sandbox] Norm's Academy/_section_instructors.html.liquid b/app/static/files/[Sandbox] Norm's Academy/_section_instructors.html.liquid deleted file mode 100644 index 2433e20..0000000 --- a/app/static/files/[Sandbox] Norm's Academy/_section_instructors.html.liquid +++ /dev/null @@ -1,91 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/static/files/[Sandbox] Norm's Academy/catalog.html.liquid b/app/static/files/[Sandbox] Norm's Academy/catalog.html.liquid deleted file mode 100644 index 8ce1105..0000000 --- a/app/static/files/[Sandbox] Norm's Academy/catalog.html.liquid +++ /dev/null @@ -1,39 +0,0 @@ -{% include "header" %} -{% include "course_version_outdated_alert", courses: courses.in_catalog %} -
-
-
-
-
- Menlo Security Resrouces -
-
- Resources to help you make the most of your Security Training -
-
-
-{% include "sub_navigation" %} - {% include "courses_catalog" %} - -{% include "footer" %} - - - - - \ No newline at end of file diff --git a/app/static/files/[Sandbox] Norm's Academy/community.html.liquid b/app/static/files/[Sandbox] Norm's Academy/community.html.liquid deleted file mode 100644 index 9157fd7..0000000 --- a/app/static/files/[Sandbox] Norm's Academy/community.html.liquid +++ /dev/null @@ -1,33 +0,0 @@ - {% include 'header' %} -
-
-

Explore

-
- {% include 'sub_navigation' %} -
- -
-
-{% include 'footer' %} - - - \ No newline at end of file diff --git a/app/static/files/Amyris-12-21T1630.csv b/app/static/files/csv/Amyris-12-21T1630.csv similarity index 100% rename from app/static/files/Amyris-12-21T1630.csv rename to app/static/files/csv/Amyris-12-21T1630.csv diff --git a/app/static/files/FLASK-TEST_-_Sheet1.csv b/app/static/files/csv/FLASK-TEST_-_Sheet1.csv similarity index 100% rename from app/static/files/FLASK-TEST_-_Sheet1.csv rename to app/static/files/csv/FLASK-TEST_-_Sheet1.csv diff --git a/app/static/files/FLASK-TEST_-_Sheet1_1.csv b/app/static/files/csv/FLASK-TEST_-_Sheet1_1.csv similarity index 100% rename from app/static/files/FLASK-TEST_-_Sheet1_1.csv rename to app/static/files/csv/FLASK-TEST_-_Sheet1_1.csv