mirror of
https://github.com/jumpserver/jumpserver.git
synced 2026-07-03 07:39:39 +00:00
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
# Generated by Django 4.1.13 on 2026-03-23 07:00
|
|
|
|
import common.db.fields
|
|
from django.db import migrations
|
|
from django.db import migrations, models
|
|
from common.utils import text_hmac_sha256
|
|
|
|
|
|
user_email_mapper = {}
|
|
|
|
|
|
def get_user_email_mapper(apps, schema_editor):
|
|
User = apps.get_model('users', 'User')
|
|
for user in User.objects.all():
|
|
user_email_mapper[str(user.id)] = user.email
|
|
|
|
|
|
def set_user_encrypted_email_and_email_lookup_field(apps, schema_editor):
|
|
User = apps.get_model('users', 'User')
|
|
for user in User.objects.all():
|
|
if str(user.id) in user_email_mapper:
|
|
email = user_email_mapper[str(user.id)]
|
|
user.email = email
|
|
user.email_lookup = text_hmac_sha256(email)
|
|
user.save(update_fields=['email', 'email_lookup'])
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('users', '0004_fix_user_wechat_phone'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(get_user_email_mapper),
|
|
migrations.AlterField(
|
|
model_name='user',
|
|
name='email',
|
|
field=common.db.fields.EncryptCharField(max_length=128, unique=True, verbose_name='Email'),
|
|
),
|
|
migrations.AddField(
|
|
model_name='user',
|
|
name='email_lookup',
|
|
field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Email lookup'),
|
|
),
|
|
migrations.RunPython(set_user_encrypted_email_and_email_lookup_field),
|
|
]
|