mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-05-07 15:47:02 +00:00
157 lines
8.5 KiB
Python
157 lines
8.5 KiB
Python
# Generated by Django 4.1.13 on 2024-05-09 03:16
|
|
|
|
import uuid
|
|
|
|
import django.utils.timezone
|
|
from django.db import migrations, models
|
|
|
|
import common.db.encoder
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
initial = True
|
|
|
|
dependencies = [
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='ActivityLog',
|
|
fields=[
|
|
('org_id',
|
|
models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')),
|
|
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
|
|
('type', models.CharField(
|
|
choices=[('O', 'Operate log'), ('S', 'Session log'), ('L', 'Login log'), ('T', 'Task')],
|
|
default=None, max_length=2, null=True, verbose_name='Activity type')),
|
|
('resource_id',
|
|
models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Resource')),
|
|
('datetime', models.DateTimeField(auto_now=True, db_index=True, verbose_name='Datetime')),
|
|
('detail', models.TextField(blank=True, default='', verbose_name='Detail')),
|
|
('detail_id', models.CharField(default=None, max_length=36, null=True, verbose_name='Detail ID')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Activity log',
|
|
'ordering': ('-datetime',),
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='FTPLog',
|
|
fields=[
|
|
('org_id',
|
|
models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')),
|
|
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
|
|
('user', models.CharField(max_length=128, verbose_name='User')),
|
|
('remote_addr', models.CharField(blank=True, max_length=128, null=True, verbose_name='Remote addr')),
|
|
('asset', models.CharField(max_length=1024, verbose_name='Asset')),
|
|
('account', models.CharField(max_length=128, verbose_name='Account')),
|
|
('operate', models.CharField(
|
|
choices=[('mkdir', 'Mkdir'), ('rmdir', 'Rmdir'), ('delete', 'Delete'), ('upload', 'Upload'),
|
|
('rename', 'Rename'), ('symlink', 'Symlink'), ('download', 'Download'),
|
|
('rename_dir', 'Rename dir')], max_length=16, verbose_name='Operate')),
|
|
('filename', models.CharField(max_length=1024, verbose_name='Filename')),
|
|
('is_success', models.BooleanField(default=True, verbose_name='Success')),
|
|
('date_start', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Date start')),
|
|
('has_file', models.BooleanField(default=False, verbose_name='Can Download')),
|
|
('session', models.CharField(default=uuid.uuid4, max_length=36, verbose_name='Session')),
|
|
],
|
|
options={
|
|
'verbose_name': 'File transfer log',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='OperateLog',
|
|
fields=[
|
|
('org_id',
|
|
models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')),
|
|
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
|
|
('user', models.CharField(max_length=128, verbose_name='User')),
|
|
('action', models.CharField(choices=[
|
|
("view", "View"),
|
|
("update", "Update"),
|
|
("delete", "Delete"),
|
|
("create", "Create"),
|
|
("export", "Export"),
|
|
("download", "Download"),
|
|
("connect", "Connect"),
|
|
("login", "Login"),
|
|
("change_password", "Change password"),
|
|
("accept", "Accept"),
|
|
("review", "Review"),
|
|
("notice", "Notifications"),
|
|
("reject", "Reject"),
|
|
("approve", "Approve"),
|
|
("close", "Close"),
|
|
("finished", "Finished"),
|
|
], max_length=16, verbose_name='Action')),
|
|
('resource_type', models.CharField(max_length=64, verbose_name='Resource Type')),
|
|
('resource', models.CharField(max_length=128, verbose_name='Resource')),
|
|
('resource_id',
|
|
models.CharField(blank=True, db_index=True, default='', max_length=128, verbose_name='Resource')),
|
|
('remote_addr', models.CharField(blank=True, max_length=128, null=True, verbose_name='Remote addr')),
|
|
('datetime', models.DateTimeField(auto_now=True, db_index=True, verbose_name='Datetime')),
|
|
('diff', models.JSONField(default=dict, encoder=common.db.encoder.ModelJSONFieldEncoder, null=True)),
|
|
],
|
|
options={
|
|
'verbose_name': 'Operate log',
|
|
'ordering': ('-datetime',),
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='PasswordChangeLog',
|
|
fields=[
|
|
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
|
|
('user', models.CharField(max_length=128, verbose_name='User')),
|
|
('change_by', models.CharField(max_length=128, verbose_name='Change by')),
|
|
('remote_addr', models.CharField(blank=True, max_length=128, null=True, verbose_name='Remote addr')),
|
|
('datetime', models.DateTimeField(auto_now=True, verbose_name='Datetime')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Password change log',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='UserLoginLog',
|
|
fields=[
|
|
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
|
|
('username', models.CharField(max_length=128, verbose_name='Username')),
|
|
('type', models.CharField(choices=[('W', 'Web'), ('T', 'Terminal'), ('U', 'Unknown')], max_length=2,
|
|
verbose_name='Login type')),
|
|
('ip', models.GenericIPAddressField(verbose_name='Login IP')),
|
|
('city', models.CharField(blank=True, max_length=254, null=True, verbose_name='Login city')),
|
|
('user_agent', models.CharField(blank=True, max_length=254, null=True, verbose_name='User agent')),
|
|
('mfa', models.SmallIntegerField(choices=[(0, 'Disabled'), (1, 'Enabled'), (2, '-')], default=2,
|
|
verbose_name='MFA')),
|
|
('reason', models.CharField(blank=True, default='', max_length=128, verbose_name='Reason')),
|
|
('status',
|
|
models.BooleanField(choices=[(1, 'Success'), (0, 'Failed')], default=1, verbose_name='Status')),
|
|
('datetime',
|
|
models.DateTimeField(db_index=True, default=django.utils.timezone.now, verbose_name='Login Date')),
|
|
('backend', models.CharField(default='', max_length=32, verbose_name='Auth backend')),
|
|
],
|
|
options={
|
|
'verbose_name': 'User login log',
|
|
'ordering': ['-datetime', 'username'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='UserSession',
|
|
fields=[
|
|
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
|
|
('ip', models.GenericIPAddressField(verbose_name='Login IP')),
|
|
('key', models.CharField(max_length=128, verbose_name='Session key')),
|
|
('city', models.CharField(blank=True, max_length=254, null=True, verbose_name='Login city')),
|
|
('user_agent', models.CharField(blank=True, max_length=254, null=True, verbose_name='User agent')),
|
|
('type', models.CharField(choices=[('W', 'Web'), ('T', 'Terminal'), ('U', 'Unknown')], max_length=2,
|
|
verbose_name='Login type')),
|
|
('backend', models.CharField(default='', max_length=32, verbose_name='Auth backend')),
|
|
('date_created', models.DateTimeField(blank=True, null=True, verbose_name='Login date')),
|
|
],
|
|
options={
|
|
'verbose_name': 'User session',
|
|
'ordering': ['-date_created'],
|
|
'permissions': [('offline_usersession', 'Offline user session')],
|
|
},
|
|
),
|
|
]
|