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 django.contrib import admin
from .models import Platform, Archive, Ticket from .models import Platform, Archive, Ticket, Token
# Register your models here. # Register your models here.
@ -16,6 +16,11 @@ class ArchiveAdmin(admin.ModelAdmin):
pass pass
class TokenAdmin(admin.ModelAdmin):
pass
admin.site.register(Platform, PlatformAdmin) admin.site.register(Platform, PlatformAdmin)
admin.site.register(Ticket, TicketAdmin) admin.site.register(Ticket, TicketAdmin)
admin.site.register(Archive, ArchiveAdmin) 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 hashlib
import uuid
from functools import partial from functools import partial
from django.core.validators import MaxValueValidator, MinValueValidator
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.db import models from django.db import models
from django.conf import settings from django.conf import settings
@ -37,6 +39,7 @@ class Archive(models.Model):
db_column='ticket_number', db_column='ticket_number',
on_delete=models.CASCADE on_delete=models.CASCADE
) )
token = models.ForeignKey('Token', on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE)
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
@ -87,3 +90,19 @@ class Ticket(models.Model):
def __str__(self): def __str__(self):
return str(self.number) 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)