feat(itim): Port number validation to check for valid port numbers

!43 #69
This commit is contained in:
2024-07-21 09:35:57 +09:30
parent afe4266600
commit b46c61954c
3 changed files with 11 additions and 3 deletions

View File

@ -1,4 +1,4 @@
# Generated by Django 5.0.7 on 2024-07-20 23:50
# Generated by Django 5.0.7 on 2024-07-21 00:05
import django.db.models.deletion
from django.db import migrations, models

View File

@ -1,9 +1,10 @@
# Generated by Django 5.0.7 on 2024-07-20 23:50
# Generated by Django 5.0.7 on 2024-07-21 00:05
import access.fields
import access.models
import django.db.models.deletion
import django.utils.timezone
import itim.models.services
from django.db import migrations, models
@ -60,7 +61,7 @@ class Migration(migrations.Migration):
('is_global', models.BooleanField(default=False)),
('model_notes', models.TextField(blank=True, default=None, null=True, verbose_name='Notes')),
('id', models.AutoField(primary_key=True, serialize=False, unique=True)),
('number', models.IntegerField(help_text='The port number', verbose_name='Port Number')),
('number', models.IntegerField(help_text='The port number', validators=[itim.models.services.Port.validation_port_number], verbose_name='Port Number')),
('description', models.CharField(blank=True, default=None, help_text='Short description of port', max_length=80, null=True, verbose_name='Description')),
('protocol', models.CharField(choices=[('TCP', 'TCP'), ('UDP', 'UDP')], default='TCP', help_text='Layer 4 Network Protocol', max_length=3, verbose_name='Protocol')),
('created', access.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False)),

View File

@ -30,6 +30,12 @@ class Port(TenancyObject):
TCP = 'TCP', 'TCP'
UDP = 'UDP', 'UDP'
def validation_port_number(number: int):
if number < 1 or number > 65535:
raise ValidationError('A Valid port number is between 1-65535')
id = models.AutoField(
primary_key=True,
@ -41,6 +47,7 @@ class Port(TenancyObject):
blank = False,
help_text = 'The port number',
unique = False,
validators = [ validation_port_number ],
verbose_name = 'Port Number',
)