import uuid import time from django.db import models from django.conf import settings def _generate_sync_token(): return '{}{}{}'.format(uuid.uuid1().hex, uuid.uuid4().hex, time.time()) class SSOCookieSyncToken(models.Model): token = models.CharField(max_length=125, unique=True, default=_generate_sync_token) session_id = models.CharField(max_length=125, null=True, blank=True) user = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING, blank=True, null=True ) user_openid = models.CharField(max_length=125, null=True, blank=True) ip = models.GenericIPAddressField( 'ip', null=True, blank=True, ) ua = models.CharField( 'user agent', max_length=256, blank=True, null=True ) redirect_to = models.TextField(blank=True, null=True) asktug_com_used = models.BooleanField(default=False) tidb_io_used = models.BooleanField(default=False) updated_at = models.DateTimeField(auto_now=True) created_at = models.DateTimeField(auto_now_add=True) class Meta: db_table = 'pingcap_sso_cookie_sync_tokens' def save(self, *args, **kwargs): if self.ua: self.ua = self.ua[:250] super(SSOCookieSyncToken, self).save(*args, **kwargs) class SSOCookieDiscourseAuthToken(models.Model): session_id = models.CharField(max_length=125, null=True, blank=True) auth_token_id = models.IntegerField() created_at = models.DateTimeField(auto_now_add=True) deleted = models.BooleanField(default=False) class Meta: db_table = 'pingcap_sso_cookie_discourse_auth_tokens'