mirror of
https://github.com/hequan2017/seal.git
synced 2026-02-03 02:03:30 +08:00
57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
from django.db import models
|
|
import re
|
|
from cryptography.fernet import Fernet
|
|
from system.models import Users
|
|
from assets.models import Ecs
|
|
|
|
|
|
# import base64
|
|
# import os
|
|
# print(base64.urlsafe_b64encode(os.urandom(32)))
|
|
|
|
cipher_key = 'isSxtA8i5slddH9PrYEu8V5jzTeKCO5vwlu5pUT3eEc='
|
|
|
|
|
|
class database(models.Model):
|
|
|
|
region = models.CharField(max_length=16, verbose_name='机房',choices=Ecs.TYPE_CHOICES)
|
|
name = models.CharField(max_length=64, verbose_name='RDS名称',unique=True)
|
|
address = models.CharField(max_length=64, verbose_name='地址', )
|
|
port = models.IntegerField(verbose_name='端口')
|
|
username = models.CharField(max_length=128, verbose_name='用户名', blank=True, null=True, )
|
|
password = models.CharField(max_length=128, verbose_name='密码', blank=True, null=True, )
|
|
|
|
ctime = models.DateTimeField(auto_now_add=True, null=True, verbose_name='创建时间', blank=True)
|
|
utime = models.DateTimeField(auto_now=True, null=True, verbose_name='更新时间', blank=True)
|
|
|
|
def get_password(self):
|
|
if self.password is not None and re.search("gAAAAA", self.password, ) != None:
|
|
f = Fernet(cipher_key)
|
|
p1 = self.password.encode()
|
|
token = f.decrypt(p1)
|
|
p2 = token.decode()
|
|
return p2
|
|
return None
|
|
|
|
def save(self, *args, **kwargs):
|
|
if self.password is not None and re.search("gAAAAA", self.password, ) == None:
|
|
f = Fernet(cipher_key)
|
|
p1 = self.password.encode()
|
|
token = f.encrypt(p1)
|
|
p2 = token.decode()
|
|
self.password = p2
|
|
super().save(*args, **kwargs)
|
|
|
|
class Meta:
|
|
db_table = "database"
|
|
verbose_name = "数据库"
|
|
verbose_name_plural = verbose_name
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
|
|
|
|
|