Add: Token model

This commit is contained in:
Stepan Zhukovsky 2023-08-08 20:27:45 +09:00
parent 51d1c09540
commit 116c0e4f41
3 changed files with 58 additions and 1 deletions

View File

@ -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)

View File

@ -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,
),
]

View File

@ -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)