Skip to content

Commit

Permalink
Merge pull request #587 from MTES-MCT/feat-notrust-brevo
Browse files Browse the repository at this point in the history
Ajout de validation des inputs utilisateurs de texte afin qu'ils ne contiennent que du texte
  • Loading branch information
alexisig authored Sep 30, 2024
2 parents 9d04c59 + 01e841d commit e30968b
Show file tree
Hide file tree
Showing 12 changed files with 509 additions and 211 deletions.
133 changes: 133 additions & 0 deletions project/migrations/0090_alter_historicalrequest_first_name_and_more.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# Generated by Django 4.2.13 on 2024-09-30 09:42

from django.db import migrations, models
import utils.validators


class Migration(migrations.Migration):
dependencies = [
("project", "0089_rnupackagerequest"),
]

operations = [
migrations.AlterField(
model_name="historicalrequest",
name="first_name",
field=models.CharField(
max_length=150, null=True, validators=[utils.validators.is_alpha_validator], verbose_name="Prénom"
),
),
migrations.AlterField(
model_name="historicalrequest",
name="function",
field=models.CharField(
max_length=250, null=True, validators=[utils.validators.is_alpha_validator], verbose_name="Fonction"
),
),
migrations.AlterField(
model_name="historicalrequest",
name="last_name",
field=models.CharField(
max_length=150, null=True, validators=[utils.validators.is_alpha_validator], verbose_name="Nom"
),
),
migrations.AlterField(
model_name="historicalrequest",
name="organism",
field=models.CharField(
choices=[
("AGENCE", "Agence d'urbanisme"),
("ASSOCI", "Association"),
("BUREAU", "Bureau d'études"),
("COMMUN", "Commune"),
("DDT", "DDT"),
("DDTM", "DDTM"),
("DEAL", "DEAL"),
("DREAL", "DREAL"),
("DRIEAT", "DRIEAT"),
("EPCI", "EPCI"),
("PARTIC", "Particulier"),
("SCOT", "SCOT"),
("AUTRE", "Autre"),
],
default="COMMUN",
max_length=30,
validators=[utils.validators.is_alpha_validator],
verbose_name="Organisme",
),
),
migrations.AlterField(
model_name="historicalrequest",
name="requested_document",
field=models.CharField(
choices=[
("rapport-conso", "Rapport de consommation"),
("rapport-complet", "Rapport complet"),
("rapport-local", "Rapport local"),
],
max_length=30,
validators=[utils.validators.is_alpha_validator],
verbose_name="Document demandé",
),
),
migrations.AlterField(
model_name="request",
name="first_name",
field=models.CharField(
max_length=150, null=True, validators=[utils.validators.is_alpha_validator], verbose_name="Prénom"
),
),
migrations.AlterField(
model_name="request",
name="function",
field=models.CharField(
max_length=250, null=True, validators=[utils.validators.is_alpha_validator], verbose_name="Fonction"
),
),
migrations.AlterField(
model_name="request",
name="last_name",
field=models.CharField(
max_length=150, null=True, validators=[utils.validators.is_alpha_validator], verbose_name="Nom"
),
),
migrations.AlterField(
model_name="request",
name="organism",
field=models.CharField(
choices=[
("AGENCE", "Agence d'urbanisme"),
("ASSOCI", "Association"),
("BUREAU", "Bureau d'études"),
("COMMUN", "Commune"),
("DDT", "DDT"),
("DDTM", "DDTM"),
("DEAL", "DEAL"),
("DREAL", "DREAL"),
("DRIEAT", "DRIEAT"),
("EPCI", "EPCI"),
("PARTIC", "Particulier"),
("SCOT", "SCOT"),
("AUTRE", "Autre"),
],
default="COMMUN",
max_length=30,
validators=[utils.validators.is_alpha_validator],
verbose_name="Organisme",
),
),
migrations.AlterField(
model_name="request",
name="requested_document",
field=models.CharField(
choices=[
("rapport-conso", "Rapport de consommation"),
("rapport-complet", "Rapport complet"),
("rapport-local", "Rapport local"),
],
max_length=30,
validators=[utils.validators.is_alpha_validator],
verbose_name="Document demandé",
),
),
]
32 changes: 32 additions & 0 deletions project/migrations/0091_auto_20240930_1152.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Generated by Django 4.2.13 on 2024-09-30 09:52

from django.db import migrations

from utils.validators import is_alpha_valid


def remove_invalid_user_inputs(apps, schema_editor):
Request = apps.get_model("project", "Request")

