-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2256 from IFRCGo/feature/secure-files
Secure file fields by adding random uuid in the file name.
- Loading branch information
Showing
12 changed files
with
211 additions
and
11 deletions.
There are no files selected for viewing
30 changes: 30 additions & 0 deletions
30
api/migrations/0215_alter_generaldocument_document_and_more.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# Generated by Django 4.2.16 on 2024-10-29 08:51 | ||
|
||
from django.db import migrations | ||
|
||
import api.models | ||
import main.fields | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
("api", "0214_alter_profile_limit_access_to_guest"), | ||
] | ||
|
||
operations = [ | ||
migrations.AlterField( | ||
model_name="generaldocument", | ||
name="document", | ||
field=main.fields.SecureFileField( | ||
blank=True, null=True, upload_to=api.models.general_document_path, verbose_name="document" | ||
), | ||
), | ||
migrations.AlterField( | ||
model_name="situationreport", | ||
name="document", | ||
field=main.fields.SecureFileField( | ||
blank=True, null=True, upload_to=api.models.sitrep_document_path, verbose_name="document" | ||
), | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
28 changes: 28 additions & 0 deletions
28
country_plan/migrations/0008_alter_countryplan_internal_plan_file.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Generated by Django 4.2.16 on 2024-10-29 08:51 | ||
|
||
import django.core.validators | ||
from django.db import migrations | ||
|
||
import country_plan.models | ||
import main.fields | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
("country_plan", "0007_alter_membershipcoordination_sector_and_more"), | ||
] | ||
|
||
operations = [ | ||
migrations.AlterField( | ||
model_name="countryplan", | ||
name="internal_plan_file", | ||
field=main.fields.SecureFileField( | ||
blank=True, | ||
null=True, | ||
upload_to=country_plan.models.pdf_upload_to, | ||
validators=[django.core.validators.FileExtensionValidator(["pdf"])], | ||
verbose_name="Internal Plan", | ||
), | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
39 changes: 39 additions & 0 deletions
39
dref/migrations/0075_alter_dref_budget_file_preview_alter_dreffile_file_and_more.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# Generated by Django 4.2.16 on 2024-10-29 08:51 | ||
|
||
from django.db import migrations | ||
|
||
import main.fields | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
("dref", "0074_auto_20240129_0909"), | ||
] | ||
|
||
operations = [ | ||
migrations.AlterField( | ||
model_name="dref", | ||
name="budget_file_preview", | ||
field=main.fields.SecureFileField( | ||
blank=True, null=True, upload_to="dref/images/", verbose_name="budget file preview" | ||
), | ||
), | ||
migrations.AlterField( | ||
model_name="dreffile", | ||
name="file", | ||
field=main.fields.SecureFileField(upload_to="dref/images/", verbose_name="file"), | ||
), | ||
migrations.AlterField( | ||
model_name="dreffinalreport", | ||
name="financial_report_preview", | ||
field=main.fields.SecureFileField(blank=True, null=True, upload_to="dref/images/", verbose_name="financial preview"), | ||
), | ||
migrations.AlterField( | ||
model_name="drefoperationalupdate", | ||
name="budget_file_preview", | ||
field=main.fields.SecureFileField( | ||
blank=True, null=True, upload_to="dref-op-update/images/", verbose_name="budget file preview" | ||
), | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
27 changes: 27 additions & 0 deletions
27
flash_update/migrations/0013_alter_flashgraphicmap_file_and_more.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Generated by Django 4.2.16 on 2024-10-29 08:51 | ||
|
||
from django.db import migrations | ||
|
||
import main.fields | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
("flash_update", "0012_auto_20230410_0720"), | ||
] | ||
|
||
operations = [ | ||
migrations.AlterField( | ||
model_name="flashgraphicmap", | ||
name="file", | ||
field=main.fields.SecureFileField(upload_to="flash_update/images", verbose_name="file"), | ||
), | ||
migrations.AlterField( | ||
model_name="flashupdate", | ||
name="extracted_file", | ||
field=main.fields.SecureFileField( | ||
blank=True, null=True, upload_to="flash_update/pdf/", verbose_name="extracted file" | ||
), | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
from uuid import uuid4 | ||
|
||
from django.db.models.fields.files import FileField | ||
|
||
|
||
class SecureFileField(FileField): | ||
def generate_filename(self, instance, filename): | ||
""" | ||
Overwrites https://github.com/django/django/blob/main/django/db/models/fields/files.py#L345 | ||
""" | ||
# Append uuid4 path to the filename | ||
filename = f"{uuid4().hex}/{filename}" | ||
return super().generate_filename(instance, filename) # return self.storage.generate_filename(filename) |
25 changes: 25 additions & 0 deletions
25
per/migrations/0123_alter_perdocumentupload_file_alter_perfile_file.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Generated by Django 4.2.16 on 2024-10-29 08:51 | ||
|
||
from django.db import migrations | ||
|
||
import main.fields | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
("per", "0122_opslearningcacheresponse_and_more"), | ||
] | ||
|
||
operations = [ | ||
migrations.AlterField( | ||
model_name="perdocumentupload", | ||
name="file", | ||
field=main.fields.SecureFileField(upload_to="per/documents/", verbose_name="file"), | ||
), | ||
migrations.AlterField( | ||
model_name="perfile", | ||
name="file", | ||
field=main.fields.SecureFileField(upload_to="per/images/", verbose_name="file"), | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters