diff --git a/logs_collector/collector/admin.py b/logs_collector/collector/admin.py index c0faffb..199830e 100644 --- a/logs_collector/collector/admin.py +++ b/logs_collector/collector/admin.py @@ -1,6 +1,6 @@ from django.contrib import admin -from .models import Platform, Archive, Ticket +from .models import Platform, Archive, Ticket, Token # Register your models here. @@ -16,6 +16,11 @@ class ArchiveAdmin(admin.ModelAdmin): pass +class TokenAdmin(admin.ModelAdmin): + pass + + admin.site.register(Platform, PlatformAdmin) admin.site.register(Ticket, TicketAdmin) admin.site.register(Archive, ArchiveAdmin) +admin.site.register(Token, TokenAdmin) diff --git a/logs_collector/collector/migrations/0005_token_archive_token.py b/logs_collector/collector/migrations/0005_token_archive_token.py new file mode 100644 index 0000000..2f48108 --- /dev/null +++ b/logs_collector/collector/migrations/0005_token_archive_token.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2 on 2023-08-08 11:16 + +from django.conf import settings +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('collector', '0004_rename_sha1_archive_md5_remove_archive_size'), + ] + + operations = [ + migrations.CreateModel( + name='Token', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('expires', models.IntegerField(default=5, validators=[django.core.validators.MaxValueValidator(100), django.core.validators.MinValueValidator(1)])), + ('blocked', models.BooleanField(default=False)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.AddField( + model_name='archive', + name='token', + field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='collector.token'), + preserve_default=False, + ), + ] diff --git a/logs_collector/collector/models.py b/logs_collector/collector/models.py index 437b789..d2018f0 100644 --- a/logs_collector/collector/models.py +++ b/logs_collector/collector/models.py @@ -1,6 +1,8 @@ import hashlib +import uuid from functools import partial +from django.core.validators import MaxValueValidator, MinValueValidator from django.contrib.auth.models import User from django.db import models from django.conf import settings @@ -37,6 +39,7 @@ class Archive(models.Model): db_column='ticket_number', on_delete=models.CASCADE ) + token = models.ForeignKey('Token', on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE) def save(self, *args, **kwargs): @@ -87,3 +90,19 @@ class Ticket(models.Model): def __str__(self): return str(self.number) + + +class Token(models.Model): + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + expires = models.IntegerField(default=5, validators=[ + MaxValueValidator(10), + MinValueValidator(1) + ]) + blocked = models.BooleanField(default=False) + user = models.ForeignKey(User, on_delete=models.CASCADE) + + def get_absolute_url(self): + return reverse('collector:token') + + def __str__(self): + return str(self.id)