for request in Request.objects.all():
if not is_alpha_valid(request.first_name):
request.first_name = "empty"
if not is_alpha_valid(request.last_name):
request.last_name = "empty"
if not is_alpha_valid(request.function):
request.function = "empty"
if not is_alpha_valid(request.organism):
request.organism = "COMMUN"
if not is_alpha_valid(request.requested_document):
request.requested_document = "rapport-complet"
request.save()


class Migration(migrations.Migration):
dependencies = [
("project", "0090_alter_historicalrequest_first_name_and_more"),
]

operations = [
migrations.RunPython(remove_invalid_user_inputs),
]
12 changes: 6 additions & 6 deletions project/models/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

from project.models import Project
from users.models import User
from utils.validators import is_alpha_validator


def upload_in_project_folder(request: "Request", filename: str) -> str:
Expand All @@ -18,14 +19,15 @@ class RequestedDocumentChoices(models.TextChoices):


class Request(models.Model):
first_name = models.CharField("Prénom", max_length=150)
last_name = models.CharField("Nom", max_length=150)
function = models.CharField("Fonction", max_length=250, null=True)
first_name = models.CharField("Prénom", max_length=150, validators=[is_alpha_validator], null=True)
last_name = models.CharField("Nom", max_length=150, validators=[is_alpha_validator], null=True)
function = models.CharField("Fonction", max_length=250, validators=[is_alpha_validator], null=True)
organism = models.CharField(
"Organisme",
max_length=30,
choices=User.ORGANISMS.choices,
default=User.ORGANISMS.COMMUNE,
validators=[is_alpha_validator],
)
email = models.EmailField("E-mail")
project = models.ForeignKey(Project, on_delete=models.SET_NULL, verbose_name="Projet", blank=True, null=True)
Expand All @@ -41,9 +43,7 @@ class Request(models.Model):
sent_date = models.DateTimeField("date d'envoi", null=True, blank=True)
done = models.BooleanField("A été envoyé ?", default=False)
requested_document = models.CharField(
"Document demandé",
max_length=30,
choices=RequestedDocumentChoices.choices,
"Document demandé", max_length=30, choices=RequestedDocumentChoices.choices, validators=[is_alpha_validator]
)
sent_file = models.FileField(upload_to=upload_in_project_folder, null=True, blank=True)
history = HistoricalRecords()
Expand Down
103 changes: 0 additions & 103 deletions project/tests/tests.py

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Generated by Django 4.2.13 on 2024-09-30 09:17

from django.db import migrations, models
import utils.validators


class Migration(migrations.Migration):
dependencies = [
("users", "0013_auto_20240718_1408"),
]

operations = [
migrations.AlterField(
model_name="user",
name="first_name",
field=models.CharField(
max_length=150, validators=[utils.validators.is_alpha_validator], verbose_name="Prénom"
),
),
migrations.AlterField(
model_name="user",
name="function",
field=models.CharField(
max_length=250, validators=[utils.validators.is_alpha_validator], verbose_name="Fonction"
),
),
migrations.AlterField(
model_name="user",
name="last_name",
field=models.CharField(
max_length=150, validators=[utils.validators.is_alpha_validator], verbose_name="Nom"
),
),
migrations.AlterField(
model_name="user",
name="organism",
field=models.CharField(
choices=[
("AGENCE", "Agence d'urbanisme"),
("ASSOCI", "Association"),
("BUREAU", "Bureau d'études"),
("COMMUN", "Commune"),
("DDT", "DDT"),
("DDTM", "DDTM"),
("DEAL", "DEAL"),
("DREAL", "DREAL"),
("DRIEAT", "DRIEAT"),
("EPCI", "EPCI"),
("PARTIC", "Particulier"),
("SCOT", "SCOT"),
("AUTRE", "Autre"),
],
default="COMMUN",
max_length=250,
validators=[utils.validators.is_alpha_validator],
verbose_name="Organisme",
),
),
]
29 changes: 29 additions & 0 deletions users/migrations/0015_auto_20240930_1148.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Generated by Django 4.2.13 on 2024-09-30 09:48

from django.db import migrations
from utils.validators import is_alpha_valid


def remove_invalid_user_inputs(apps, schema_editor):
User = apps.get_model("users", "User")

for user in User.objects.all():
if not is_alpha_valid(user.first_name):
user.first_name = "empty"
if not is_alpha_valid(user.last_name):
user.last_name = "empty"
if not is_alpha_valid(user.function):
user.function = "empty"
if not is_alpha_valid(user.organism):
user.organism = "COMMUN"
user.save()


class Migration(migrations.Migration):
dependencies = [
("users", "0014_alter_user_first_name_alter_user_function_and_more"),
]

operations = [
migrations.RunPython(remove_invalid_user_inputs),
]
Loading

0 comments on commit e30968b

Please sign in to comment.