Skip to content
Snippets Groups Projects
Verified Commit 40859491 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Remove path_and_rename

This function eludes the storage API and was proven to encourage
anti-patterns and security flaws in code that uses it.
parent 7d022176
No related branches found
No related tags found
1 merge request!562Remove path_and_rename
Pipeline #6842 passed
import re
from aleksis.core.util.core_helpers import path_and_rename
def test_path_and_rename():
re_base = r"[a-z0-9]+"
example_1 = "sdjaasjkl.jpg"
re_example_1 = "files/" + re_base + r"\.jpg"
re2_example_1 = "images/" + re_base + r"\.jpg"
assert re.match(re_example_1, path_and_rename(None, example_1))
assert re.match(re2_example_1, path_and_rename(None, example_1, upload_to="images"))
example_2 = "sdjaasjkl"
re_example_2 = "files/" + re_base
re2_example_2 = "images/" + re_base
assert re.match(re_example_2, path_and_rename(None, example_2))
assert re.match(re2_example_2, path_and_rename(None, example_2, upload_to="images"))
import os
import sys
from datetime import datetime, timedelta
from importlib import import_module
from itertools import groupby
from operator import itemgetter
from typing import Any, Callable, Optional, Sequence, Union
from uuid import uuid4
if sys.version_info >= (3, 9):
from importlib import metadata
......@@ -183,20 +181,6 @@ def has_person(obj: Union[HttpRequest, Model]) -> bool:
return True
def path_and_rename(instance, filename: str, upload_to: str = "files") -> str:
"""Update path of an uploaded file and renames it to a random UUID in Django FileField."""
_, ext = os.path.splitext(filename)
# set filename as random string
new_filename = f"{uuid4().hex}{ext}"
# Create upload directory if necessary
os.makedirs(os.path.join(settings.MEDIA_ROOT, upload_to), exist_ok=True)
# return the whole path to the file
return os.path.join(upload_to, new_filename)
def custom_information_processor(request: HttpRequest) -> dict:
"""Provide custom information in all templates."""
from ..models import CustomMenu
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment