mirror of https://github.com/jumpserver/jumpserver
modify some issues
parent
8b8e391feb
commit
9303415b89
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.10 on 2016-08-09 17:23
|
||||
# Generated by Django 1.10 on 2016-08-13 16:36
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.contrib.auth.models
|
||||
|
@ -32,28 +32,56 @@ class Migration(migrations.Migration):
|
|||
('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
|
||||
('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
|
||||
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
|
||||
('avatar', models.ImageField(default='', upload_to=b'', verbose_name='\u5934\u50cf')),
|
||||
('wechat', models.CharField(max_length=30, verbose_name='\u5fae\u4fe1')),
|
||||
('phone', models.CharField(max_length=20, verbose_name='\u624b\u673a')),
|
||||
('enable_2FA', models.BooleanField(default=False, verbose_name='\u542f\u7528\u4e8c\u6b21\u9a8c\u8bc1')),
|
||||
('secret_key_2FA', models.CharField(max_length=16)),
|
||||
('private_key', models.CharField(max_length=5000)),
|
||||
('public_key', models.CharField(max_length=1000)),
|
||||
('created_by', models.CharField(max_length=30)),
|
||||
('date_expired', models.DateTimeField()),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
'verbose_name': 'user',
|
||||
'verbose_name_plural': 'users',
|
||||
'db_table': 'user',
|
||||
},
|
||||
managers=[
|
||||
('objects', django.contrib.auth.models.UserManager()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Group',
|
||||
name='Role',
|
||||
fields=[
|
||||
('group_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='auth.Group')),
|
||||
('comment', models.CharField(blank=True, max_length=80)),
|
||||
],
|
||||
options={
|
||||
'db_table': 'role',
|
||||
},
|
||||
bases=('auth.group',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='UserGroup',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(help_text='\u8bf7\u8f93\u5165\u7ec4\u540d\u79f0', max_length=100, unique=True, verbose_name='\u7ec4\u540d\u79f0')),
|
||||
('comment', models.TextField(blank=True, help_text='\u8bf7\u8f93\u5165\u7528\u6237\u7ec4\u63cf\u8ff0', verbose_name='\u63cf\u8ff0')),
|
||||
('date_added', models.DateTimeField(auto_now_add=True)),
|
||||
('created_by', models.CharField(max_length=100)),
|
||||
],
|
||||
options={
|
||||
'db_table': 'usergroup',
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='groups',
|
||||
field=models.ManyToManyField(to='users.Group'),
|
||||
field=models.ManyToManyField(to='users.UserGroup'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
name='role',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='users.Role'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='user',
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.10 on 2016-08-10 07:16
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='user',
|
||||
options={},
|
||||
),
|
||||
migrations.AlterModelTable(
|
||||
name='user',
|
||||
table='user',
|
||||
),
|
||||
]
|
|
@ -1,3 +1,5 @@
|
|||
# ~*~ coding: utf-8 ~*~
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models
|
||||
|
@ -5,13 +7,41 @@ from django.contrib.auth.models import AbstractUser
|
|||
from django.contrib.auth.models import Group as AbstractGroup
|
||||
|
||||
|
||||
class Group(AbstractGroup):
|
||||
class Role(AbstractGroup):
|
||||
comment = models.CharField(max_length=80, blank=True)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
class Meta:
|
||||
db_table = 'role'
|
||||
|
||||
|
||||
class UserGroup(models.Model):
|
||||
name = models.CharField(max_length=100, unique=True, verbose_name='组名称', help_text='请输入组名称')
|
||||
comment = models.TextField(blank=True, verbose_name='描述', help_text='请输入用户组描述')
|
||||
date_added = models.DateTimeField(auto_now_add=True)
|
||||
created_by = models.CharField(max_length=100)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
class Meta:
|
||||
db_table = 'usergroup'
|
||||
|
||||
|
||||
class User(AbstractUser):
|
||||
|
||||
groups = models.ManyToManyField(Group)
|
||||
groups = models.ManyToManyField(UserGroup)
|
||||
avatar = models.ImageField(verbose_name='头像', default='')
|
||||
wechat = models.CharField(max_length=30, verbose_name='微信')
|
||||
phone = models.CharField(max_length=20, verbose_name='手机')
|
||||
enable_2FA = models.BooleanField(default=False, verbose_name='启用二次验证')
|
||||
secret_key_2FA = models.CharField(max_length=16)
|
||||
role = models.ForeignKey(Role, on_delete=models.PROTECT)
|
||||
private_key = models.CharField(max_length=5000) # ssh key max length 4096 bit
|
||||
public_key = models.CharField(max_length=1000)
|
||||
created_by = models.CharField(max_length=30)
|
||||
date_expired = models.DateTimeField()
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- SQL XML created by WWW SQL Designer, https://github.com/ondras/wwwsqldesigner/ -->
|
||||
<!-- Active URL: http://ondras.zarovi.cz/sql/demo/?keyword=jumpserver -->
|
||||
<!-- Active URL: http://ondras.zarovi.cz/sql/demo/?keyword=default -->
|
||||
<sql>
|
||||
<datatypes db="mysql">
|
||||
<group color="rgb(238,238,170)" label="Numeric">
|
||||
|
@ -127,6 +127,9 @@
|
|||
<row name="date_added" null="1" autoincrement="0">
|
||||
<datatype>DATETIME</datatype>
|
||||
<default>NULL</default></row>
|
||||
<row name="created_by" null="1" autoincrement="0">
|
||||
<datatype>VARCHAR</datatype>
|
||||
<default>NULL</default></row>
|
||||
<key type="PRIMARY" name="">
|
||||
<part>id</part>
|
||||
</key>
|
||||
|
@ -229,7 +232,7 @@
|
|||
<default>NULL</default></row>
|
||||
<row name="type" null="1" autoincrement="0">
|
||||
<datatype>INTEGER</datatype>
|
||||
<default>NULL</default><relation table="asset待定" row="id" />
|
||||
<default>NULL</default><relation table="assetextend" row="id" />
|
||||
</row>
|
||||
<row name="brand" null="1" autoincrement="0">
|
||||
<datatype>VARCHAR</datatype>
|
||||
|
@ -251,7 +254,7 @@
|
|||
<default>NULL</default></row>
|
||||
<row name="env" null="1" autoincrement="0">
|
||||
<datatype>INTEGER</datatype>
|
||||
<default>NULL</default><relation table="asset待定" row="id" />
|
||||
<default>NULL</default><relation table="assetextend" row="id" />
|
||||
</row>
|
||||
<row name="cpu" null="1" autoincrement="0">
|
||||
<datatype>VARCHAR</datatype>
|
||||
|
@ -276,7 +279,7 @@
|
|||
<part>id</part>
|
||||
</key>
|
||||
</table>
|
||||
<table x="1278" y="684" name="asset待定">
|
||||
<table x="1278" y="684" name="assetextend">
|
||||
<row name="id" null="1" autoincrement="1">
|
||||
<datatype>INTEGER</datatype>
|
||||
<default>NULL</default></row>
|
||||
|
@ -318,6 +321,9 @@
|
|||
<row name="comment" null="1" autoincrement="0">
|
||||
<datatype>VARCHAR</datatype>
|
||||
<default>NULL</default></row>
|
||||
<row name="created_by" null="1" autoincrement="0">
|
||||
<datatype>VARCHAR</datatype>
|
||||
<default>NULL</default></row>
|
||||
<row name="date_added" null="1" autoincrement="0">
|
||||
<datatype>DATETIME</datatype>
|
||||
<default>NULL</default></row>
|
||||
|
@ -325,7 +331,7 @@
|
|||
<part>id</part>
|
||||
</key>
|
||||
</table>
|
||||
<table x="1269" y="220" name="asset_label">
|
||||
<table x="1269" y="220" name="assetlabel">
|
||||
<row name="id" null="1" autoincrement="1">
|
||||
<datatype>INTEGER</datatype>
|
||||
<default>NULL</default></row>
|
||||
|
@ -335,8 +341,7 @@
|
|||
</row>
|
||||
<row name="key" null="1" autoincrement="0">
|
||||
<datatype>VARCHAR</datatype>
|
||||
<default>NULL</default><relation table="asset待定" row="id" />
|
||||
</row>
|
||||
<default>NULL</default></row>
|
||||
<row name="value" null="1" autoincrement="0">
|
||||
<datatype>VARCHAR</datatype>
|
||||
<default>NULL</default></row>
|
||||
|
@ -544,6 +549,12 @@
|
|||
<row name="comment" null="1" autoincrement="0">
|
||||
<datatype>CHAR</datatype>
|
||||
<default>NULL</default></row>
|
||||
<row name="created_by" null="1" autoincrement="0">
|
||||
<datatype>VARCHAR</datatype>
|
||||
<default>NULL</default></row>
|
||||
<row name="date_added" null="1" autoincrement="0">
|
||||
<datatype>TIME</datatype>
|
||||
<default>NULL</default></row>
|
||||
<key type="PRIMARY" name="">
|
||||
<part>id</part>
|
||||
</key>
|
||||
|
|
Loading…
Reference in New Issue