Skip to content

Commit 9bd11a6

Browse files
committed
pass crackme object to solution_create and set has_markdown for uploaded markdown files
1 parent f2c1a5c commit 9bd11a6

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

app/controllers/solution.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
MAX_INFO_LENGTH = 200
2727
MAX_CONTENT_LENGTH = 50000
2828
MIN_CONTENT_LENGTH = 200
29+
MARKDOWN_EXTENSIONS = frozenset({'.md', '.txt', '.markdown'})
2930

3031

3132
def _get_crackme_or_abort(hexid):
@@ -145,9 +146,11 @@ def upload_solution_post(hexidcrackme):
145146
return redirect(redirect_url)
146147

147148
original_filename = secure_filename(file.filename) or "unnamed"
149+
ext = os.path.splitext(original_filename)[1].lower()
150+
has_markdown = ext in MARKDOWN_EXTENSIONS
148151

149152
try:
150-
solution, crackme = solution_create(info, username, hexidcrackme, original_filename)
153+
solution = solution_create(info, username, crackme, original_filename, has_markdown)
151154
except Exception as e:
152155
print(f"Error creating solution: {e}")
153156
abort(500)
@@ -225,7 +228,7 @@ def editor_solution_post(hexidcrackme):
225228
return redirect(redirect_url)
226229

227230
try:
228-
solution, crackme = solution_create(info, username, hexidcrackme, original_filename='writeup.md', has_markdown=True)
231+
solution = solution_create(info, username, crackme, 'writeup.md', has_markdown=True)
229232
except Exception as e:
230233
print(f"Error creating solution: {e}")
231234
abort(500)

app/models/solution.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,11 @@ def get_solution_authors(crackme_hexid):
125125
return set(solution['author'] for solution in solutions)
126126

127127

128-
def solution_create(info, username, crackme_hexid, original_filename=None, has_markdown=False):
128+
def solution_create(info, username, crackme, original_filename=None, has_markdown=False):
129129
"""Create a new solution."""
130130
if not check_connection():
131131
raise ErrUnavailable("Database is unavailable")
132132

133-
# Get the crackme
134-
from app.models.crackme import crackme_by_hexid
135-
crackme = crackme_by_hexid(crackme_hexid)
136-
137133
collection = get_collection('solution')
138134
obj_id = ObjectId()
139135

@@ -153,4 +149,4 @@ def solution_create(info, username, crackme_hexid, original_filename=None, has_m
153149
}
154150

155151
collection.insert_one(solution)
156-
return solution, crackme
152+
return solution

0 commit comments

Comments
 (0)