diff --git a/.gitignore b/.gitignore
index 658ea27ac..959682445 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
.DS_Store
*.pyc
*.pyo
+*.swp
env
env*
dist
diff --git a/apps/assets/api.py b/apps/assets/api.py
index 27539eb09..bfd4d7200 100644
--- a/apps/assets/api.py
+++ b/apps/assets/api.py
@@ -1,32 +1,37 @@
# ~*~ coding: utf-8 ~*~
+
from rest_framework import serializers
-from .models import (
- AssetGroup,Asset,IDC,AssetExtend
-)
-from rest_framework import viewsets,serializers
+from rest_framework import viewsets, serializers
+
+from .models import AssetGroup, Asset, IDC, AssetExtend
+
class AssetGroupSerializer(serializers.ModelSerializer):
class Meta:
model = AssetGroup
- #exclude = [
- #'password', 'first_name', 'last_name', 'secret_key_otp',
- #'private_key', 'public_key', 'avatar',
- #]
+ # exclude = [
+ # 'password', 'first_name', 'last_name', 'secret_key_otp',
+ # 'private_key', 'public_key', 'avatar',
+ # ]
+
class AssetSerializer(serializers.ModelSerializer):
class Meta:
model = Asset
- #fields = ('id', 'title', 'code', 'linenos', 'language', 'style')
+ # fields = ('id', 'title', 'code', 'linenos', 'language', 'style')
+
class IDCSerializer(serializers.ModelSerializer):
class Meta:
model = IDC
- #fields = ('id', 'title', 'code', 'linenos', 'language', 'style')
+ # fields = ('id', 'title', 'code', 'linenos', 'language', 'style')
class AssetGroupViewSet(viewsets.ModelViewSet):
- """
- API endpoint that allows AssetGroup to be viewed or edited.
+ """ API endpoint that allows AssetGroup to be viewed or edited.
+
+ some other comment
+
"""
queryset = AssetGroup.objects.all()
serializer_class = AssetGroupSerializer
diff --git a/apps/assets/forms.py b/apps/assets/forms.py
index 1338a7449..101ad854b 100644
--- a/apps/assets/forms.py
+++ b/apps/assets/forms.py
@@ -1,7 +1,7 @@
# coding:utf-8
from django import forms
-from .models import IDC, Asset, AssetGroup
+from .models import IDC, Asset, AssetGroup, AdminUser, SystemUser
from django.utils.translation import gettext_lazy as _
@@ -11,16 +11,17 @@ class AssetForm(forms.ModelForm):
fields = [
"ip", "other_ip", "remote_card_ip", "hostname", "port", "groups", "username", "password",
- "idc", "mac_addr", "brand", "cpu", "memory", "disk", "os", "cabinet_no", "cabinet_pos",
+ "idc", "mac_address", "brand", "cpu", "memory", "disk", "os", "cabinet_no", "cabinet_pos",
"number", "status", "type", "env", "sn", "is_active", "comment"
]
widgets = {
- 'groups': forms.SelectMultiple(attrs={'class': 'select2', 'data-placeholder': _('Join assetgroups')}),
+ 'groups': forms.SelectMultiple(attrs={'class': 'select2', 'data-placeholder': _('Select asset groups')}),
}
class AssetGroupForm(forms.ModelForm):
+ # See AdminUserForm comment same it
assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all(),
label=_('Asset'),
required=False,
@@ -45,14 +46,169 @@ class AssetGroupForm(forms.ModelForm):
fields = [
"name", "comment"
]
+ help_texts = {
+ 'name': '* required',
+ }
-class IdcForm(forms.ModelForm):
+class IDCForm(forms.ModelForm):
+ # See AdminUserForm comment same it
+ assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all(),
+ label=_('Asset'),
+ required=False,
+ widget=forms.SelectMultiple(
+ attrs={'class': 'select2', 'data-placeholder': _('Select assets')})
+ )
+
+ def __init__(self, *args, **kwargs):
+ if kwargs.get('instance'):
+ initial = kwargs.get('initial', {})
+ initial['assets'] = kwargs['instance'].assets.all()
+ super(IDCForm, self).__init__(*args, **kwargs)
+
+ def _save_m2m(self):
+ super(IDCForm, self)._save_m2m()
+ assets = self.cleaned_data['assets']
+ self.instance.assets.clear()
+ self.instance.assets.add(*tuple(assets))
+
class Meta:
model = IDC
fields = ['name', "bandwidth", "operator", 'contact', 'phone', 'address', 'network', 'comment']
widgets = {
- 'name': forms.TextInput(attrs={'placeholder': 'Name'}),
+ 'name': forms.TextInput(attrs={'placeholder': _('Name')}),
'network': forms.Textarea(
attrs={'placeholder': '192.168.1.0/24\n192.168.2.0/24'})
}
+
+
+class AdminUserForm(forms.ModelForm):
+ # Admin user assets define, let user select, save it in form not in view
+ assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all(),
+ label=_('Asset'),
+ required=False,
+ widget=forms.SelectMultiple(
+ attrs={'class': 'select2', 'data-placeholder': _('Select assets')})
+ )
+ auto_generate_key = forms.BooleanField(required=True, initial=True)
+ # Form field name can not start with `_`, so redefine it,
+ password = forms.CharField(widget=forms.PasswordInput, max_length=100, min_length=8, strip=True,
+ help_text=_('If also set private key, use that first'), required=False)
+ # Need use upload private key file except paste private key content
+ private_key_file = forms.FileField(required=False)
+
+ def __init__(self, *args, **kwargs):
+ # When update a admin user instance, initial it
+ if kwargs.get('instance'):
+ initial = kwargs.get('initial', {})
+ initial['assets'] = kwargs['instance'].assets.all()
+ super(AdminUserForm, self).__init__(*args, **kwargs)
+
+ def _save_m2m(self):
+ # Save assets relation with admin user
+ super(AdminUserForm, self)._save_m2m()
+ assets = self.cleaned_data['assets']
+ self.instance.assets.clear()
+ self.instance.assets.add(*tuple(assets))
+
+ def save(self, commit=True):
+ # Because we define custom field, so we need rewrite :method: `save`
+ admin_user = super(AdminUserForm, self).save(commit=commit)
+ password = self.cleaned_data['password']
+ private_key_file = self.cleaned_data['private_key_file']
+
+ if password:
+ admin_user.password = password
+ print(password)
+ # Todo: Validate private key file, and generate public key
+ # Todo: Auto generate private key and public key
+ if private_key_file:
+ admin_user.private_key = private_key_file.read()
+ admin_user.save()
+ return self.instance
+
+ class Meta:
+ model = AdminUser
+ fields = ['name', 'username', 'auto_generate_key', 'password', 'private_key_file', 'as_default', 'comment']
+ widgets = {
+ 'name': forms.TextInput(attrs={'placeholder': _('Name')}),
+ 'username': forms.TextInput(attrs={'placeholder': _('Username')}),
+ }
+ help_texts = {
+ 'name': '* required',
+ 'username': '* required',
+ }
+
+
+class SystemUserForm(forms.ModelForm):
+ # Admin user assets define, let user select, save it in form not in view
+ assets = forms.ModelMultipleChoiceField(queryset=Asset.objects.all(),
+ label=_('Asset'),
+ required=False,
+ widget=forms.SelectMultiple(
+ attrs={'class': 'select2', 'data-placeholder': _('Select assets')})
+ )
+ asset_groups = forms.ModelMultipleChoiceField(queryset=AssetGroup.objects.all(),
+ label=_('Asset group'),
+ required=False,
+ widget=forms.SelectMultiple(
+ attrs={'class': 'select2',
+ 'data-placeholder': _('Select asset groups')})
+ )
+ auto_generate_key = forms.BooleanField(initial=True)
+ # Form field name can not start with `_`, so redefine it,
+ password = forms.CharField(widget=forms.PasswordInput, max_length=100, min_length=8, strip=True,
+ help_text=_('If also set private key, use that first'), required=False)
+ # Need use upload private key file except paste private key content
+ private_key_file = forms.FileField(required=False)
+
+ def __init__(self, *args, **kwargs):
+ # When update a admin user instance, initial it
+ if kwargs.get('instance'):
+ initial = kwargs.get('initial', {})
+ initial['assets'] = kwargs['instance'].assets.all()
+ initial['asset_groups'] = kwargs['instance'].asset_groups.all()
+ super(SystemUserForm, self).__init__(*args, **kwargs)
+
+ def _save_m2m(self):
+ # Save assets relation with admin user
+ super(SystemUserForm, self)._save_m2m()
+ assets = self.cleaned_data['assets']
+ asset_groups = self.cleaned_data['asset_groups']
+ self.instance.assets.clear()
+ self.instance.assets.add(*tuple(assets))
+ self.instance.asset_groups.clear()
+ self.instance.asset_groups.add(*tuple(asset_groups))
+
+ def save(self, commit=True):
+ # Because we define custom field, so we need rewrite :method: `save`
+ system_user = super(SystemUserForm, self).save(commit=commit)
+ password = self.cleaned_data['password']
+ private_key_file = self.cleaned_data['private_key_file']
+
+ if password:
+ system_user.password = password
+ print(password)
+ # Todo: Validate private key file, and generate public key
+ # Todo: Auto generate private key and public key
+ if private_key_file:
+ system_user.private_key = private_key_file.read()
+ system_user.save()
+ return self.instance
+
+ class Meta:
+ model = SystemUser
+ fields = [
+ 'name', 'username', 'protocol', 'auto_generate_key', 'password', 'private_key_file', 'as_default',
+ 'auto_push', 'auto_update', 'sudo', 'comment', 'shell', 'home', 'uid',
+ ]
+ widgets = {
+ 'name': forms.TextInput(attrs={'placeholder': _('Name')}),
+ 'username': forms.TextInput(attrs={'placeholder': _('Username')}),
+ }
+ help_texts = {
+ 'name': '* required',
+ 'username': '* required',
+ 'auth_push': 'Auto push system user to asset',
+ 'auth_update': 'Auto update system user ssh key',
+ }
\ No newline at end of file
diff --git a/apps/assets/hands.py b/apps/assets/hands.py
new file mode 100644
index 000000000..70dedfeb4
--- /dev/null
+++ b/apps/assets/hands.py
@@ -0,0 +1,15 @@
+"""
+ jumpserver.__app__.hands.py
+ ~~~~~~~~~~~~~~~~~
+
+ This app depends other apps api, function .. should be import or write mack here.
+
+ Other module of this app shouldn't connect with other app.
+
+ :copyright: (c) 2014-2016 by Jumpserver Team.
+ :license: GPL v2, see LICENSE for more details.
+"""
+
+
+from users.utils import AdminUserRequiredMixin
+from users.models import User, UserGroup
diff --git a/apps/assets/migrations/0001_initial.py b/apps/assets/migrations/0001_initial.py
deleted file mode 100644
index 37308e5b0..000000000
--- a/apps/assets/migrations/0001_initial.py
+++ /dev/null
@@ -1,181 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by Django 1.10 on 2016-09-04 11:52
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- initial = True
-
- dependencies = [
- ]
-
- operations = [
- migrations.CreateModel(
- name='AdminUser',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name', models.CharField(max_length=128, unique=True, verbose_name='Name')),
- ('username', models.CharField(max_length=16, verbose_name='Username')),
- ('password', models.CharField(blank=True, max_length=256, null=True, verbose_name='Password')),
- ('private_key', models.CharField(blank=True, max_length=4096, null=True, verbose_name='SSH private key')),
- ('is_default', models.BooleanField(default=False, verbose_name='As default')),
- ('auto_update', models.BooleanField(default=True, verbose_name='Auto update pass/key')),
- ('date_added', models.DateTimeField(auto_now=True, null=True, verbose_name='Date added')),
- ('create_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')),
- ('comment', models.TextField(blank=True, verbose_name='Comment')),
- ],
- options={
- 'db_table': 'adminuser',
- },
- ),
- migrations.CreateModel(
- name='Asset',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('ip', models.CharField(max_length=32, verbose_name='IP')),
- ('other_ip', models.CharField(blank=True, max_length=255, verbose_name='Other IP')),
- ('remote_card_ip', models.CharField(blank=True, max_length=16, verbose_name='Remote card IP')),
- ('hostname', models.CharField(blank=True, max_length=128, unique=True, verbose_name='Hostname')),
- ('port', models.IntegerField(default=22, verbose_name='Port')),
- ('username', models.CharField(blank=True, max_length=16, verbose_name='Admin user')),
- ('password', models.CharField(blank=True, max_length=256, verbose_name='Admin password')),
- ('mac_addr', models.CharField(blank=True, max_length=20, verbose_name='Mac address')),
- ('brand', models.CharField(blank=True, max_length=64, verbose_name='Brand')),
- ('cpu', models.CharField(blank=True, max_length=64, verbose_name='CPU')),
- ('memory', models.CharField(blank=True, max_length=128, verbose_name='Memory')),
- ('disk', models.CharField(blank=True, max_length=1024, verbose_name='Disk')),
- ('os', models.CharField(blank=True, max_length=128, verbose_name='OS')),
- ('cabinet_no', models.CharField(blank=True, max_length=32, verbose_name='Cabinet number')),
- ('cabinet_pos', models.IntegerField(blank=True, verbose_name='Cabinet position')),
- ('number', models.CharField(blank=True, max_length=32, unique=True, verbose_name='Asset number')),
- ('sn', models.CharField(blank=True, max_length=128, unique=True, verbose_name='Serial number')),
- ('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')),
- ('is_active', models.BooleanField(default=True, verbose_name='Is active')),
- ('date_added', models.DateTimeField(auto_now=True, null=True, verbose_name='Date added')),
- ('comment', models.CharField(blank=True, max_length=128, verbose_name='Comment')),
- ('admin_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.AdminUser', verbose_name='Admin User')),
- ],
- options={
- 'db_table': 'asset',
- },
- ),
- migrations.CreateModel(
- name='AssetExtend',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('key', models.CharField(max_length=64, verbose_name='KEY')),
- ('value', models.CharField(max_length=64, verbose_name='VALUE')),
- ('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')),
- ('date_added', models.DateTimeField(auto_now=True, null=True, verbose_name='Date added')),
- ('comment', models.TextField(blank=True, verbose_name='Comment')),
- ],
- options={
- 'db_table': 'assetextend',
- },
- ),
- migrations.CreateModel(
- name='AssetGroup',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name', models.CharField(max_length=64, unique=True, verbose_name='Name')),
- ('created_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')),
- ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')),
- ],
- options={
- 'db_table': 'assetgroup',
- },
- ),
- migrations.CreateModel(
- name='IDC',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name', models.CharField(max_length=32, verbose_name='Name')),
- ('bandwidth', models.CharField(blank=True, max_length=32, verbose_name='Bandwidth')),
- ('contact', models.CharField(blank=True, max_length=16, verbose_name='Contact')),
- ('phone', models.CharField(blank=True, max_length=32, verbose_name='Phone')),
- ('address', models.CharField(blank=True, max_length=128, verbose_name='Address')),
- ('network', models.TextField(blank=True, verbose_name='Network')),
- ('date_added', models.DateField(auto_now=True, null=True, verbose_name='Date added')),
- ('operator', models.CharField(blank=True, max_length=32, verbose_name='Operator')),
- ('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')),
- ('comment', models.TextField(blank=True, verbose_name='Comment')),
- ],
- options={
- 'db_table': 'idc',
- },
- ),
- migrations.CreateModel(
- name='Label',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('key', models.CharField(max_length=64, verbose_name='KEY')),
- ('value', models.CharField(max_length=64, verbose_name='VALUE')),
- ('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')),
- ('date_added', models.DateTimeField(auto_now=True, null=True, verbose_name='Date added')),
- ('comment', models.CharField(blank=True, max_length=128, verbose_name='Comment')),
- ('asset', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.Asset', verbose_name='Asset')),
- ],
- options={
- 'db_table': 'label',
- },
- ),
- migrations.CreateModel(
- name='SysUser',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name', models.CharField(max_length=128, verbose_name='Name')),
- ('username', models.CharField(max_length=16, verbose_name='Username')),
- ('password', models.CharField(blank=True, max_length=256, null=True, verbose_name='Password')),
- ('protocol', models.CharField(default='ssh', max_length=16, verbose_name='Protocol')),
- ('private_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH private key')),
- ('public_key', models.CharField(blank=True, max_length=4096, verbose_name='SSH public key')),
- ('is_default', models.BooleanField(default=False, verbose_name='As default')),
- ('auto_push', models.BooleanField(default=True, verbose_name='Auto push')),
- ('auto_update', models.BooleanField(default=True, verbose_name='Auto update pass/key')),
- ('sudo', models.TextField(blank=True, max_length=4096, verbose_name='Sudo')),
- ('shell', models.CharField(blank=True, max_length=64, verbose_name='Shell')),
- ('home', models.CharField(blank=True, max_length=64, verbose_name='Home')),
- ('uid', models.IntegerField(blank=True, verbose_name='Uid')),
- ('date_added', models.DateTimeField(auto_now=True, null=True, verbose_name='Date added')),
- ('create_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')),
- ('comment', models.CharField(blank=True, max_length=128, verbose_name='Comment')),
- ],
- options={
- 'db_table': 'sysuser',
- },
- ),
- migrations.AddField(
- model_name='asset',
- name='env',
- field=models.ManyToManyField(related_name='asset_env_extend', to='assets.AssetExtend', verbose_name='Asset environment'),
- ),
- migrations.AddField(
- model_name='asset',
- name='groups',
- field=models.ManyToManyField(to='assets.AssetGroup', verbose_name='Asset groups'),
- ),
- migrations.AddField(
- model_name='asset',
- name='idc',
- field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.IDC', verbose_name='IDC'),
- ),
- migrations.AddField(
- model_name='asset',
- name='status',
- field=models.ManyToManyField(related_name='asset_status_extend', to='assets.AssetExtend', verbose_name='Asset status'),
- ),
- migrations.AddField(
- model_name='asset',
- name='sys_user',
- field=models.ManyToManyField(to='assets.SysUser', verbose_name='Sys User'),
- ),
- migrations.AddField(
- model_name='asset',
- name='type',
- field=models.ManyToManyField(related_name='asset_type_extend', to='assets.AssetExtend', verbose_name='Asset type'),
- ),
- ]
diff --git a/apps/assets/models.py b/apps/assets/models.py
index 8ff80d824..010b8b20e 100644
--- a/apps/assets/models.py
+++ b/apps/assets/models.py
@@ -2,8 +2,11 @@
from __future__ import unicode_literals, absolute_import
from django.db import models
+import logging
from django.utils.translation import ugettext_lazy as _
+from common.utils import encrypt, decrypt
+
class AssetGroup(models.Model):
name = models.CharField(max_length=64, unique=True, verbose_name=_('Name'))
@@ -16,6 +19,8 @@ class AssetGroup(models.Model):
class Meta:
db_table = 'asset_group'
+logger = logging.getLogger(__name__)
+
class IDC(models.Model):
name = models.CharField(max_length=32, verbose_name=_('Name'))
@@ -24,7 +29,7 @@ class IDC(models.Model):
phone = models.CharField(max_length=32, blank=True, verbose_name=_('Phone'))
address = models.CharField(max_length=128, blank=True, verbose_name=_("Address"))
network = models.TextField(blank=True, verbose_name=_('Network'))
- date_added = models.DateField(auto_now=True, null=True, verbose_name=_('Date added'))
+ date_created = models.DateTimeField(auto_now=True, null=True, verbose_name=_('Date added'))
operator = models.CharField(max_length=32, blank=True, verbose_name=_('Operator'))
created_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by'))
comment = models.TextField(blank=True, verbose_name=_('Comment'))
@@ -35,87 +40,253 @@ class IDC(models.Model):
class Meta:
db_table = 'idc'
+ @classmethod
+ def generate_fake(cls, count=100):
+ from random import seed, choice
+ import forgery_py
+ from django.db import IntegrityError
+
+ seed()
+ for i in range(count):
+ idc = cls(name=forgery_py.name.full_name(),
+ bandwidth='200M',
+ contact=forgery_py.name.full_name(),
+ phone=forgery_py.address.phone(),
+ address=forgery_py.address.city() + forgery_py.address.street_address(),
+ network="192.168.1.10/24\n192.168.1.20",
+ operator=choice(['北京联通', '北京电信', 'BGP全网通']),
+ comment=forgery_py.lorem_ipsum.sentence(),
+ created_by='Fake')
+ try:
+ idc.save()
+ logger.debug('Generate fake asset group: %s' % idc.name)
+ except IntegrityError:
+ print('Error continue')
+ continue
+
class AssetExtend(models.Model):
key = models.CharField(max_length=64, verbose_name=_('KEY'))
value = models.CharField(max_length=64, verbose_name=_('VALUE'))
created_by = models.CharField(max_length=32, blank=True, verbose_name=_("Created by"))
- date_added = models.DateTimeField(auto_now=True, null=True, verbose_name=_('Date added'))
+ date_created = models.DateTimeField(auto_now=True, null=True, blank=True)
comment = models.TextField(blank=True, verbose_name=_('Comment'))
def __unicode__(self):
- return self.name
+ return '%(key)s: %(value)s' % {'key': self.key, 'value': self.value}
+
+ @classmethod
+ def initial(cls):
+ for k, v in (
+ (_('status'), _('In use')),
+ (_('status'), _('Out of use')),
+ (_('type'), _('Server')),
+ (_('type'), _('VM')),
+ (_('type'), _('Switch')),
+ (_('type'), _('Router')),
+ (_('type'), _('Firewall')),
+ (_('type'), _('Storage')),
+ (_('env'), _('Production')),
+ (_('env'), _('Development')),
+ (_('env'), _('Testing')),
+ ):
+ cls.objects.create(key=k, value=v, created_by='System')
class Meta:
- db_table = 'assetextend'
+ db_table = 'asset_extend'
class AdminUser(models.Model):
name = models.CharField(max_length=128, unique=True, verbose_name=_('Name'))
username = models.CharField(max_length=16, verbose_name=_('Username'))
- password = models.CharField(max_length=256, null=True, blank=True, verbose_name=_('Password'))
- private_key = models.CharField(max_length=4096, null=True, blank=True, verbose_name=_('SSH private key'))
- is_default = models.BooleanField(default=False, verbose_name=_('As default'))
+ _password = models.CharField(max_length=256, blank=True, verbose_name=_('Password'))
+ _private_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH private key'))
+ _public_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH public key'))
+ as_default = models.BooleanField(default=False, verbose_name=_('As default'))
+ comment = models.TextField(blank=True, verbose_name=_('Comment'))
+ date_created = models.DateTimeField(auto_now=True, null=True)
+ created_by = models.CharField(max_length=32, null=True, verbose_name=_('Created by'))
+
+ def __unicode__(self):
+ return self.name
+
+ @property
+ def password(self):
+ return decrypt(self._password)
+
+ @password.setter
+ def password(self, password_raw):
+ self._password = encrypt(password_raw)
+
+ @property
+ def private_key(self):
+ return decrypt(self._private_key)
+
+ @private_key.setter
+ def private_key(self, private_key_raw):
+ self._private_key = encrypt(private_key_raw)
+
+ @property
+ def public_key(self):
+ return decrypt(self._public_key)
+
+ @public_key.setter
+ def public_key(self, public_key_raw):
+ self._public_key = encrypt(public_key_raw)
+
+ class Meta:
+ db_table = 'admin_user'
+
+ @classmethod
+ def generate_fake(cls, count=100):
+ from random import seed
+ import forgery_py
+ from django.db import IntegrityError
+
+ seed()
+ for i in range(count):
+ obj = cls(name=forgery_py.name.full_name(),
+ username=forgery_py.internet.user_name(),
+ password=forgery_py.lorem_ipsum.word(),
+ comment=forgery_py.lorem_ipsum.sentence(),
+ created_by='Fake')
+ try:
+ obj.save()
+ logger.debug('Generate fake asset group: %s' % obj.name)
+ except IntegrityError:
+ print('Error continue')
+ continue
+
+
+class SystemUser(models.Model):
+ PROTOCOL_CHOICES = (
+ ('ssh', 'ssh'),
+ )
+ name = models.CharField(max_length=128, unique=True, verbose_name=_('Name'))
+ username = models.CharField(max_length=16, verbose_name=_('Username'))
+ _password = models.CharField(max_length=256, blank=True, verbose_name=_('Password'))
+ protocol = models.CharField(max_length=16, choices=PROTOCOL_CHOICES, default='ssh', verbose_name=_('Protocol'))
+ _private_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH private key'))
+ _public_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH public key'))
+ as_default = models.BooleanField(default=False, verbose_name=_('As default'))
+ auto_push = models.BooleanField(default=True, verbose_name=_('Auto push'))
auto_update = models.BooleanField(default=True, verbose_name=_('Auto update pass/key'))
- date_added = models.DateTimeField(auto_now=True, null=True, verbose_name=_('Date added'))
- create_by = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Created by'))
+ sudo = models.TextField(max_length=4096, default='/user/bin/whoami', verbose_name=_('Sudo'))
+ shell = models.CharField(max_length=64, default='/bin/bash', verbose_name=_('Shell'))
+ home = models.CharField(max_length=64, blank=True, verbose_name=_('Home'))
+ uid = models.IntegerField(null=True, blank=True, verbose_name=_('Uid'))
+ date_created = models.DateTimeField(auto_now=True)
+ created_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by'))
+ comment = models.TextField(max_length=128, blank=True, verbose_name=_('Comment'))
+
+ def __unicode__(self):
+ return self.name
+
+ @property
+ def password(self):
+ return decrypt(self._password)
+
+ @password.setter
+ def password(self, password_raw):
+ self._password = encrypt(password_raw)
+
+ @property
+ def private_key(self):
+ return decrypt(self._private_key)
+
+ @private_key.setter
+ def private_key(self, private_key_raw):
+ self._private_key = encrypt(private_key_raw)
+
+ @property
+ def public_key(self):
+ return decrypt(self._public_key)
+
+ @public_key.setter
+ def public_key(self, public_key_raw):
+ self._public_key = encrypt(public_key_raw)
+
+ class Meta:
+ db_table = 'system_user'
+
+ @classmethod
+ def generate_fake(cls, count=100):
+ from random import seed
+ import forgery_py
+ from django.db import IntegrityError
+
+ seed()
+ for i in range(count):
+ obj = cls(name=forgery_py.name.full_name(),
+ username=forgery_py.internet.user_name(),
+ password=forgery_py.lorem_ipsum.word(),
+ comment=forgery_py.lorem_ipsum.sentence(),
+ created_by='Fake')
+ try:
+ obj.save()
+ logger.debug('Generate fake asset group: %s' % obj.name)
+ except IntegrityError:
+ print('Error continue')
+ continue
+
+
+class AssetGroup(models.Model):
+ name = models.CharField(max_length=64, unique=True, verbose_name=_('Name'))
+ system_users = models.ManyToManyField(SystemUser, related_name='asset_groups', blank=True)
+ created_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by'))
+ date_created = models.DateTimeField(auto_now=True, null=True, verbose_name=_('Date added'))
comment = models.TextField(blank=True, verbose_name=_('Comment'))
def __unicode__(self):
return self.name
class Meta:
- db_table = 'adminuser'
+ db_table = 'asset_group'
+ @classmethod
+ def initial(cls):
+ asset_group = cls(name=_('Default'), commont=_('Default asset group'))
+ asset_group.save()
-class SysUser(models.Model):
- PROTOCOL_CHOICES = (
- ('ssh', 'ssh'),
- ('telnet', 'telnet'),
- )
- name = models.CharField(max_length=128, verbose_name=_('Name'))
- username = models.CharField(max_length=16, verbose_name=_('Username'))
- password = models.CharField(max_length=256, null=True, blank=True, verbose_name=_('Password'))
- protocol = models.CharField(max_length=16, default='ssh', verbose_name=_('Protocol'))
- private_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH private key'))
- public_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH public key'))
- is_default = models.BooleanField(default=False, verbose_name=_('As default'))
- auto_push = models.BooleanField(default=True, verbose_name=_('Auto push'))
- auto_update = models.BooleanField(default=True, verbose_name=_('Auto update pass/key'))
- sudo = models.TextField(max_length=4096, blank=True, verbose_name=_('Sudo'))
- shell = models.CharField(max_length=64, blank=True, verbose_name=_('Shell'))
- home = models.CharField(max_length=64, blank=True, verbose_name=_('Home'))
- uid = models.IntegerField(blank=True, verbose_name=_('Uid'))
- date_added = models.DateTimeField(auto_now=True, null=True, verbose_name=_('Date added'))
- create_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by'))
- comment = models.CharField(max_length=128, blank=True, verbose_name=_('Comment'))
+ @classmethod
+ def generate_fake(cls, count=100):
+ from random import seed
+ import forgery_py
+ from django.db import IntegrityError
- def __unicode__(self):
- return self.name
-
- class Meta:
- db_table = 'sysuser'
+ seed()
+ for i in range(count):
+ group = cls(name=forgery_py.name.full_name(),
+ comment=forgery_py.lorem_ipsum.sentence(),
+ created_by='Fake')
+ try:
+ group.save()
+ logger.debug('Generate fake asset group: %s' % group.name)
+ except IntegrityError:
+ print('Error continue')
+ continue
class Asset(models.Model):
- ip = models.CharField(max_length=32, verbose_name=_('IP'))
- other_ip = models.CharField(max_length=255, blank=True, verbose_name=_('Other IP'))
- remote_card_ip = models.CharField(max_length=16, blank=True, verbose_name=_('Remote card IP'))
- hostname = models.CharField(max_length=128, unique=True, blank=True, verbose_name=_('Hostname'))
- port = models.IntegerField(default=22, verbose_name=_('Port'))
- groups = models.ManyToManyField(AssetGroup, blank=True, verbose_name=_('Asset groups'))
- username = models.CharField(max_length=16, blank=True, verbose_name=_('Admin user'))
- password = models.CharField(max_length=256, blank=True, verbose_name=_("Admin password"))
- admin_user = models.ForeignKey(AdminUser, null=True, on_delete=models.SET_NULL, verbose_name=_("Admin User"))
- sys_user = models.ManyToManyField(SysUser, verbose_name=_("Sys User"))
- idc = models.ForeignKey(IDC, null=True, blank=True, on_delete=models.SET_NULL, verbose_name=_('IDC'))
- mac_addr = models.CharField(max_length=20, blank=True, verbose_name=_("Mac address"))
- brand = models.CharField(max_length=64, blank=True, verbose_name=_('Brand'))
- cpu = models.CharField(max_length=64, blank=True, verbose_name=_('CPU'))
- memory = models.CharField(max_length=128, blank=True, verbose_name=_('Memory'))
- disk = models.CharField(max_length=1024, blank=True, verbose_name=_('Disk'))
- os = models.CharField(max_length=128, blank=True, verbose_name=_('OS'))
- cabinet_no = models.CharField(max_length=32, blank=True, verbose_name=_('Cabinet number'))
+ ip = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('IP'))
+ other_ip = models.CharField(max_length=255, null=True, blank=True, verbose_name=_('Other IP'))
+ remote_card_ip = models.CharField(max_length=16, null=True, blank=True, verbose_name=_('Remote card IP'))
+ hostname = models.CharField(max_length=128, unique=True, null=True, blank=True, verbose_name=_('Hostname'))
+ port = models.IntegerField(null=True, blank=True, verbose_name=_('Port'))
+ groups = models.ManyToManyField(AssetGroup, related_name='assets', verbose_name=_('Asset groups'))
+ username = models.CharField(max_length=16, null=True, blank=True, verbose_name=_('Admin user'))
+ password = models.CharField(max_length=256, null=True, blank=True, verbose_name=_("Admin password"))
+ admin_user = models.ForeignKey(AdminUser, null=True, related_name='assets',
+ on_delete=models.SET_NULL, verbose_name=_("Admin user"))
+ system_user = models.ManyToManyField(SystemUser, blank=True, related_name='assets', verbose_name=_("System User"))
+ idc = models.ForeignKey(IDC, null=True, related_name='assets', on_delete=models.SET_NULL, verbose_name=_('IDC'))
+ mac_address = models.CharField(max_length=20, null=True, blank=True, verbose_name=_("Mac address"))
+ brand = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('Brand'))
+ cpu = models.CharField(max_length=64, null=True, blank=True, verbose_name=_('CPU'))
+ memory = models.CharField(max_length=128, null=True, blank=True, verbose_name=_('Memory'))
+ disk = models.CharField(max_length=1024, null=True, blank=True, verbose_name=_('Disk'))
+ os = models.CharField(max_length=128, null=True, blank=True, verbose_name=_('OS'))
+ cabinet_no = models.CharField(max_length=32, null=True, blank=True, verbose_name=_('Cabinet number'))
cabinet_pos = models.IntegerField(null=True, blank=True, verbose_name=_('Cabinet position'))
number = models.CharField(max_length=32, blank=True, verbose_name=_('Asset number'))
status = models.ForeignKey(AssetExtend, null=True, blank=True,
@@ -127,11 +298,11 @@ class Asset(models.Model):
sn = models.CharField(max_length=128, blank=True, verbose_name=_('Serial number'))
created_by = models.CharField(max_length=32, blank=True, verbose_name=_('Created by'))
is_active = models.BooleanField(default=True, verbose_name=_('Is active'))
- date_added = models.DateTimeField(auto_now=True, null=True, verbose_name=_('Date added'))
- comment = models.CharField(max_length=128, blank=True, verbose_name=_('Comment'))
+ date_created = models.DateTimeField(auto_now=True, null=True, blank=True, verbose_name=_('Date added'))
+ comment = models.CharField(max_length=128, null=True, blank=True, verbose_name=_('Comment'))
def __unicode__(self):
- return '%(ip)s:%(port)d' % {'ip': self.ip, 'port': self.port}
+ return '%(ip)s:%(port)s' % {'ip': self.ip, 'port': self.port}
def initial(self):
pass
@@ -140,13 +311,32 @@ class Asset(models.Model):
db_table = 'asset'
index_together = ('ip', 'port')
+ @classmethod
+ def generate_fake(cls, count=100):
+ from random import seed
+ import forgery_py
+ from django.db import IntegrityError
+
+ seed()
+ for i in range(count):
+ asset = cls(ip='%s.%s.%s.%s' % tuple([forgery_py.forgery.basic.text(length=3, digits=True)
+ for i in range(0, 4)]),
+ port=22,
+ created_by='Fake')
+ try:
+ asset.save()
+ logger.debug('Generate fake asset : %s' % asset.ip)
+ except IntegrityError:
+ print('Error continue')
+ continue
+
class Label(models.Model):
key = models.CharField(max_length=64, verbose_name=_('KEY'))
value = models.CharField(max_length=64, verbose_name=_('VALUE'))
asset = models.ForeignKey(Asset, null=True, blank=True, on_delete=models.SET_NULL, verbose_name=_('Asset'))
created_by = models.CharField(max_length=32, blank=True, verbose_name=_("Created by"))
- date_added = models.DateTimeField(auto_now=True, null=True, verbose_name=_('Date added'))
+ date_created = models.DateTimeField(auto_now=True, null=True)
comment = models.CharField(max_length=128, blank=True, verbose_name=_('Comment'))
def __unicode__(self):
@@ -155,3 +345,7 @@ class Label(models.Model):
class Meta:
db_table = 'label'
+
+def generate_fake():
+ for cls in (Asset, AssetGroup, IDC):
+ cls.generate_fake()
diff --git a/apps/assets/static/assets/example.png b/apps/assets/static/assets/example.png
deleted file mode 100644
index e69de29bb..000000000
diff --git a/apps/assets/templates/assets/admin_user_create_update.html b/apps/assets/templates/assets/admin_user_create_update.html
new file mode 100644
index 000000000..7738adec0
--- /dev/null
+++ b/apps/assets/templates/assets/admin_user_create_update.html
@@ -0,0 +1,70 @@
+{% extends 'base.html' %}
+{% load i18n %}
+{% load static %}
+{% load bootstrap %}
+{% block custom_head_css_js %}
+
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
{% trans 'Create admin user' %}
+
+
+
+
+
+
+
+{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/assets/templates/assets/admin_user_detail.html b/apps/assets/templates/assets/admin_user_detail.html
new file mode 100644
index 000000000..12a108f6c
--- /dev/null
+++ b/apps/assets/templates/assets/admin_user_detail.html
@@ -0,0 +1,220 @@
+{% extends 'base.html' %}
+{% load common_tags %}
+{% load users_tags %}
+{% load static %}
+{% load i18n %}
+
+{% block custom_head_css_js %}
+
+
+{% endblock %}
+{% block content %}
+
+
+
+
+
+
+
+
+
+
{{ admin_user.name }}
+
+
+
+
+
+
+ {% trans 'Name' %}: |
+ {{ admin_user.name }} |
+
+
+ {% trans 'Username' %}: |
+ {{ admin_user.username }} |
+
+
+ {% trans 'Date created' %}: |
+ {{ admin_user.date_created }} |
+
+
+ {% trans 'Created by' %}: |
+ {{ asset_group.created_by }} |
+
+
+ {% trans 'Comment' %}: |
+ {{ admin_user.comment }} |
+
+
+
+
+
+
+
+
+
{% trans 'Asset list of ' %} {{ admin_user.name }}
+
+
+
+
+
+
+ {% trans 'Hostname' %} |
+ {% trans 'IP' %} |
+ {% trans 'Port' %} |
+ {% trans 'Alive' %} |
+
+
+
+ {% for asset in page_obj %}
+
+ {{ asset.hostname }} |
+ {{ asset.ip }} |
+ {{ asset.port }} |
+ Alive |
+
+ {% endfor %}
+
+
+
+ {% include '_pagination.html' %}
+
+
+
+
+
+
+
+ {% trans 'Quick update' %}
+
+
+
+
+
+ {% trans 'Get install script' %}: |
+
+
+
+
+ |
+
+
+
+ {% trans 'Retest asset connectivity' %}: |
+
+
+
+
+ |
+
+
+
+ {% trans 'Reset private key' %}: |
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+ {% trans 'Replace asset admin user with this' %}
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/assets/templates/assets/admin_user_list.html b/apps/assets/templates/assets/admin_user_list.html
new file mode 100644
index 000000000..2031dfa49
--- /dev/null
+++ b/apps/assets/templates/assets/admin_user_list.html
@@ -0,0 +1,41 @@
+{% extends '_list_base.html' %}
+{% load i18n %}
+{% load common_tags %}
+{% block content_left_head %}
+ {% trans "Create admin user" %}
+{% endblock %}
+
+{% block table_head %}
+ {% trans 'ID' %} |
+ {% trans 'Name' %} |
+ {% trans 'Username' %} |
+ {% trans 'Asset num' %} |
+ {% trans 'Lost connection' %} |
+ {% trans 'Comment' %} |
+ |
+{% endblock %}
+
+{% block table_body %}
+ {% for admin_user in admin_user_list %}
+
+ {{ admin_user.id }} |
+
+
+ {{ admin_user.name }}
+
+ |
+ {{ admin_user.username }} |
+ {{ admin_user.assets.count }} |
+ {{ admin_user.assets.count }} |
+ {{ admin_user.comment|truncatewords:8 }} |
+
+
+ {% trans 'Script' %}
+
+ {% trans 'Refresh' %}
+ {% trans 'Update' %}
+ {% trans 'Delete' %}
+ |
+
+ {% endfor %}
+{% endblock %}
diff --git a/apps/assets/templates/assets/asset_detail.html b/apps/assets/templates/assets/asset_detail.html
index 5d8a48db9..51be7b1db 100644
--- a/apps/assets/templates/assets/asset_detail.html
+++ b/apps/assets/templates/assets/asset_detail.html
@@ -151,7 +151,7 @@
添加日期 |
- {{ asset.date_added|date:"Y-m-d H:i:s" }} |
+ {{ asset.date_created|date:"Y-m-d H:i:s" }} |
备注 |
diff --git a/apps/assets/templates/assets/asset_group_create.html b/apps/assets/templates/assets/asset_group_create.html
index fe2238429..55b3d98e4 100644
--- a/apps/assets/templates/assets/asset_group_create.html
+++ b/apps/assets/templates/assets/asset_group_create.html
@@ -27,22 +27,10 @@
{% endfor %}
diff --git a/apps/assets/templates/assets/delete_confirm.html b/apps/assets/templates/assets/delete_confirm.html
new file mode 100644
index 000000000..777d1dbf9
--- /dev/null
+++ b/apps/assets/templates/assets/delete_confirm.html
@@ -0,0 +1,15 @@
+{% load i18n %}
+
+
+
+
+ {% trans 'Confirm delete' %}
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/assets/templates/assets/idc_create_update.html b/apps/assets/templates/assets/idc_create_update.html
new file mode 100644
index 000000000..b09375bdc
--- /dev/null
+++ b/apps/assets/templates/assets/idc_create_update.html
@@ -0,0 +1,61 @@
+{% extends 'base.html' %}
+{% load i18n %}
+{% load static %}
+{% load bootstrap %}
+{% block custom_head_css_js %}
+
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
{% trans 'Create idc' %}
+
+
+
+
+
+
+
+
+
+{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/assets/templates/assets/idc_list.html b/apps/assets/templates/assets/idc_list.html
new file mode 100644
index 000000000..3ce6f601b
--- /dev/null
+++ b/apps/assets/templates/assets/idc_list.html
@@ -0,0 +1,70 @@
+{% extends '_list_base.html' %}
+{% load i18n %}
+{% load common_tags %}
+{% block content_left_head %}
+ {% trans "Create IDC" %}
+{% endblock %}
+
+{% block table_head %}
+ {% trans 'ID' %} |
+ {% trans 'Name' %} |
+ {% trans 'Asset num' %} |
+ {% trans 'Bandwidth' %} |
+ {% trans 'Contact' %} |
+ {% trans 'Phone' %} |
+ {% trans 'Address' %} |
+ |
+{% endblock %}
+
+{% block table_body %}
+ {% for idc in idc_list %}
+
+ {{ idc.id }} |
+ {{ idc.name }} |
+ {{ idc.assets.count }} |
+ {{ idc.bandwidth }} |
+ {{ idc.contact }} |
+ {{ idc.phone }} |
+ {{ idc.address }} |
+
+ {% trans 'Update' %}
+ {% trans 'Delete' %}
+ |
+
+ {% endfor %}
+{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
diff --git a/apps/assets/templates/assets/system_user_asset.html b/apps/assets/templates/assets/system_user_asset.html
new file mode 100644
index 000000000..9f30c724e
--- /dev/null
+++ b/apps/assets/templates/assets/system_user_asset.html
@@ -0,0 +1,135 @@
+{% extends 'base.html' %}
+{% load common_tags %}
+{% load users_tags %}
+{% load static %}
+{% load i18n %}
+
+{% block custom_head_css_js %}
+
+
+{% endblock %}
+{% block content %}
+
+
+
+
+
+
+
+
+
+
{% trans 'Asset list of ' %} {{ admin_user.name }}
+
+
+
+
+
+
+ {% trans 'Hostname' %} |
+ {% trans 'IP' %} |
+ {% trans 'Port' %} |
+ {% trans 'Alive' %} |
+
+
+
+ {% for asset in page_obj %}
+
+ {{ asset.hostname }} |
+ {{ asset.ip }} |
+ {{ asset.port }} |
+ Alive |
+
+ {% endfor %}
+
+
+
+ {% include '_pagination.html' %}
+
+
+
+
+
+
+
+ {% trans 'Add asset to this system user' %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/assets/templates/assets/system_user_asset_group.html b/apps/assets/templates/assets/system_user_asset_group.html
new file mode 100644
index 000000000..52e48815c
--- /dev/null
+++ b/apps/assets/templates/assets/system_user_asset_group.html
@@ -0,0 +1,136 @@
+{% extends 'base.html' %}
+{% load common_tags %}
+{% load users_tags %}
+{% load static %}
+{% load i18n %}
+
+{% block custom_head_css_js %}
+
+
+{% endblock %}
+{% block content %}
+
+
+
+
+
+
+
+
+
+
{% trans 'Asset list of ' %} {{ admin_user.name }}
+
+
+
+
+
+
+ {% trans 'Name' %} |
+ {% trans 'Asset num' %} |
+ {% trans 'Unavailable num' %} |
+ {% trans 'Comment' %} |
+
+
+
+ {% for asset_group in page_obj %}
+
+ {{ asset_group.name }} |
+ {{ asset_group_group.assets.count }} |
+ {{ asset_group_group.assets.count }} |
+ {{ asset_group.comment|truncatewords:4 }} |
+
+ {% endfor %}
+
+
+
+ {% include '_pagination.html' %}
+
+
+
+
+
+
+
+ {% trans 'Add asset group to this system user' %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/assets/templates/assets/system_user_create_update.html b/apps/assets/templates/assets/system_user_create_update.html
new file mode 100644
index 000000000..ea8d466d9
--- /dev/null
+++ b/apps/assets/templates/assets/system_user_create_update.html
@@ -0,0 +1,95 @@
+{% extends 'base.html' %}
+{% load i18n %}
+{% load static %}
+{% load bootstrap %}
+{% block custom_head_css_js %}
+
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
{% trans 'Create system user' %}
+
+
+
+
+
+
+
+
+
+{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/assets/templates/assets/system_user_detail.html b/apps/assets/templates/assets/system_user_detail.html
new file mode 100644
index 000000000..7ca599d8f
--- /dev/null
+++ b/apps/assets/templates/assets/system_user_detail.html
@@ -0,0 +1,188 @@
+{% extends 'base.html' %}
+{% load common_tags %}
+{% load users_tags %}
+{% load static %}
+{% load i18n %}
+
+{% block custom_head_css_js %}
+
+
+{% endblock %}
+{% block content %}
+
+
+
+
+
+
+
+
+
+
{{ system_user.name }}
+
+
+
+
+
+
+ {% trans 'Name' %}: |
+ {{ system_user.name }} |
+
+
+ {% trans 'Username' %}: |
+ {{ system_user.username }} |
+
+
+ {% trans 'Protocol' %}: |
+ {{ system_user.protocol }} |
+
+
+ {% trans 'Auto push' %}: |
+ {{ system_user.protocol }} |
+
+
+ {% trans 'Auto update' %}: |
+ {{ system_user.auto_update }} |
+
+
+ {% trans 'As default' %}: |
+ {{ system_user.protocol }} |
+
+
+ {% trans 'Sudo' %}: |
+ {{ system_user.sudo }} |
+
+ {% if system_user.shell %}
+
+ {% trans 'Shell' %}: |
+ {{ system_user.shell }} |
+
+ {% endif %}
+ {% if system_user.home %}
+
+ {% trans 'Home' %}: |
+ {{ system_user.home }} |
+
+ {% endif %}
+ {% if system_user.uid %}
+
+ {% trans 'Uid' %}: |
+ {{ system_user.uid }} |
+
+ {% endif %}
+
+ {% trans 'Date created' %}: |
+ {{ system_user.date_created }} |
+
+
+ {% trans 'Created by' %}: |
+ {{ asset_group.created_by }} |
+
+
+ {% trans 'Comment' %}: |
+ {{ system_user.comment }} |
+
+
+
+
+
+
+
+
+
+
+ {% trans 'Quick update' %}
+
+
+
+
+
+ {% trans 'Get mannual install script' %}: |
+
+
+
+
+ |
+
+
+
+ {% trans 'Retest asset connectivity' %}: |
+
+
+
+
+ |
+
+
+
+ {% trans 'Reset private key' %}: |
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/assets/templates/assets/system_user_list.html b/apps/assets/templates/assets/system_user_list.html
new file mode 100644
index 000000000..ac8672347
--- /dev/null
+++ b/apps/assets/templates/assets/system_user_list.html
@@ -0,0 +1,43 @@
+{% extends '_list_base.html' %}
+{% load i18n %}
+{% load common_tags %}
+{% block content_left_head %}
+ {% trans "Create system user" %}
+{% endblock %}
+
+{% block table_head %}
+ {% trans 'ID' %} |
+ {% trans 'Name' %} |
+ {% trans 'Username' %} |
+ {% trans 'Asset num' %} |
+ {% trans 'Asset group num' %} |
+ {% trans 'Unavailable' %} |
+ {% trans 'Comment' %} |
+ |
+{% endblock %}
+
+{% block table_body %}
+ {% for system_user in system_user_list %}
+
+ {{ system_user.id }} |
+
+
+ {{ system_user.name }}
+
+ |
+ {{ system_user.username }} |
+ {{ system_user.assets.count }} |
+ {{ system_user.asset_groups.count }} |
+ {{ system_user.assets.count }} |
+ {{ system_user.comment|truncatewords:4 }} |
+
+
+ {% trans 'Script' %}
+
+ {% trans 'Refresh' %}
+ {% trans 'Update' %}
+ {% trans 'Delete' %}
+ |
+
+ {% endfor %}
+{% endblock %}
diff --git a/apps/assets/urls.py b/apps/assets/urls.py
index 68279389a..175c01afc 100644
--- a/apps/assets/urls.py
+++ b/apps/assets/urls.py
@@ -12,16 +12,43 @@ import views
app_name = 'assets'
urlpatterns = [
+ # Resource asset url
url(r'^$', views.AssetListView.as_view(), name='asset-index'),
url(r'^asset$', views.AssetListView.as_view(), name='asset-list'),
url(r'^asset/create$', views.AssetCreateView.as_view(), name='asset-create'),
url(r'^asset/(?P[0-9]+)$', views.AssetDetailView.as_view(), name='asset-detail'),
- url(r'^asset/(?P[0-9]+)$/update', views.AssetUpdateView.as_view(), name='asset-update'),
+ url(r'^asset/(?P[0-9]+)/update', views.AssetUpdateView.as_view(), name='asset-update'),
url(r'^asset/(?P[0-9]+)/delete$', views.AssetDeleteView.as_view(), name='asset-delete'),
+
+ # Resource asset group url
url(r'^asset-group$', views.AssetGroupListView.as_view(), name='asset-group-list'),
url(r'^asset-group/create$', views.AssetGroupCreateView.as_view(), name='asset-group-create'),
url(r'^asset-group/(?P[0-9]+)$', views.AssetGroupDetailView.as_view(), name='asset-group-detail'),
url(r'^asset-group/(?P[0-9]+)/update$', views.AssetGroupUpdateView.as_view(), name='asset-group-update'),
url(r'^asset-group/(?P[0-9]+)/delete$', views.AssetGroupDeleteView.as_view(), name='asset-group-delete'),
+
+ # Resource idc url
+ url(r'^idc$', views.IDCListView.as_view(), name='idc-list'),
+ url(r'^idc/create$', views.IDCCreateView.as_view(), name='idc-create'),
+ url(r'^idc/(?P[0-9]+)$', views.IDCDetailView.as_view(), name='idc-detail'),
+ url(r'^idc/(?P[0-9]+)/update', views.IDCUpdateView.as_view(), name='idc-update'),
+ url(r'^idc/(?P[0-9]+)/delete$', views.IDCDeleteView.as_view(), name='idc-delete'),
+
+ # Resource admin user url
+ url(r'^admin-user$', views.AdminUserListView.as_view(), name='admin-user-list'),
+ url(r'^admin-user/create$', views.AdminUserCreateView.as_view(), name='admin-user-create'),
+ url(r'^admin-user/(?P[0-9]+)$', views.AdminUserDetailView.as_view(), name='admin-user-detail'),
+ url(r'^admin-user/(?P[0-9]+)/update', views.AdminUserUpdateView.as_view(), name='admin-user-update'),
+ url(r'^admin-user/(?P[0-9]+)/delete$', views.AdminUserDeleteView.as_view(), name='admin-user-delete'),
+
+ # Resource system user url
+ url(r'^system-user$', views.SystemUserListView.as_view(), name='system-user-list'),
+ url(r'^system-user/create$', views.SystemUserCreateView.as_view(), name='system-user-create'),
+ url(r'^system-user/(?P[0-9]+)$', views.SystemUserDetailView.as_view(), name='system-user-detail'),
+ url(r'^system-user/(?P[0-9]+)/update', views.SystemUserUpdateView.as_view(), name='system-user-update'),
+ url(r'^system-user/(?P[0-9]+)/delete$', views.SystemUserDeleteView.as_view(), name='system-user-delete'),
+ url(r'^system-user/(?P[0-9]+)/asset$', views.SystemUserAssetView.as_view(), name='system-user-asset'),
+ url(r'^system-user/(?P[0-9]+)/asset-group$', views.SystemUserAssetGroupView.as_view(),
+ name='system-user-asset-group'),
# url(r'^api/v1.0/', include(router.urls)),
]
diff --git a/apps/assets/utils.py b/apps/assets/utils.py
index 2fb5bfe7f..9a42d3031 100644
--- a/apps/assets/utils.py
+++ b/apps/assets/utils.py
@@ -1,23 +1,4 @@
# ~*~ coding: utf-8 ~*~
#
-from django.contrib.auth.mixins import UserPassesTestMixin
-from django.urls import reverse_lazy
-
-from common.tasks import send_mail_async
-from common.utils import reverse
-from users.models import User
-
-
-try:
- import cStringIO as StringIO
-except ImportError:
- import StringIO
-
-
-class AdminUserRequiredMixin(UserPassesTestMixin):
- login_url = reverse_lazy('users:login')
-
- def test_func(self):
- return self.request.user.is_staff
diff --git a/apps/assets/views.py b/apps/assets/views.py
index 23abf1867..797366408 100644
--- a/apps/assets/views.py
+++ b/apps/assets/views.py
@@ -2,18 +2,17 @@
from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext as _
-from django.shortcuts import get_object_or_404
-from django.views.generic import TemplateView, ListView
-from django.urls import reverse_lazy
-from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView
+from django.conf import settings
+from django.db.models import Q
from django.views.generic import TemplateView, ListView
from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView
from django.urls import reverse_lazy
-from django.views.generic.detail import DetailView
+from django.contrib.messages.views import SuccessMessageMixin
+from django.views.generic.detail import DetailView, SingleObjectMixin
-from .models import Asset, AssetGroup, IDC, AssetExtend
-from .forms import AssetForm, AssetGroupForm
-from .utils import AdminUserRequiredMixin
+from .models import Asset, AssetGroup, IDC, AssetExtend, AdminUser, SystemUser
+from .forms import AssetForm, AssetGroupForm, IDCForm, AdminUserForm, SystemUserForm
+from .hands import AdminUserRequiredMixin
class AssetCreateView(CreateView):
@@ -50,12 +49,14 @@ class AssetDetailView(DetailView):
template_name = 'assets/asset_detail.html'
-class AssetGroupCreateView(CreateView):
+class AssetGroupCreateView(AdminUserRequiredMixin, CreateView):
model = AssetGroup
form_class = AssetGroupForm
template_name = 'assets/asset_group_create.html'
success_url = reverse_lazy('assets:asset-group-list')
+ # Todo: Asset group create template select assets so hard, need be resolve next
+
def get_context_data(self, **kwargs):
context = {
'app': _('Assets'),
@@ -70,25 +71,57 @@ class AssetGroupCreateView(CreateView):
return super(AssetGroupCreateView, self).form_valid(form)
-class AssetGroupListView(ListView):
+class AssetGroupListView(AdminUserRequiredMixin, ListView):
model = AssetGroup
+ paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
context_object_name = 'asset_group_list'
template_name = 'assets/asset_group_list.html'
def get_context_data(self, **kwargs):
context = {
'app': _('Assets'),
- 'action': _('Asset group list')
+ 'action': _('Asset group list'),
+ 'keyword': self.request.GET.get('keyword', '')
}
kwargs.update(context)
return super(AssetGroupListView, self).get_context_data(**kwargs)
+ def get_queryset(self):
+ self.queryset = super(AssetGroupListView, self).get_queryset()
+ self.keyword = keyword = self.request.GET.get('keyword', '')
+ self.sort = sort = self.request.GET.get('sort', '-date_created')
-class AssetGroupDetailView(DetailView):
- pass
+ if keyword:
+ self.queryset = self.queryset.filter(Q(name__icontains=keyword) |
+ Q(comment__icontains=keyword))
+
+ if sort:
+ self.queryset = self.queryset.order_by(sort)
+ return self.queryset
-class AssetGroupUpdateView(UpdateView):
+class AssetGroupDetailView(SingleObjectMixin, AdminUserRequiredMixin, ListView):
+ template_name = 'assets/asset_group_detail.html'
+ paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
+
+ def get(self, request, *args, **kwargs):
+ self.object = self.get_object(queryset=AssetGroup.objects.all())
+ return super(AssetGroupDetailView, self).get(request, *args, **kwargs)
+
+ def get_queryset(self):
+ return self.object.assets.all()
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': _('Assets'),
+ 'action': _('Asset group detail'),
+ 'asset_group': self.object,
+ }
+ kwargs.update(context)
+ return super(AssetGroupDetailView, self).get_context_data(**kwargs)
+
+
+class AssetGroupUpdateView(AdminUserRequiredMixin, UpdateView):
model = AssetGroup
form_class = AssetGroupForm
template_name = 'assets/asset_group_create.html'
@@ -104,5 +137,313 @@ class AssetGroupUpdateView(UpdateView):
return super(AssetGroupUpdateView, self).get_context_data(**kwargs)
-class AssetGroupDeleteView(DeleteView):
+class AssetGroupDeleteView(AdminUserRequiredMixin, DeleteView):
+ template_name = 'assets/delete_confirm.html'
+ model = AssetGroup
+ success_url = reverse_lazy('assets:asset-group-list')
+
+
+class IDCListView(AdminUserRequiredMixin, ListView):
+ model = IDC
+ paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
+ context_object_name = 'idc_list'
+ template_name = 'assets/idc_list.html'
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': _('Assets'),
+ 'action': _('IDC list'),
+ 'keyword': self.request.GET.get('keyword', '')
+ }
+ kwargs.update(context)
+ return super(IDCListView, self).get_context_data(**kwargs)
+
+ def get_queryset(self):
+ self.queryset = super(IDCListView, self).get_queryset()
+ self.keyword = keyword = self.request.GET.get('keyword', '')
+ self.sort = sort = self.request.GET.get('sort', '-date_created')
+
+ if keyword:
+ self.queryset = self.queryset.filter(Q(name__icontains=keyword) |
+ Q(comment__icontains=keyword))
+
+ if sort:
+ self.queryset = self.queryset.order_by(sort)
+ return self.queryset
+
+
+class IDCCreateView(AdminUserRequiredMixin, CreateView):
+ model = IDC
+ form_class = IDCForm
+ template_name = 'assets/idc_create_update.html'
+ success_url = reverse_lazy('assets:idc-list')
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': 'assets',
+ 'action': 'Create IDC'
+ }
+ kwargs.update(context)
+ return super(IDCCreateView, self).get_context_data(**kwargs)
+
+
+class IDCUpdateView(AdminUserRequiredMixin, UpdateView):
+ model = IDC
+ form_class = IDCForm
+ template_name = 'assets/idc_create_update.html'
+ context_object_name = 'idc'
+ success_url = reverse_lazy('assets:idc-list')
+
+ def form_valid(self, form):
+ idc = form.save(commit=False)
+ idc.save()
+ return super(IDCUpdateView, self).form_valid(form)
+
+
+class IDCDetailView(AdminUserRequiredMixin, DetailView):
pass
+
+
+class IDCDeleteView(AdminUserRequiredMixin, DeleteView):
+ model = IDC
+ template_name = 'assets/delete_confirm.html'
+ success_url = reverse_lazy('assets:idc-list')
+
+
+class AdminUserListView(AdminUserRequiredMixin, ListView):
+ model = AdminUser
+ paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
+ context_object_name = 'admin_user_list'
+ template_name = 'assets/admin_user_list.html'
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': _('Assets'),
+ 'action': _('Admin user list'),
+ 'keyword': self.request.GET.get('keyword', '')
+ }
+ kwargs.update(context)
+ return super(AdminUserListView, self).get_context_data(**kwargs)
+
+ def get_queryset(self):
+ # Todo: Default order by lose asset connection num
+ self.queryset = super(AdminUserListView, self).get_queryset()
+ self.keyword = keyword = self.request.GET.get('keyword', '')
+ self.sort = sort = self.request.GET.get('sort', '-date_created')
+
+ if keyword:
+ self.queryset = self.queryset.filter(Q(name__icontains=keyword) |
+ Q(comment__icontains=keyword))
+
+ if sort:
+ self.queryset = self.queryset.order_by(sort)
+ return self.queryset
+
+
+class AdminUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView):
+ model = AdminUser
+ form_class = AdminUserForm
+ template_name = 'assets/admin_user_create_update.html'
+ success_url = reverse_lazy('assets:admin-user-list')
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': 'assets',
+ 'action': 'Create admin user'
+ }
+ kwargs.update(context)
+ return super(AdminUserCreateView, self).get_context_data(**kwargs)
+
+ def get_success_message(self, cleaned_data):
+ success_message = _('Create admin user %s successfully.' %
+ (
+ reverse_lazy('assets:admin-user-detail', kwargs={'pk': self.object.pk}),
+ self.object.name,
+ ))
+ return success_message
+
+
+class AdminUserUpdateView(AdminUserRequiredMixin, UpdateView):
+ model = AdminUser
+ form_class = AdminUserForm
+ template_name = 'assets/admin_user_create_update.html'
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': 'assets',
+ 'action': 'Update admin user'
+ }
+ kwargs.update(context)
+ return super(AdminUserUpdateView, self).get_context_data(**kwargs)
+
+ def get_success_url(self):
+ success_url = reverse_lazy('assets:admin-user-detail', pk=self.object.pk)
+ return success_url
+
+
+class AdminUserDetailView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
+ paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
+ template_name = 'assets/admin_user_detail.html'
+ context_object_name = 'admin_user'
+
+ def get(self, request, *args, **kwargs):
+ self.object = self.get_object(queryset=AdminUser.objects.all())
+ return super(AdminUserDetailView, self).get(request, *args, **kwargs)
+
+ # Todo: queryset default order by connectivity, need ops support
+ def get_queryset(self):
+ return self.object.assets.all()
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': 'assets',
+ 'action': 'Admin user detail'
+ }
+ kwargs.update(context)
+ return super(AdminUserDetailView, self).get_context_data(**kwargs)
+
+
+class AdminUserDeleteView(AdminUserRequiredMixin, DeleteView):
+ model = AdminUser
+ template_name = 'assets/delete_confirm.html'
+ success_url = reverse_lazy('assets:admin-user-list')
+
+
+class SystemUserListView(AdminUserRequiredMixin, ListView):
+ model = SystemUser
+ paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
+ context_object_name = 'system_user_list'
+ template_name = 'assets/system_user_list.html'
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': _('Assets'),
+ 'action': _('System user list'),
+ 'keyword': self.request.GET.get('keyword', '')
+ }
+ kwargs.update(context)
+ return super(SystemUserListView, self).get_context_data(**kwargs)
+
+ def get_queryset(self):
+ # Todo: Default order by lose asset connection num
+ self.queryset = super(SystemUserListView, self).get_queryset()
+ self.keyword = keyword = self.request.GET.get('keyword', '')
+ self.sort = sort = self.request.GET.get('sort', '-date_created')
+
+ if keyword:
+ self.queryset = self.queryset.filter(Q(name__icontains=keyword) |
+ Q(comment__icontains=keyword))
+
+ if sort:
+ self.queryset = self.queryset.order_by(sort)
+ return self.queryset
+
+
+class SystemUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView):
+ model = SystemUser
+ form_class = SystemUserForm
+ template_name = 'assets/system_user_create_update.html'
+ success_url = reverse_lazy('assets:system-user-list')
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': _('Assets'),
+ 'action': _('Create system user'),
+ }
+ kwargs.update(context)
+ return super(SystemUserCreateView, self).get_context_data(**kwargs)
+
+ def get_success_message(self, cleaned_data):
+ success_message = _('Create system user %s successfully.' %
+ (
+ reverse_lazy('assets:system-user-detail', kwargs={'pk': self.object.pk}),
+ self.object.name,
+ ))
+
+ return self.success_message
+
+
+class SystemUserUpdateView(AdminUserRequiredMixin, UpdateView):
+ model = SystemUser
+ form_class = SystemUserForm
+ template_name = 'assets/system_user_create_update.html'
+ success_message = _('Update system user %s successfully.')
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': _('Assets'),
+ 'action': _('Update system user')
+ }
+ kwargs.update(context)
+ return super(SystemUserUpdateView, self).get_context_data(**kwargs)
+
+ def get_success_url(self):
+ success_url = reverse_lazy('assets:system-user-detail', pk=self.object.pk)
+ return success_url
+
+
+class SystemUserDetailView(AdminUserRequiredMixin, DetailView):
+ template_name = 'assets/system_user_detail.html'
+ context_object_name = 'system_user'
+ model = SystemUser
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': _('Assets'),
+ 'action': _('System user detail')
+ }
+ kwargs.update(context)
+ return super(SystemUserDetailView, self).get_context_data(**kwargs)
+
+
+class SystemUserDeleteView(AdminUserRequiredMixin, DeleteView):
+ model = SystemUser
+ template_name = 'assets/delete_confirm.html'
+ success_url = reverse_lazy('assets:system-user-list')
+
+
+class SystemUserAssetView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
+ paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
+ template_name = 'assets/system_user_asset.html'
+ context_object_name = 'system_user'
+
+ def get(self, request, *args, **kwargs):
+ self.object = self.get_object(queryset=SystemUser.objects.all())
+ return super(SystemUserAssetView, self).get(request, *args, **kwargs)
+
+ # Todo: queryset default order by connectivity, need ops support
+ def get_queryset(self):
+ return self.object.assets.all()
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': 'assets',
+ 'action': 'System user asset',
+ 'assets': self.get_queryset(),
+ }
+ kwargs.update(context)
+ return super(SystemUserAssetView, self).get_context_data(**kwargs)
+
+
+class SystemUserAssetGroupView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
+ paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
+ template_name = 'assets/system_user_asset_group.html'
+ context_object_name = 'system_user'
+
+ def get(self, request, *args, **kwargs):
+ self.object = self.get_object(queryset=SystemUser.objects.all())
+ return super(SystemUserAssetGroupView, self).get(request, *args, **kwargs)
+
+ # Todo: queryset default order by connectivity, need ops support
+ def get_queryset(self):
+ return self.object.asset_groups.all()
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': 'assets',
+ 'action': 'System user asset group',
+ 'asset_groups': self.get_queryset(),
+ }
+ kwargs.update(context)
+ return super(SystemUserAssetGroupView, self).get_context_data(**kwargs)
+
diff --git a/apps/common/README.md b/apps/common/README.md
index 6aac06589..400f19fc8 100644
--- a/apps/common/README.md
+++ b/apps/common/README.md
@@ -1,3 +1,18 @@
+# Common app
+
+Common app provide common view, function or others.
+
+Common app shouldn't rely on other apps, because It may lead to cycle
+import.
+
+If your want to implement some function or class, you should think
+whether other app use or not. If yes, You should make in common.
+
+If the ability more relate to your app tightness, It's mean your app
+provide this ability, not common, You should write it on your app utils.
+
+
+
## Celery usage
diff --git a/apps/common/utils.py b/apps/common/utils.py
index 7c3df178a..d44167ce3 100644
--- a/apps/common/utils.py
+++ b/apps/common/utils.py
@@ -2,9 +2,15 @@
#
from __future__ import unicode_literals
+from six import string_types
+from itertools import chain
+import string
+import logging
from django.shortcuts import reverse as dj_reverse
from django.conf import settings
+from django.core import signing
+from django.utils import timezone
def reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None, external=False):
@@ -21,3 +27,76 @@ def get_object_or_none(model, **kwargs):
except model.DoesNotExist:
obj = None
return obj
+
+
+def encrypt(*args, **kwargs):
+ return signing.dumps(*args, **kwargs)
+
+
+def decrypt(*args, **kwargs):
+ return signing.loads(*args, **kwargs)
+
+
+def date_expired_default():
+ try:
+ years = int(settings.CONFIG.DEFAULT_EXPIRED_YEARS)
+ except TypeError:
+ years = 70
+
+ return timezone.now() + timezone.timedelta(days=365 * years)
+
+
+def combine_seq(s1, s2, callback=None):
+ for s in (s1, s2):
+ if not hasattr(s, '__iter__'):
+ return []
+
+ seq = chain(s1, s2)
+ if callback:
+ seq = map(callback, seq)
+ return seq
+
+
+def search_object_attr(obj, value='', attr_list=None, ignore_case=False):
+ """It's provide a method to search a object attribute equal some value
+
+ If object some attribute equal :param: value, return True else return False
+
+ class A():
+ name = 'admin'
+ age = 7
+
+ :param obj: A object
+ :param value: A string match object attribute
+ :param attr_list: Only match attribute in attr_list
+ :param ignore_case: Ignore case
+ :return: Boolean
+ """
+ if value == '':
+ return True
+
+ try:
+ object_attr = obj.__dict__
+ except AttributeError:
+ return False
+
+ if attr_list is not None:
+ new_object_attr = {}
+ for attr in attr_list:
+ new_object_attr[attr] = object_attr.pop(attr)
+ object_attr = new_object_attr
+
+ if ignore_case:
+ if not isinstance(value, string_types):
+ return False
+
+ if value.lower() in map(string.lower, map(str, object_attr.values())):
+ return True
+ else:
+ if value in object_attr.values():
+ return True
+ return False
+
+
+def get_logger(name=None):
+ return logging.getLogger('jumpserver.%s' % name)
diff --git a/apps/fixtures/fake.json b/apps/fixtures/fake.json
index c01b15e99..0ad65be15 100644
--- a/apps/fixtures/fake.json
+++ b/apps/fixtures/fake.json
@@ -1 +1 @@
-[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_added": "2016-09-05T11:39:25.770Z", "created_by": "System"}}, {"model": "users.usergroup", "pk": 2, "fields": {"name": "Scott Brooks", "comment": "Suspendisse ornare consequat lectus.", "date_added": "2016-09-05T11:40:28.122Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 3, "fields": {"name": "Rebecca Jones", "comment": "In eleifend quam a odio.", "date_added": "2016-09-05T11:40:28.125Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 4, "fields": {"name": "Wayne Simpson", "comment": "Nulla nisl.", "date_added": "2016-09-05T11:40:28.129Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 5, "fields": {"name": "Scott Lee", "comment": "Mauris sit amet eros.", "date_added": "2016-09-05T11:40:28.133Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 6, "fields": {"name": "Stephen Franklin", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio.", "date_added": "2016-09-05T11:40:28.135Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 7, "fields": {"name": "Patricia Hamilton", "comment": "Ut at dolor quis odio consequat varius.", "date_added": "2016-09-05T11:40:28.137Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 8, "fields": {"name": "Tina Armstrong", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.", "date_added": "2016-09-05T11:40:28.139Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 9, "fields": {"name": "Sandra Walker", "comment": "Nulla ac enim.", "date_added": "2016-09-05T11:40:28.141Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 10, "fields": {"name": "Ann Washington", "comment": "Vestibulum quam sapien, varius ut, blandit non, interdum in, ante.", "date_added": "2016-09-05T11:40:28.143Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 11, "fields": {"name": "Theresa Lynch", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_added": "2016-09-05T11:40:28.146Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 12, "fields": {"name": "Larry Martinez", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "date_added": "2016-09-05T11:40:28.148Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 13, "fields": {"name": "Emily Nelson", "comment": "Praesent blandit lacinia erat.", "date_added": "2016-09-05T11:40:28.150Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 14, "fields": {"name": "Cheryl Wright", "comment": "Duis ac nibh.", "date_added": "2016-09-05T11:40:28.152Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 15, "fields": {"name": "Rachel Sims", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "date_added": "2016-09-05T11:40:28.154Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 16, "fields": {"name": "Emily Frazier", "comment": "Nullam molestie nibh in lectus.", "date_added": "2016-09-05T11:40:28.156Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 17, "fields": {"name": "Joyce Davis", "comment": "Nunc rhoncus dui vel sem.", "date_added": "2016-09-05T11:40:28.158Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 18, "fields": {"name": "Anna Rose", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.", "date_added": "2016-09-05T11:40:28.160Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 19, "fields": {"name": "Diana Ellis", "comment": "Cras in purus eu magna vulputate luctus.", "date_added": "2016-09-05T11:40:28.162Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 20, "fields": {"name": "Paula Collins", "comment": "Nulla tellus.", "date_added": "2016-09-05T11:40:28.164Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 21, "fields": {"name": "Judith Simmons", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.", "date_added": "2016-09-05T11:40:28.166Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 22, "fields": {"name": "Rebecca Patterson", "comment": "Fusce posuere felis sed lacus.", "date_added": "2016-09-05T11:40:28.168Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 23, "fields": {"name": "Kathleen Chavez", "comment": "Nunc rhoncus dui vel sem.", "date_added": "2016-09-05T11:40:28.170Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 24, "fields": {"name": "Sharon Johnston", "comment": "Suspendisse potenti.", "date_added": "2016-09-05T11:40:28.173Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 25, "fields": {"name": "Kathryn Cunningham", "comment": "Pellentesque ultrices mattis odio.", "date_added": "2016-09-05T11:40:28.175Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 26, "fields": {"name": "Julie Nguyen", "comment": "Donec ut mauris eget massa tempor convallis.", "date_added": "2016-09-05T11:40:28.177Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 27, "fields": {"name": "Nicole Lynch", "comment": "Proin interdum mauris non ligula pellentesque ultrices.", "date_added": "2016-09-05T11:40:28.179Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 28, "fields": {"name": "Diana Williamson", "comment": "Proin risus.", "date_added": "2016-09-05T11:40:28.181Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 29, "fields": {"name": "Lori Ellis", "comment": "Integer non velit.", "date_added": "2016-09-05T11:40:28.183Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 30, "fields": {"name": "Heather Ruiz", "comment": "Donec dapibus.", "date_added": "2016-09-05T11:40:28.185Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 31, "fields": {"name": "Norma Stevens", "comment": "Curabitur convallis.", "date_added": "2016-09-05T11:40:28.188Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 32, "fields": {"name": "Ann Murphy", "comment": "In eleifend quam a odio.", "date_added": "2016-09-05T11:40:28.190Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 33, "fields": {"name": "Stephanie Ellis", "comment": "Donec ut mauris eget massa tempor convallis.", "date_added": "2016-09-05T11:40:28.192Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 34, "fields": {"name": "Katherine Davis", "comment": "Nulla ac enim.", "date_added": "2016-09-05T11:40:28.194Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 35, "fields": {"name": "Judy Clark", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "date_added": "2016-09-05T11:40:28.196Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 36, "fields": {"name": "Shirley Warren", "comment": "Integer ac neque.", "date_added": "2016-09-05T11:40:28.198Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 37, "fields": {"name": "Beverly Hanson", "comment": "In est risus, auctor sed, tristique in, tempus sit amet, sem.", "date_added": "2016-09-05T11:40:28.199Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 38, "fields": {"name": "Dorothy Olson", "comment": "Nulla suscipit ligula in lacus.", "date_added": "2016-09-05T11:40:28.202Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 39, "fields": {"name": "Amanda Hudson", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.", "date_added": "2016-09-05T11:40:28.204Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 40, "fields": {"name": "Cheryl Stanley", "comment": "Curabitur gravida nisi at nibh.", "date_added": "2016-09-05T11:40:28.206Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 41, "fields": {"name": "Anne Simpson", "comment": "Sed ante.", "date_added": "2016-09-05T11:40:28.208Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 42, "fields": {"name": "Linda Fernandez", "comment": "Ut tellus.", "date_added": "2016-09-05T11:40:28.210Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 43, "fields": {"name": "Nicole Cruz", "comment": "Nulla facilisi.", "date_added": "2016-09-05T11:40:28.212Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 44, "fields": {"name": "Jane Castillo", "comment": "Nunc nisl.", "date_added": "2016-09-05T11:40:28.214Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 45, "fields": {"name": "Marilyn Thompson", "comment": "Aenean auctor gravida sem.", "date_added": "2016-09-05T11:40:28.216Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 46, "fields": {"name": "Jessica Riley", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla.", "date_added": "2016-09-05T11:40:28.218Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 47, "fields": {"name": "Maria Wood", "comment": "Donec semper sapien a libero.", "date_added": "2016-09-05T11:40:28.220Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 48, "fields": {"name": "Christine Phillips", "comment": "Ut tellus.", "date_added": "2016-09-05T11:40:28.222Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 49, "fields": {"name": "Ruby Riley", "comment": "Phasellus id sapien in sapien iaculis congue.", "date_added": "2016-09-05T11:40:28.224Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 50, "fields": {"name": "Judith Larson", "comment": "In hac habitasse platea dictumst.", "date_added": "2016-09-05T11:40:28.225Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 51, "fields": {"name": "Jessica Cook", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "date_added": "2016-09-05T11:40:28.227Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 52, "fields": {"name": "Stephanie Garrett", "comment": "Maecenas rhoncus aliquam lacus.", "date_added": "2016-09-05T11:40:28.230Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 53, "fields": {"name": "Nancy Alexander", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.", "date_added": "2016-09-05T11:40:28.232Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 54, "fields": {"name": "Gregory Wheeler", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "date_added": "2016-09-05T11:40:28.234Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 55, "fields": {"name": "Doris Boyd", "comment": "Suspendisse potenti.", "date_added": "2016-09-05T11:40:28.236Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 56, "fields": {"name": "Pamela Day", "comment": "In hac habitasse platea dictumst.", "date_added": "2016-09-05T11:40:28.238Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 57, "fields": {"name": "Nancy Price", "comment": "In blandit ultrices enim.", "date_added": "2016-09-05T11:40:28.240Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 58, "fields": {"name": "Rose Brooks", "comment": "Vivamus vel nulla eget eros elementum pellentesque.", "date_added": "2016-09-05T11:40:28.242Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 59, "fields": {"name": "Lori Palmer", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem.", "date_added": "2016-09-05T11:40:28.244Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 60, "fields": {"name": "Carol Myers", "comment": "Etiam vel augue.", "date_added": "2016-09-05T11:40:28.246Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 61, "fields": {"name": "Nancy Morrison", "comment": "Ut tellus.", "date_added": "2016-09-05T11:40:28.248Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 62, "fields": {"name": "Kelly Edwards", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.", "date_added": "2016-09-05T11:40:28.251Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 63, "fields": {"name": "Nicole Montgomery", "comment": "Duis ac nibh.", "date_added": "2016-09-05T11:40:28.253Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 64, "fields": {"name": "Cynthia Stephens", "comment": "In quis justo.", "date_added": "2016-09-05T11:40:28.255Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 65, "fields": {"name": "Nicole Willis", "comment": "Etiam vel augue.", "date_added": "2016-09-05T11:40:28.257Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 66, "fields": {"name": "Sharon Mills", "comment": "Proin risus.", "date_added": "2016-09-05T11:40:28.259Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 67, "fields": {"name": "Phyllis Richards", "comment": "Nulla nisl.", "date_added": "2016-09-05T11:40:28.261Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 68, "fields": {"name": "Gloria Welch", "comment": "Etiam pretium iaculis justo.", "date_added": "2016-09-05T11:40:28.263Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 69, "fields": {"name": "Paula Taylor", "comment": "Cras pellentesque volutpat dui.", "date_added": "2016-09-05T11:40:28.265Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 70, "fields": {"name": "Rebecca Flores", "comment": "In blandit ultrices enim.", "date_added": "2016-09-05T11:40:28.267Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 71, "fields": {"name": "Joan Black", "comment": "In sagittis dui vel nisl.", "date_added": "2016-09-05T11:40:28.270Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 72, "fields": {"name": "Denise Watson", "comment": "In hac habitasse platea dictumst.", "date_added": "2016-09-05T11:40:28.272Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 73, "fields": {"name": "Judith Brooks", "comment": "Nam dui.", "date_added": "2016-09-05T11:40:28.274Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 74, "fields": {"name": "Nicole Miller", "comment": "Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.", "date_added": "2016-09-05T11:40:28.276Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 75, "fields": {"name": "Jessica Graham", "comment": "Nulla tempus.", "date_added": "2016-09-05T11:40:28.278Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 76, "fields": {"name": "Carol Edwards", "comment": "Nam tristique tortor eu pede.", "date_added": "2016-09-05T11:40:28.281Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 77, "fields": {"name": "Diane Jordan", "comment": "Nulla justo.", "date_added": "2016-09-05T11:40:28.283Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 78, "fields": {"name": "Kathleen Medina", "comment": "Pellentesque viverra pede ac diam.", "date_added": "2016-09-05T11:40:28.285Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 79, "fields": {"name": "Angela Thomas", "comment": "Integer ac leo.", "date_added": "2016-09-05T11:40:28.287Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 80, "fields": {"name": "Christina Knight", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla.", "date_added": "2016-09-05T11:40:28.290Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 81, "fields": {"name": "Heather Medina", "comment": "Integer ac leo.", "date_added": "2016-09-05T11:40:28.292Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 82, "fields": {"name": "Heather Campbell", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "date_added": "2016-09-05T11:40:28.294Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 83, "fields": {"name": "Linda Elliott", "comment": "Cras non velit nec nisi vulputate nonummy.", "date_added": "2016-09-05T11:40:28.297Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 84, "fields": {"name": "Sara Morgan", "comment": "Duis aliquam convallis nunc.", "date_added": "2016-09-05T11:40:28.299Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 85, "fields": {"name": "Laura Hudson", "comment": "Curabitur convallis.", "date_added": "2016-09-05T11:40:28.301Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 86, "fields": {"name": "Gloria Riley", "comment": "Vestibulum sed magna at nunc commodo placerat.", "date_added": "2016-09-05T11:40:28.304Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 87, "fields": {"name": "Mary Duncan", "comment": "Maecenas ut massa quis augue luctus tincidunt.", "date_added": "2016-09-05T11:40:28.306Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 88, "fields": {"name": "Doris Kelley", "comment": "Suspendisse ornare consequat lectus.", "date_added": "2016-09-05T11:40:28.308Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 89, "fields": {"name": "Dorothy Black", "comment": "Donec ut dolor.", "date_added": "2016-09-05T11:40:28.311Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 90, "fields": {"name": "Cynthia Elliott", "comment": "Donec ut dolor.", "date_added": "2016-09-05T11:40:28.313Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 91, "fields": {"name": "Anne Willis", "comment": "Mauris lacinia sapien quis libero.", "date_added": "2016-09-05T11:40:28.315Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 92, "fields": {"name": "Kimberly Lane", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", "date_added": "2016-09-05T11:40:28.318Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 93, "fields": {"name": "Doris Burns", "comment": "Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.", "date_added": "2016-09-05T11:40:28.320Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 94, "fields": {"name": "Janice White", "comment": "In hac habitasse platea dictumst.", "date_added": "2016-09-05T11:40:28.323Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 95, "fields": {"name": "Irene Mills", "comment": "Aenean auctor gravida sem.", "date_added": "2016-09-05T11:40:28.325Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 96, "fields": {"name": "Jesse Carter", "comment": "Aenean fermentum.", "date_added": "2016-09-05T11:40:28.328Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 97, "fields": {"name": "Karen Watson", "comment": "Suspendisse potenti.", "date_added": "2016-09-05T11:40:28.330Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 98, "fields": {"name": "Dorothy Wilson", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam.", "date_added": "2016-09-05T11:40:28.332Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 99, "fields": {"name": "Richard Andrews", "comment": "In quis justo.", "date_added": "2016-09-05T11:40:28.334Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 100, "fields": {"name": "Catherine Bowman", "comment": "Nulla tellus.", "date_added": "2016-09-05T11:40:28.336Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 101, "fields": {"name": "Tammy Washington", "comment": "Donec dapibus.", "date_added": "2016-09-05T11:40:28.338Z", "created_by": "admin"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$5ReHkQOQA2Hk$DIW0b5U/uK+U0xqjA3QpYvBcODNhm2MPCm7YWbQys3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:39:25.771Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-19T11:39:25.771Z", "created_by": "System", "user_permissions": [], "groups": [1]}}, {"model": "users.user", "pk": 2, "fields": {"password": "pbkdf2_sha256$30000$NwQ0QSmpoKgk$pnQcfgWSmAOKs9g+xeS+d5Pt2CK8NykUxhQc+507Few=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:28.488Z", "username": "debra78", "name": "Amanda Kim", "email": "pamela@lajo.name", "role": "User", "avatar": "", "wechat": "kelly64", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Donec ut dolor.", "is_first_login": false, "date_expired": "2086-08-19T11:40:28.488Z", "created_by": "admin", "user_permissions": [], "groups": [1]}}, {"model": "users.user", "pk": 3, "fields": {"password": "pbkdf2_sha256$30000$NpN3clf5YczT$sT3OTGL1x3sh+Vz5cYTV+nhOQI7A2WhEzf6whqVR2fg=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:28.659Z", "username": "marie78", "name": "Doris Clark", "email": "lillian@blogxs.mil", "role": "User", "avatar": "", "wechat": "phyllis91", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Fusce consequat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:28.659Z", "created_by": "admin", "user_permissions": [], "groups": [1, 64]}}, {"model": "users.user", "pk": 4, "fields": {"password": "pbkdf2_sha256$30000$Hnpln9zJFQuL$xkDIqpl+LNAtze2OPSfm4tMHivnChcK9BSQmTULr17U=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:28.820Z", "username": "joan82", "name": "Emily Dixon", "email": "rose@skimia.mil", "role": "Admin", "avatar": "", "wechat": "cynthia84", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:28.821Z", "created_by": "admin", "user_permissions": [], "groups": [1, 12]}}, {"model": "users.user", "pk": 5, "fields": {"password": "pbkdf2_sha256$30000$oAkPuzyhsQjH$IEBHKtJuSZVpWnC0n0vMd6NOv6GBlHwdiXkzoS4AcKA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:28.992Z", "username": "helen93", "name": "Phyllis Wells", "email": "susan@yakitri.info", "role": "User", "avatar": "", "wechat": "jessica85", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "is_first_login": false, "date_expired": "2086-08-19T11:40:28.992Z", "created_by": "admin", "user_permissions": [], "groups": [1, 49]}}, {"model": "users.user", "pk": 6, "fields": {"password": "pbkdf2_sha256$30000$LL5tIUJYalEm$+O1Xne9HwJRMawHoI+1hN08wCi7IVyWlfiptJPSZ868=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.153Z", "username": "jessica67", "name": "Jessica Gonzalez", "email": "anne@browsetype.mil", "role": "User", "avatar": "", "wechat": "dorothy70", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Duis bibendum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.153Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 37]}}, {"model": "users.user", "pk": 7, "fields": {"password": "pbkdf2_sha256$30000$kbxycqmL62b6$LrFh/b7tHXu/UYv9SIAyZodSajagoSvQHJmbNa4iZPY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.320Z", "username": "amanda83", "name": "Cynthia Simpson", "email": "barbara@photobug.com", "role": "User", "avatar": "", "wechat": "gloria85", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer ac neque.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.320Z", "created_by": "jessica67", "user_permissions": [], "groups": [1, 55]}}, {"model": "users.user", "pk": 8, "fields": {"password": "pbkdf2_sha256$30000$lvVKIRcbiVH5$Z/tS8vMWxyoTPR3fiDSsADYx30MrDmZsJXCtLM+Uk8c=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.486Z", "username": "gloria89", "name": "Lisa Stone", "email": "jennifer@trilia.info", "role": "Admin", "avatar": "", "wechat": "ruby66", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Duis mattis egestas metus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.486Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 8]}}, {"model": "users.user", "pk": 9, "fields": {"password": "pbkdf2_sha256$30000$lobNy7Fdr3S4$HZXc3BUntiiSExn3zeof+GhdBU/ufOm/pJUriD8hHpg=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.658Z", "username": "virginia82", "name": "Jacqueline Lawrence", "email": "frances@roombo.gov", "role": "User", "avatar": "", "wechat": "irene77", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.658Z", "created_by": "admin", "user_permissions": [], "groups": [1, 38]}}, {"model": "users.user", "pk": 10, "fields": {"password": "pbkdf2_sha256$30000$LfEpQOng9Oey$xId/M7mkTyrKy1sU2cCIYDt8vDvO8OKMS4Kvt11GCrw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.822Z", "username": "shirley92", "name": "Rose Bradley", "email": "jane@eayo.org", "role": "User", "avatar": "", "wechat": "alice77", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vivamus vestibulum sagittis sapien.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.822Z", "created_by": "admin", "user_permissions": [], "groups": [1, 78]}}, {"model": "users.user", "pk": 11, "fields": {"password": "pbkdf2_sha256$30000$9ClFk3rzOAe2$eoiEZ0feR1lmDTrPi9cT0GCoO56E4A6CYlWTbAzY5W0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:29.990Z", "username": "donna77", "name": "Kimberly Hughes", "email": "martha@jabbersphere.info", "role": "Admin", "avatar": "", "wechat": "louise92", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nullam molestie nibh in lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:29.990Z", "created_by": "virginia82", "user_permissions": [], "groups": [1, 27]}}, {"model": "users.user", "pk": 12, "fields": {"password": "pbkdf2_sha256$30000$MAJMgjslCzUU$W8lA9y17L1v+TdjhoXzJZf57oaoknN+pCp/8hTABX3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.159Z", "username": "bonnie87", "name": "Shirley Tucker", "email": "ashley@jabbercube.edu", "role": "User", "avatar": "", "wechat": "denise82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.159Z", "created_by": "donna77", "user_permissions": [], "groups": [1, 4]}}, {"model": "users.user", "pk": 13, "fields": {"password": "pbkdf2_sha256$30000$zCT6heqR3LaF$/SNC4wvkRotfHtnz0LtcoXF2lgScx5+7APFfnrulqeA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.327Z", "username": "mildred89", "name": "Amy Cole", "email": "cheryl@yambee.org", "role": "User", "avatar": "", "wechat": "anna67", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Praesent blandit lacinia erat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.327Z", "created_by": "shirley92", "user_permissions": [], "groups": [1, 74]}}, {"model": "users.user", "pk": 14, "fields": {"password": "pbkdf2_sha256$30000$zSK7uZolhV5W$m4FUrWJbJR/aaE4lifgyeg9Zz39t5pDzxwhjhkfpFpk=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.494Z", "username": "betty69", "name": "Norma Little", "email": "mildred@nlounge.gov", "role": "Admin", "avatar": "", "wechat": "jennifer80", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer ac neque.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.495Z", "created_by": "shirley92", "user_permissions": [], "groups": [1, 61]}}, {"model": "users.user", "pk": 15, "fields": {"password": "pbkdf2_sha256$30000$ohJp2IQmzty1$NHWh76GPmQb9l2oqpfEjlQ+RACLbOLTQi3nLeMyMw94=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.658Z", "username": "kathleen81", "name": "Jennifer Garza", "email": "donna@thoughtbeat.org", "role": "Admin", "avatar": "", "wechat": "jessica70", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Mauris ullamcorper purus sit amet nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.658Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 22]}}, {"model": "users.user", "pk": 16, "fields": {"password": "pbkdf2_sha256$30000$8GJwjpiigEqV$hv+hRQrA4MQz8XlXvKZDsO746KQbIRjoYtgUyNvxPK0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.829Z", "username": "heather83", "name": "Jacqueline Gomez", "email": "mary@dabz.org", "role": "User", "avatar": "", "wechat": "katherine81", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.829Z", "created_by": "gloria89", "user_permissions": [], "groups": [1, 101]}}, {"model": "users.user", "pk": 17, "fields": {"password": "pbkdf2_sha256$30000$h3T2BC3HVR6w$lqyZTTVkpyzeklHO0cv29ftO1egfHAREs42KmXgO29c=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:30.999Z", "username": "cheryl86", "name": "Doris Wright", "email": "kathleen@youbridge.org", "role": "Admin", "avatar": "", "wechat": "julia89", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer ac leo.", "is_first_login": false, "date_expired": "2086-08-19T11:40:30.999Z", "created_by": "mildred89", "user_permissions": [], "groups": [1, 100]}}, {"model": "users.user", "pk": 18, "fields": {"password": "pbkdf2_sha256$30000$HPctDgqFA1O5$aHIZAhfT4hqwthO6PkYC6wHr8xpCwgfbZli1i4vBGqo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:31.171Z", "username": "helen85", "name": "Nancy Franklin", "email": "elizabeth@kare.edu", "role": "User", "avatar": "", "wechat": "ruth86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Mauris ullamcorper purus sit amet nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:31.171Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 19]}}, {"model": "users.user", "pk": 19, "fields": {"password": "pbkdf2_sha256$30000$2BxbETGNZPjs$LQ4vZC//oJhw+kkQA5+QaWwQRiImMR32ZRQ/JiSmhno=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:31.342Z", "username": "evelyn66", "name": "Maria Wagner", "email": "kathy@vinte.mil", "role": "Admin", "avatar": "", "wechat": "diane67", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est.", "is_first_login": false, "date_expired": "2086-08-19T11:40:31.342Z", "created_by": "betty69", "user_permissions": [], "groups": [1, 55]}}, {"model": "users.user", "pk": 20, "fields": {"password": "pbkdf2_sha256$30000$Zhr5ztI55OmZ$c1vxvnRPonGOLEYwAkwPK10gcNDRwnJItAGfYvxo/l8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:31.514Z", "username": "sharon90", "name": "Shirley Watson", "email": "cheryl@skimia.edu", "role": "User", "avatar": "", "wechat": "robin78", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:31.514Z", "created_by": "debra78", "user_permissions": [], "groups": [1, 57]}}, {"model": "users.user", "pk": 21, "fields": {"password": "pbkdf2_sha256$30000$V8jjOOVxDN6U$nbnHTiGlw3MNK3dQZ23jpwZidyvIm9UHvJMMF5LEcBk=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:31.678Z", "username": "anne65", "name": "Linda Thompson", "email": "margaret@nlounge.net", "role": "Admin", "avatar": "", "wechat": "judith94", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Suspendisse potenti.", "is_first_login": false, "date_expired": "2086-08-19T11:40:31.678Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 31]}}, {"model": "users.user", "pk": 22, "fields": {"password": "pbkdf2_sha256$30000$ASWsoeOm8bC8$JWAry3Vf4p9eqF30hWgjJYVyj+EyftYqHgLnrFcSl3w=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:31.842Z", "username": "janice81", "name": "Tina Tucker", "email": "amy@aivee.info", "role": "User", "avatar": "", "wechat": "sara86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:31.842Z", "created_by": "donna77", "user_permissions": [], "groups": [1, 24]}}, {"model": "users.user", "pk": 23, "fields": {"password": "pbkdf2_sha256$30000$F5Igy3AG8I77$ebSGjrlcri5QHYiPSMgWjvuMqiEJZaY9nnHBQnjbioE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.013Z", "username": "shirley90", "name": "Donna Cole", "email": "norma@eire.com", "role": "Admin", "avatar": "", "wechat": "stephanie94", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi non lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.013Z", "created_by": "kathleen81", "user_permissions": [], "groups": [1, 50]}}, {"model": "users.user", "pk": 24, "fields": {"password": "pbkdf2_sha256$30000$TB2ioEQVTRYC$OLMEUgukLXGQkM+Ku0xYjDIuwBW0mSXc497FMYboHMc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.182Z", "username": "rachel86", "name": "Diana Fuller", "email": "heather@zoombox.com", "role": "User", "avatar": "", "wechat": "annie70", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Curabitur in libero ut massa volutpat convallis.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.182Z", "created_by": "cheryl86", "user_permissions": [], "groups": [1, 29]}}, {"model": "users.user", "pk": 25, "fields": {"password": "pbkdf2_sha256$30000$8zRHrl5odLjt$H1LyqlzStMtrrdsqCTsEDqyzvRfVTO+s3FCkMZQUg58=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.354Z", "username": "gloria81", "name": "Judith Burton", "email": "pamela@browsecat.info", "role": "Admin", "avatar": "", "wechat": "kathryn84", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Praesent blandit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.354Z", "created_by": "admin", "user_permissions": [], "groups": [1, 98]}}, {"model": "users.user", "pk": 26, "fields": {"password": "pbkdf2_sha256$30000$oJ8CguLyG514$857oOSy4ZP/nmoHfr0+7YAkr+4nOxpVfs+YHHXO4HGA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.516Z", "username": "sarah93", "name": "Marie Robertson", "email": "cynthia@vitz.net", "role": "User", "avatar": "", "wechat": "anna82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aenean lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.516Z", "created_by": "jessica67", "user_permissions": [], "groups": [1, 15]}}, {"model": "users.user", "pk": 27, "fields": {"password": "pbkdf2_sha256$30000$KMKhgXsrpbTb$3SOKyqnAZsHsulLAR8YxRSH4oL81HecsjHuZqBwbfkA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.684Z", "username": "gloria69", "name": "Ashley Fernandez", "email": "lois@zooxo.name", "role": "User", "avatar": "", "wechat": "nicole91", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.684Z", "created_by": "amanda83", "user_permissions": [], "groups": [1, 55]}}, {"model": "users.user", "pk": 28, "fields": {"password": "pbkdf2_sha256$30000$HqsstWAnc4Dc$DbH4P0e8TewCmj12VM2PaMlxbEO9sXdMiAU/RaNcEso=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:32.851Z", "username": "patricia86", "name": "Catherine Hanson", "email": "jean@tavu.gov", "role": "User", "avatar": "", "wechat": "tina86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Curabitur in libero ut massa volutpat convallis.", "is_first_login": false, "date_expired": "2086-08-19T11:40:32.851Z", "created_by": "sharon90", "user_permissions": [], "groups": [1, 76]}}, {"model": "users.user", "pk": 29, "fields": {"password": "pbkdf2_sha256$30000$afmfE90Qeh5l$kz0UjtWT/+8WaSFiwHUsVPMvhnxAmaZK0KvUfRGuhQY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.021Z", "username": "elizabeth88", "name": "Julia Green", "email": "norma@zooxo.name", "role": "User", "avatar": "", "wechat": "teresa72", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aenean lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.021Z", "created_by": "gloria81", "user_permissions": [], "groups": [1, 52]}}, {"model": "users.user", "pk": 30, "fields": {"password": "pbkdf2_sha256$30000$oGne3NGRmP4F$eZoziI46KHtHHhEIbHhvx4tT7OqpAhKP7EgcJZRotM0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.189Z", "username": "anna73", "name": "Sharon Arnold", "email": "kelly@jabbertype.edu", "role": "User", "avatar": "", "wechat": "linda84", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer non velit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.189Z", "created_by": "shirley92", "user_permissions": [], "groups": [1, 65]}}, {"model": "users.user", "pk": 31, "fields": {"password": "pbkdf2_sha256$30000$Beusxog5VzMe$XLk35XQG0nKVMhJAwm4xPReq8nGbLGTsTuHuoBk8/oc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.360Z", "username": "amanda72", "name": "Nicole Miller", "email": "ruby@innotype.net", "role": "Admin", "avatar": "", "wechat": "amy83", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Pellentesque ultrices mattis odio.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.360Z", "created_by": "betty69", "user_permissions": [], "groups": [1, 79]}}, {"model": "users.user", "pk": 32, "fields": {"password": "pbkdf2_sha256$30000$xX2wCo6lmAoe$xT9sv5lhNEz5QHTGXRro1rlZq3wV1SOXR8N2AVxfIK0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.525Z", "username": "karen88", "name": "Ann Perry", "email": "christine@kazu.biz", "role": "User", "avatar": "", "wechat": "kathryn93", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.525Z", "created_by": "shirley90", "user_permissions": [], "groups": [1, 45]}}, {"model": "users.user", "pk": 33, "fields": {"password": "pbkdf2_sha256$30000$G26Dluux88FA$yYZDtuT2kziHa7npBjc6wa0FaqlCq4xd/HNwf3M0IBA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.688Z", "username": "ruby85", "name": "Andrea Simmons", "email": "janice@topiclounge.gov", "role": "User", "avatar": "", "wechat": "carol63", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.688Z", "created_by": "virginia82", "user_permissions": [], "groups": [1, 8]}}, {"model": "users.user", "pk": 34, "fields": {"password": "pbkdf2_sha256$30000$YogIPElxW4BF$GMx/eCOf+Wo45K8f4zpgAdPHnK0hw4zxrhPFGjD1kgw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:33.849Z", "username": "jean78", "name": "Wanda Porter", "email": "debra@skipfire.edu", "role": "User", "avatar": "", "wechat": "nancy68", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue.", "is_first_login": false, "date_expired": "2086-08-19T11:40:33.850Z", "created_by": "rachel86", "user_permissions": [], "groups": [1, 34]}}, {"model": "users.user", "pk": 35, "fields": {"password": "pbkdf2_sha256$30000$VAHkvodCT4EZ$Hc0AgQpRTZ+Fyej7aYw3XFYLBqRuYNYdZrBqbNsxBWI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.025Z", "username": "dorothy68", "name": "Sandra Burke", "email": "jacqueline@voonder.name", "role": "User", "avatar": "", "wechat": "anne75", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas tincidunt lacus at velit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.025Z", "created_by": "sharon90", "user_permissions": [], "groups": [1, 24]}}, {"model": "users.user", "pk": 36, "fields": {"password": "pbkdf2_sha256$30000$LCgO3uQ9b8jB$2gk2i4h9YSPE6Z5ncYqQjXWuqd957Oa5wyQWUySt/6Q=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.189Z", "username": "julia94", "name": "Julia Moore", "email": "kathleen@avamm.mil", "role": "User", "avatar": "", "wechat": "lois92", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.189Z", "created_by": "janice81", "user_permissions": [], "groups": [1, 23]}}, {"model": "users.user", "pk": 37, "fields": {"password": "pbkdf2_sha256$30000$d8I5jWJV3nrO$vXljikjtUP2iACdKvhv2VvdHgv1zL816CY3vzBzzf+U=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.356Z", "username": "jacqueline87", "name": "Shirley Boyd", "email": "martha@roodel.net", "role": "User", "avatar": "", "wechat": "melissa77", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nunc nisl.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.356Z", "created_by": "mildred89", "user_permissions": [], "groups": [1, 32]}}, {"model": "users.user", "pk": 38, "fields": {"password": "pbkdf2_sha256$30000$GN14FUfF7nIl$QORwOV3JB8TGpGVfjTHkWyfVO/97taHbsUUEyfkO18M=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.525Z", "username": "margaret83", "name": "Marilyn Berry", "email": "sarah@wikibox.edu", "role": "User", "avatar": "", "wechat": "marilyn89", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Ut tellus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.525Z", "created_by": "marie78", "user_permissions": [], "groups": [1, 49]}}, {"model": "users.user", "pk": 39, "fields": {"password": "pbkdf2_sha256$30000$JKLEc3Udbclx$TeQ8656qKhw97YsPDwhPmF3FusBzc42tfHxgpFumpg8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.693Z", "username": "katherine78", "name": "Patricia Andrews", "email": "lillian@snaptags.name", "role": "User", "avatar": "", "wechat": "lois82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.693Z", "created_by": "helen93", "user_permissions": [], "groups": [1, 70]}}, {"model": "users.user", "pk": 40, "fields": {"password": "pbkdf2_sha256$30000$LfSuq1HOppCM$PATgoI+3OWTtnBl4Qqfcrg2tIIJSJWwg2gDHqRReNHA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:34.868Z", "username": "sandra72", "name": "Karen Dunn", "email": "kathleen@realbridge.biz", "role": "User", "avatar": "", "wechat": "angela69", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer ac neque.", "is_first_login": false, "date_expired": "2086-08-19T11:40:34.868Z", "created_by": "evelyn66", "user_permissions": [], "groups": [1, 84]}}, {"model": "users.user", "pk": 41, "fields": {"password": "pbkdf2_sha256$30000$fyqfIT2o8oBh$oxWTIdDmGE6JeFiC3ht1Vfan/wixhkKQYpJuDWFXwpI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.038Z", "username": "janet94", "name": "Tina Jacobs", "email": "kathryn@twitterbeat.com", "role": "Admin", "avatar": "", "wechat": "sarah85", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas ut massa quis augue luctus tincidunt.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.038Z", "created_by": "bonnie87", "user_permissions": [], "groups": [1, 3]}}, {"model": "users.user", "pk": 42, "fields": {"password": "pbkdf2_sha256$30000$lnrCgcch2hIS$zspAwtJ/kFNfHy6bgIBcFmPo02W6ymbwTNySKmcieRM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.206Z", "username": "heather70", "name": "Janice Fuller", "email": "lois@centizu.name", "role": "Admin", "avatar": "", "wechat": "diana87", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer a nibh.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.206Z", "created_by": "katherine78", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 43, "fields": {"password": "pbkdf2_sha256$30000$FG75rHLpN2yC$zavIk5IetRMZpxGKdzNiSUMFH+sRTMhDC3YZZLUbfH8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.377Z", "username": "helen78", "name": "Cheryl Kennedy", "email": "jacqueline@skimia.gov", "role": "User", "avatar": "", "wechat": "bonnie70", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer non velit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.378Z", "created_by": "sarah93", "user_permissions": [], "groups": [1, 25]}}, {"model": "users.user", "pk": 44, "fields": {"password": "pbkdf2_sha256$30000$PYboz45iSFHS$szEdRkHHJnywvQxuyw+glDkVCTXb5oBb62M7pOYvr8w=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.544Z", "username": "frances66", "name": "Judith Thomas", "email": "robin@youopia.name", "role": "Admin", "avatar": "", "wechat": "virginia66", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Proin interdum mauris non ligula pellentesque ultrices.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.544Z", "created_by": "jessica67", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 45, "fields": {"password": "pbkdf2_sha256$30000$Hzb9aIsW4Z4g$aQPFxDUmDLi8/Y9DZDOo1M+9TmI+egl8YbWajDPApNo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.712Z", "username": "joan84", "name": "Emily Hayes", "email": "ashley@flipstorm.info", "role": "Admin", "avatar": "", "wechat": "cynthia82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cras non velit nec nisi vulputate nonummy.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.712Z", "created_by": "joan82", "user_permissions": [], "groups": [1, 2]}}, {"model": "users.user", "pk": 46, "fields": {"password": "pbkdf2_sha256$30000$cX83YarClOxI$mHmsPUtGvXYCXx03XRz1gGzKRGIMDCLzlmW+jvmeHyM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:35.890Z", "username": "ruby74", "name": "Gloria Ryan", "email": "wanda@zoomzone.com", "role": "User", "avatar": "", "wechat": "tammy78", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Suspendisse potenti.", "is_first_login": false, "date_expired": "2086-08-19T11:40:35.890Z", "created_by": "heather83", "user_permissions": [], "groups": [1, 89]}}, {"model": "users.user", "pk": 47, "fields": {"password": "pbkdf2_sha256$30000$QayxdbM57SkB$+O4cZ6pe3qOIOgnkmkojvz/9SNXbdQq4IN/OlWM4uqE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:36.209Z", "username": "rose65", "name": "Jennifer Hill", "email": "cynthia@meeveo.mil", "role": "User", "avatar": "", "wechat": "phyllis72", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cras in purus eu magna vulputate luctus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:36.209Z", "created_by": "kathleen81", "user_permissions": [], "groups": [1, 93]}}, {"model": "users.user", "pk": 48, "fields": {"password": "pbkdf2_sha256$30000$rOGXoybJrlRu$6/sbbzUXSC4gg3MnQBBQjmxSwns0kuFFXnjUFgECVCs=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:36.380Z", "username": "theresa66", "name": "Nicole Mcdonald", "email": "jennifer@thoughtblab.org", "role": "Admin", "avatar": "", "wechat": "beverly93", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "is_first_login": false, "date_expired": "2086-08-19T11:40:36.380Z", "created_by": "sandra72", "user_permissions": [], "groups": [1, 54]}}, {"model": "users.user", "pk": 49, "fields": {"password": "pbkdf2_sha256$30000$ryM1OtDaFRBR$yAaYMLSu5GmHtBuj2SqNxrwX6T0ZJ0f9Ioa+QKB6Xjc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:36.547Z", "username": "jane64", "name": "Sara Romero", "email": "laura@bluejam.info", "role": "User", "avatar": "", "wechat": "ashley81", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum quam sapien, varius ut, blandit non, interdum in, ante.", "is_first_login": false, "date_expired": "2086-08-19T11:40:36.547Z", "created_by": "katherine78", "user_permissions": [], "groups": [1, 95]}}, {"model": "users.user", "pk": 50, "fields": {"password": "pbkdf2_sha256$30000$qrctcs8SfAbX$MneVIdxKpm5gU0kH6Kd4AdVJW9H3Lwy57Fj9zbcDMng=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:36.715Z", "username": "joyce92", "name": "Robin Schmidt", "email": "jessica@vipe.org", "role": "Admin", "avatar": "", "wechat": "lillian69", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "is_first_login": false, "date_expired": "2086-08-19T11:40:36.715Z", "created_by": "helen78", "user_permissions": [], "groups": [1, 12]}}, {"model": "users.user", "pk": 51, "fields": {"password": "pbkdf2_sha256$30000$YBDMUxTjaJOm$eotObjSyQ8tuxwPvGzrdwe4JtewIkGP3VJjA1n12XgI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:36.885Z", "username": "jessica83", "name": "Carol Rice", "email": "judy@oyoyo.gov", "role": "Admin", "avatar": "", "wechat": "theresa87", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:36.886Z", "created_by": "sharon90", "user_permissions": [], "groups": [1, 5]}}, {"model": "users.user", "pk": 52, "fields": {"password": "pbkdf2_sha256$30000$rDduC7xoNL6D$Qw7IXRwcGHghVgs9JazbSWVv16226Ind2uI7Mc4LffU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.049Z", "username": "norma92", "name": "Margaret Shaw", "email": "marie@gevee.net", "role": "User", "avatar": "", "wechat": "jean86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cras in purus eu magna vulputate luctus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.049Z", "created_by": "gloria81", "user_permissions": [], "groups": [1, 42]}}, {"model": "users.user", "pk": 53, "fields": {"password": "pbkdf2_sha256$30000$XuD0bTQbGiGR$49MGy0aIUlq6PIn5n8MFJFzQXlt+9sAAlPFiGUcz0jo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.223Z", "username": "nancy93", "name": "Amy Parker", "email": "deborah@feedmix.gov", "role": "Admin", "avatar": "", "wechat": "barbara73", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Proin eu mi.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.223Z", "created_by": "amanda83", "user_permissions": [], "groups": [1, 23]}}, {"model": "users.user", "pk": 54, "fields": {"password": "pbkdf2_sha256$30000$GQ29YONroMEs$zidcIhcl0MVZzqMCDOuK0ZiGmT64iVxAXvdyZidkVW8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.388Z", "username": "kathryn89", "name": "Anne Hanson", "email": "janice@skajo.com", "role": "User", "avatar": "", "wechat": "irene88", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Fusce consequat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.388Z", "created_by": "jane64", "user_permissions": [], "groups": [1, 31]}}, {"model": "users.user", "pk": 55, "fields": {"password": "pbkdf2_sha256$30000$vBohn8DgNVNW$wSrYvF4TK9+1F0FpWfU/1tonWLEzFD66xkeLUzMjXW8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.555Z", "username": "christine65", "name": "Linda Grant", "email": "mildred@oyoloo.info", "role": "User", "avatar": "", "wechat": "gloria89", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.555Z", "created_by": "jean78", "user_permissions": [], "groups": [1, 31]}}, {"model": "users.user", "pk": 56, "fields": {"password": "pbkdf2_sha256$30000$ZXZzwHmuJLhu$94jqW8ge2OV8zsCO25ejDuX2ensIrAsqZ3gMspSEWZo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.724Z", "username": "christine74", "name": "Tammy Henry", "email": "susan@fatz.gov", "role": "User", "avatar": "", "wechat": "paula73", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nulla justo.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.724Z", "created_by": "helen85", "user_permissions": [], "groups": [1, 27]}}, {"model": "users.user", "pk": 57, "fields": {"password": "pbkdf2_sha256$30000$SCBEFw4IqJSw$gKwJ+Z61A8xx8FoKKlxKi3bvymJ901XX190CttuT5SQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:37.903Z", "username": "janet78", "name": "Jennifer Stone", "email": "brenda@realblab.com", "role": "Admin", "avatar": "", "wechat": "paula74", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi non quam nec dui luctus rutrum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:37.903Z", "created_by": "helen78", "user_permissions": [], "groups": [1, 57]}}, {"model": "users.user", "pk": 58, "fields": {"password": "pbkdf2_sha256$30000$brXrjdiilFJy$ZQyHHfiLmBPXAOIt7HFykZVDjK1/xy2rHSD4WzyN5lk=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.078Z", "username": "bonnie82", "name": "Tammy Barnes", "email": "judy@jazzy.edu", "role": "Admin", "avatar": "", "wechat": "norma94", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer non velit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.079Z", "created_by": "theresa66", "user_permissions": [], "groups": [1, 12]}}, {"model": "users.user", "pk": 59, "fields": {"password": "pbkdf2_sha256$30000$ytPyWlqlgSQa$MDTPej9yHVpTXnmX+i7pjQohUjrzA1CkkjHM/mszRas=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.258Z", "username": "susan70", "name": "Jane Sims", "email": "jean@kwideo.org", "role": "Admin", "avatar": "", "wechat": "jean76", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.258Z", "created_by": "shirley92", "user_permissions": [], "groups": [1, 34]}}, {"model": "users.user", "pk": 60, "fields": {"password": "pbkdf2_sha256$30000$hCwgalGFVti0$QM2cah7OjPv9LmWcTUW8n0WWXrzbtDLmqXIT8I72lBw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.445Z", "username": "diana82", "name": "Kathleen Morrison", "email": "sharon@fanoodle.info", "role": "Admin", "avatar": "", "wechat": "kimberly94", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Phasellus sit amet erat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.445Z", "created_by": "kathleen81", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 61, "fields": {"password": "pbkdf2_sha256$30000$9veo3zwoQS6Y$o9GdPOMm8vfCz2LZ2dLFZQRPL/weVQbh1DQgTkfT01E=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.616Z", "username": "pamela85", "name": "Tammy Sanders", "email": "andrea@tagtune.mil", "role": "User", "avatar": "", "wechat": "debra86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Phasellus sit amet erat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.616Z", "created_by": "kathryn89", "user_permissions": [], "groups": [1, 17]}}, {"model": "users.user", "pk": 62, "fields": {"password": "pbkdf2_sha256$30000$KZA3rl6hy6K8$c37Ypnuwfa+J83zGSqv/4VlEP1SjPUOO16dYWh5A37U=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.800Z", "username": "shirley67", "name": "Diane Hernandez", "email": "kimberly@oyoloo.net", "role": "User", "avatar": "", "wechat": "theresa91", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas pulvinar lobortis est.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.800Z", "created_by": "elizabeth88", "user_permissions": [], "groups": [1, 23]}}, {"model": "users.user", "pk": 63, "fields": {"password": "pbkdf2_sha256$30000$bly0Ec71D4G5$EsaMleYNI2rqq2SDWVqpZuuqN24YFVVg3ym12YJ8aFQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:38.972Z", "username": "evelyn87", "name": "Barbara Myers", "email": "rachel@thoughtblab.mil", "role": "Admin", "avatar": "", "wechat": "virginia82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Vestibulum sed magna at nunc commodo placerat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:38.972Z", "created_by": "admin", "user_permissions": [], "groups": [1, 3]}}, {"model": "users.user", "pk": 64, "fields": {"password": "pbkdf2_sha256$30000$DlJpDuZwAGJn$x0IdHZBBa9Sv2B/7UA/S0UR1LKC9kVEjNEDP6cldOOw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:39.145Z", "username": "lisa76", "name": "Joyce Gray", "email": "nancy@jatri.com", "role": "User", "avatar": "", "wechat": "linda76", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Suspendisse potenti.", "is_first_login": false, "date_expired": "2086-08-19T11:40:39.145Z", "created_by": "patricia86", "user_permissions": [], "groups": [1, 86]}}, {"model": "users.user", "pk": 65, "fields": {"password": "pbkdf2_sha256$30000$zTXa8Wbqkcl7$e9Sj8tRw81AIYUYTCN96g4dCrlw1ne65yAj57Lpt3fc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:39.316Z", "username": "wanda87", "name": "Angela Phillips", "email": "dorothy@vinte.name", "role": "User", "avatar": "", "wechat": "jean93", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:39.316Z", "created_by": "gloria89", "user_permissions": [], "groups": [1, 18]}}, {"model": "users.user", "pk": 66, "fields": {"password": "pbkdf2_sha256$30000$snF1u8sKBGoT$iIICTiwlK7hlou+IuphT9ozgoVdg7xvQ0BhQ5hipzAM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:39.494Z", "username": "martha80", "name": "Paula Webb", "email": "joyce@jetwire.gov", "role": "Admin", "avatar": "", "wechat": "irene88", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Donec ut mauris eget massa tempor convallis.", "is_first_login": false, "date_expired": "2086-08-19T11:40:39.494Z", "created_by": "debra78", "user_permissions": [], "groups": [1, 71]}}, {"model": "users.user", "pk": 67, "fields": {"password": "pbkdf2_sha256$30000$3f2IIMh1BHsZ$sqW6OC1P8A8ZHC3hSgZjM/1onfVyeqWZrODHgB6pjo8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:39.670Z", "username": "alice90", "name": "Joyce Cole", "email": "joyce@jetwire.name", "role": "Admin", "avatar": "", "wechat": "kathryn90", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nunc rhoncus dui vel sem.", "is_first_login": false, "date_expired": "2086-08-19T11:40:39.670Z", "created_by": "jean78", "user_permissions": [], "groups": [1, 83]}}, {"model": "users.user", "pk": 68, "fields": {"password": "pbkdf2_sha256$30000$rjdFLNWTZVDP$cbLx9NhUCDjfJ5DtXBATvRBDdwWp6AwIY0cDuoS0ack=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:39.844Z", "username": "julie89", "name": "Ashley Castillo", "email": "betty@tagchat.edu", "role": "User", "avatar": "", "wechat": "teresa82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aenean auctor gravida sem.", "is_first_login": false, "date_expired": "2086-08-19T11:40:39.844Z", "created_by": "evelyn66", "user_permissions": [], "groups": [1, 3]}}, {"model": "users.user", "pk": 69, "fields": {"password": "pbkdf2_sha256$30000$aMmTSQp5D7o8$uEO2r3tTJjjiPme0wyjPAIx9+J+D4iYXpSZiud56YZM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.019Z", "username": "sara63", "name": "Julie Robertson", "email": "jane@twinte.biz", "role": "Admin", "avatar": "", "wechat": "laura75", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Ut at dolor quis odio consequat varius.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.019Z", "created_by": "evelyn87", "user_permissions": [], "groups": [1, 28]}}, {"model": "users.user", "pk": 70, "fields": {"password": "pbkdf2_sha256$30000$tkX3zB55h35n$2GVTvEtIJEgKX2eLypbvVWG/EawxGv+pM8oGQqsTG1M=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.203Z", "username": "annie84", "name": "Melissa Hill", "email": "laura@bluezoom.biz", "role": "Admin", "avatar": "", "wechat": "stephanie81", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi non lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.203Z", "created_by": "norma92", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 71, "fields": {"password": "pbkdf2_sha256$30000$F3p7A7Z34RdN$S4zMTb8S0riGXpkTMxQNVF0t3SVT8p9q3YaGpRfvHrE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.410Z", "username": "denise66", "name": "Carol Murphy", "email": "cheryl@brainbox.net", "role": "Admin", "avatar": "", "wechat": "stephanie91", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aenean lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.410Z", "created_by": "betty69", "user_permissions": [], "groups": [1, 100]}}, {"model": "users.user", "pk": 72, "fields": {"password": "pbkdf2_sha256$30000$w8jVwPiLAO95$uMibVY3vK5+bb3kGIcaF3bzS/vLBXuYHUHisL+s7Gk8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.588Z", "username": "maria79", "name": "Lisa Lawson", "email": "nancy@edgeblab.com", "role": "User", "avatar": "", "wechat": "sara84", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.588Z", "created_by": "evelyn66", "user_permissions": [], "groups": [1, 96]}}, {"model": "users.user", "pk": 73, "fields": {"password": "pbkdf2_sha256$30000$Chfy1Xs9TYn6$D4PqnvAonoe7i2Apailkj1jNgPwJQXzu4Rdw7vojN4E=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.765Z", "username": "jacqueline66", "name": "Christine Johnston", "email": "annie@yombu.com", "role": "User", "avatar": "", "wechat": "shirley94", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque ut erat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.765Z", "created_by": "martha80", "user_permissions": [], "groups": [1, 96]}}, {"model": "users.user", "pk": 74, "fields": {"password": "pbkdf2_sha256$30000$R476WcBOQFnz$wG6PQxtKoFiCq/QvFuChZsMqmOChRyMtysWqfzobGUc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:40.946Z", "username": "diane94", "name": "Jacqueline Banks", "email": "ruth@riffwire.name", "role": "Admin", "avatar": "", "wechat": "tammy69", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "is_first_login": false, "date_expired": "2086-08-19T11:40:40.946Z", "created_by": "amanda83", "user_permissions": [], "groups": [1, 54]}}, {"model": "users.user", "pk": 75, "fields": {"password": "pbkdf2_sha256$30000$0WNEpfUcEBnr$PbdTdlDrFshCA8QQyAZIPvBVLQF457Svx2u1YAJjV3A=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.116Z", "username": "judy68", "name": "Anna Russell", "email": "sharon@bubbletube.mil", "role": "User", "avatar": "", "wechat": "dorothy80", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.116Z", "created_by": "bonnie87", "user_permissions": [], "groups": [1, 37]}}, {"model": "users.user", "pk": 76, "fields": {"password": "pbkdf2_sha256$30000$k6LVybVvEzP3$TDiWfHRnQqnDXHHHRudiQAie41KzGsBKslEnL7OyHUQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.283Z", "username": "sara85", "name": "Joan Stewart", "email": "bonnie@gabcube.mil", "role": "User", "avatar": "", "wechat": "gloria77", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.283Z", "created_by": "norma92", "user_permissions": [], "groups": [1, 71]}}, {"model": "users.user", "pk": 77, "fields": {"password": "pbkdf2_sha256$30000$nq3q8AD2Egqa$8hvaQvJNjnXAvl5v1cCWKYE6SBYQuQ4Zv0XgMgUBYjQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.462Z", "username": "louise86", "name": "Emily King", "email": "bonnie@zazio.com", "role": "Admin", "avatar": "", "wechat": "mildred72", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Duis at velit eu est congue elementum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.462Z", "created_by": "karen88", "user_permissions": [], "groups": [1, 100]}}, {"model": "users.user", "pk": 78, "fields": {"password": "pbkdf2_sha256$30000$YYLnF0D85MaT$mPp4SLNiN27DJ/MQSrJO0qQDdeBcTsFIDrRJJAd2mUY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.636Z", "username": "melissa86", "name": "Marie Cunningham", "email": "robin@fiveclub.biz", "role": "Admin", "avatar": "", "wechat": "louise65", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aliquam erat volutpat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.636Z", "created_by": "donna77", "user_permissions": [], "groups": [1, 99]}}, {"model": "users.user", "pk": 79, "fields": {"password": "pbkdf2_sha256$30000$C9ZMnLwd5jWR$B994aIg+HKsCFYgevJgMhaFb/OPFVvEC1uCkCZlU63E=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.799Z", "username": "judith78", "name": "Laura Austin", "email": "rose@shufflebeat.net", "role": "User", "avatar": "", "wechat": "paula77", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nam dui.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.800Z", "created_by": "virginia82", "user_permissions": [], "groups": [1, 51]}}, {"model": "users.user", "pk": 80, "fields": {"password": "pbkdf2_sha256$30000$3jASiMrsqPTS$qERB/ZJBFSQ3VOATZR64Wo62zCPHmQBUX6ik6k8pxEA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:41.977Z", "username": "kathryn68", "name": "Mildred Gonzalez", "email": "wanda@linkbuzz.org", "role": "User", "avatar": "", "wechat": "anna89", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "is_first_login": false, "date_expired": "2086-08-19T11:40:41.977Z", "created_by": "alice90", "user_permissions": [], "groups": [1, 36]}}, {"model": "users.user", "pk": 81, "fields": {"password": "pbkdf2_sha256$30000$uc313SO0fl0c$rxFzlZnQy5K1pexI7CnpGvvdD5Y6dk/gGCdql4OIQTg=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:42.157Z", "username": "maria70", "name": "Wanda Campbell", "email": "teresa@shuffledrive.gov", "role": "User", "avatar": "", "wechat": "lisa74", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nunc purus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:42.157Z", "created_by": "julie89", "user_permissions": [], "groups": [1, 91]}}, {"model": "users.user", "pk": 82, "fields": {"password": "pbkdf2_sha256$30000$LhslZy3f0Rp4$EYrnsUtGors84bndfamlj30+DbyKKFn3qk+3S1jch7I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:42.480Z", "username": "judy84", "name": "Tina Harper", "email": "linda@skyble.biz", "role": "Admin", "avatar": "", "wechat": "cheryl71", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": false, "date_expired": "2086-08-19T11:40:42.480Z", "created_by": "amanda72", "user_permissions": [], "groups": [1, 45]}}, {"model": "users.user", "pk": 83, "fields": {"password": "pbkdf2_sha256$30000$NCu7bqBfUSlM$CmK4q/j22I7Y2RlaL4qJC8xTWXTP87fK8p5Z8iM0vHQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:42.649Z", "username": "marie69", "name": "Alice Washington", "email": "katherine@yombu.edu", "role": "Admin", "avatar": "", "wechat": "julie82", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:42.649Z", "created_by": "louise86", "user_permissions": [], "groups": [1, 34]}}, {"model": "users.user", "pk": 84, "fields": {"password": "pbkdf2_sha256$30000$bsTlGybCG4kn$u6FggNMQcbbIMI5FMAaXek8jPBcuAhsndO2LtHvPWfY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:42.820Z", "username": "jacqueline94", "name": "Kathy Anderson", "email": "doris@podcat.mil", "role": "Admin", "avatar": "", "wechat": "janice86", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Pellentesque at nulla.", "is_first_login": false, "date_expired": "2086-08-19T11:40:42.820Z", "created_by": "mildred89", "user_permissions": [], "groups": [1, 70]}}, {"model": "users.user", "pk": 85, "fields": {"password": "pbkdf2_sha256$30000$0OBTuxURroAg$HbRxSmld8Z2KikNSyx2qDQeXD3qkHs99drogR4lMzSk=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.001Z", "username": "ruth78", "name": "Susan Andrews", "email": "tammy@bubbletube.net", "role": "User", "avatar": "", "wechat": "theresa91", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nulla justo.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.001Z", "created_by": "annie84", "user_permissions": [], "groups": [1, 75]}}, {"model": "users.user", "pk": 86, "fields": {"password": "pbkdf2_sha256$30000$uzuXDjRY9cGB$7orw9rme6gdmtIXd23kY5riyg9kBeqGrZv1OLwUN2Zg=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.179Z", "username": "betty82", "name": "Nancy Ford", "email": "robin@chatterpoint.info", "role": "User", "avatar": "", "wechat": "angela75", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.179Z", "created_by": "susan70", "user_permissions": [], "groups": [1, 62]}}, {"model": "users.user", "pk": 87, "fields": {"password": "pbkdf2_sha256$30000$ihbKKzqLVsA4$qpHDQiNB0SRhGMQNOC3pyjfoHs0oLE4X90agkbwIoTg=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.356Z", "username": "cynthia80", "name": "Cheryl Brown", "email": "julia@centizu.info", "role": "User", "avatar": "", "wechat": "margaret72", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cras non velit nec nisi vulputate nonummy.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.356Z", "created_by": "heather70", "user_permissions": [], "groups": [1, 57]}}, {"model": "users.user", "pk": 88, "fields": {"password": "pbkdf2_sha256$30000$WTGLP7qH0AXv$ijXRG/BLJYM08HrZbXis0N1+3GZUQnYTmmOxMBqnZ08=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.526Z", "username": "lois88", "name": "Judith Wagner", "email": "laura@edgeclub.net", "role": "User", "avatar": "", "wechat": "stephanie75", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.526Z", "created_by": "margaret83", "user_permissions": [], "groups": [1, 84]}}, {"model": "users.user", "pk": 89, "fields": {"password": "pbkdf2_sha256$30000$2Jb6tBXjnnKG$KocwomlWiXZxNupZEitcXj68n85x72PBe2xv6wEic0E=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.698Z", "username": "melissa87", "name": "Sara Elliott", "email": "sharon@aibox.net", "role": "User", "avatar": "", "wechat": "teresa80", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Praesent id massa id nisl venenatis lacinia.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.698Z", "created_by": "rose65", "user_permissions": [], "groups": [1, 78]}}, {"model": "users.user", "pk": 90, "fields": {"password": "pbkdf2_sha256$30000$z81LhOVt6DtF$OuG7y3Z4IFLXRvMb0SFVJGerWUWmvea8Z9VwYiMXy6Y=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:43.870Z", "username": "virginia71", "name": "Beverly Grant", "email": "kimberly@youbridge.info", "role": "Admin", "avatar": "", "wechat": "katherine78", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:43.870Z", "created_by": "marie69", "user_permissions": [], "groups": [1, 18]}}, {"model": "users.user", "pk": 91, "fields": {"password": "pbkdf2_sha256$30000$hQEf332JcoN3$07Qubl2SHJY/mH4HYTQ6O3q4OvosQZ+tka+yXkYWSkM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:44.200Z", "username": "jennifer80", "name": "Donna Lawson", "email": "sharon@voonder.org", "role": "User", "avatar": "", "wechat": "joyce71", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Morbi a ipsum.", "is_first_login": false, "date_expired": "2086-08-19T11:40:44.200Z", "created_by": "jessica67", "user_permissions": [], "groups": [1, 9]}}, {"model": "users.user", "pk": 92, "fields": {"password": "pbkdf2_sha256$30000$787BXJlHQQyR$QVfF5bZEGTgJqGqJkJHIcGVRN9yFGejALpmKq9TCTAc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:44.372Z", "username": "louise73", "name": "Irene Hanson", "email": "lois@realcube.info", "role": "User", "avatar": "", "wechat": "theresa76", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.", "is_first_login": false, "date_expired": "2086-08-19T11:40:44.372Z", "created_by": "helen78", "user_permissions": [], "groups": [1, 69]}}, {"model": "users.user", "pk": 93, "fields": {"password": "pbkdf2_sha256$30000$TSpRU1MwSS9o$ji11Chzq8QYQ/5zELL+e7rsda3NovvmH64OPlovKV28=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:44.545Z", "username": "denise78", "name": "Amy Stevens", "email": "karen@topdrive.gov", "role": "Admin", "avatar": "", "wechat": "tammy63", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Duis aliquam convallis nunc.", "is_first_login": false, "date_expired": "2086-08-19T11:40:44.545Z", "created_by": "sara85", "user_permissions": [], "groups": [1, 39]}}, {"model": "users.user", "pk": 94, "fields": {"password": "pbkdf2_sha256$30000$KxdVhFziqW4Y$tV46izrsfKROm+eK1PQ3Spe2mA2DI7lpBRffBnXEkFs=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:44.716Z", "username": "beverly65", "name": "Pamela Murphy", "email": "kathleen@skyble.name", "role": "Admin", "avatar": "", "wechat": "cynthia79", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Ut at dolor quis odio consequat varius.", "is_first_login": false, "date_expired": "2086-08-19T11:40:44.716Z", "created_by": "judith78", "user_permissions": [], "groups": [1, 55]}}, {"model": "users.user", "pk": 95, "fields": {"password": "pbkdf2_sha256$30000$UT06FZhNcdT0$MHZ2vI4ILv4LNLxatI+uD4Ga3fmPykCbTVBwfCa2Vbc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:44.886Z", "username": "pamela91", "name": "Kathleen Hall", "email": "ashley@quimm.com", "role": "Admin", "avatar": "", "wechat": "pamela65", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Quisque ut erat.", "is_first_login": false, "date_expired": "2086-08-19T11:40:44.887Z", "created_by": "amanda72", "user_permissions": [], "groups": [1, 12]}}, {"model": "users.user", "pk": 96, "fields": {"password": "pbkdf2_sha256$30000$R8LIMYuDIRDC$CD4ZZ45zNLJqB4IkhoRRxaCc5AzeV/TAPXd6WJ918ww=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:45.053Z", "username": "annie80", "name": "Donna Gonzales", "email": "ashley@blogpad.org", "role": "Admin", "avatar": "", "wechat": "jessica93", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "is_first_login": false, "date_expired": "2086-08-19T11:40:45.053Z", "created_by": "diana82", "user_permissions": [], "groups": [1, 2]}}, {"model": "users.user", "pk": 97, "fields": {"password": "pbkdf2_sha256$30000$EB1azYvjRy4a$+r3s13wiSHjDyfhUPy+FW3aHwWleOjynlayGt9udaBQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:45.220Z", "username": "rebecca64", "name": "Kathy Long", "email": "rachel@divanoodle.net", "role": "Admin", "avatar": "", "wechat": "lori73", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Praesent lectus.", "is_first_login": false, "date_expired": "2086-08-19T11:40:45.220Z", "created_by": "shirley67", "user_permissions": [], "groups": [1, 94]}}, {"model": "users.user", "pk": 98, "fields": {"password": "pbkdf2_sha256$30000$Gs8j1WNM4gd6$XX82CgsJb2LJEQpcrS52gZNv9KZA0GRERgdVhPiNzPs=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:40:45.400Z", "username": "robin76", "name": "Jane Pierce", "email": "diana@realcube.biz", "role": "User", "avatar": "", "wechat": "beverly87", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Integer non velit.", "is_first_login": false, "date_expired": "2086-08-19T11:40:45.400Z", "created_by": "christine65", "user_permissions": [], "groups": [1, 35]}}]
\ No newline at end of file
+[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_created": "2016-09-08T03:03:36.498Z", "created_by": "System"}}, {"model": "users.usergroup", "pk": 2, "fields": {"name": "Brenda Johnston", "comment": "Ut at dolor quis odio consequat varius.", "date_created": "2016-09-08T03:03:50.661Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 3, "fields": {"name": "George Fisher", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.", "date_created": "2016-09-08T03:03:50.665Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 4, "fields": {"name": "Jacqueline Holmes", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam.", "date_created": "2016-09-08T03:03:50.668Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 5, "fields": {"name": "Matthew Ford", "comment": "Vivamus in felis eu sapien cursus vestibulum.", "date_created": "2016-09-08T03:03:50.672Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 6, "fields": {"name": "Lois Howell", "comment": "Duis bibendum.", "date_created": "2016-09-08T03:03:50.674Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 7, "fields": {"name": "Carol Gordon", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_created": "2016-09-08T03:03:50.677Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 8, "fields": {"name": "Jennifer Coleman", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_created": "2016-09-08T03:03:50.679Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 9, "fields": {"name": "Tina Riley", "comment": "Suspendisse potenti.", "date_created": "2016-09-08T03:03:50.682Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 10, "fields": {"name": "Deborah Pierce", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "date_created": "2016-09-08T03:03:50.684Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 11, "fields": {"name": "Maria Ross", "comment": "Morbi non quam nec dui luctus rutrum.", "date_created": "2016-09-08T03:03:50.686Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 12, "fields": {"name": "Judy Hudson", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "date_created": "2016-09-08T03:03:50.688Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 13, "fields": {"name": "Juan Ortiz", "comment": "Proin eu mi.", "date_created": "2016-09-08T03:03:50.691Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 14, "fields": {"name": "Joyce Williams", "comment": "Integer ac neque.", "date_created": "2016-09-08T03:03:50.693Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 15, "fields": {"name": "Rachel Powell", "comment": "Fusce consequat.", "date_created": "2016-09-08T03:03:50.695Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 16, "fields": {"name": "Ashley Price", "comment": "In hac habitasse platea dictumst.", "date_created": "2016-09-08T03:03:50.697Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 17, "fields": {"name": "Joan Williamson", "comment": "Donec ut mauris eget massa tempor convallis.", "date_created": "2016-09-08T03:03:50.699Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 18, "fields": {"name": "Nicole Woods", "comment": "Nulla tempus.", "date_created": "2016-09-08T03:03:50.702Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 19, "fields": {"name": "Dorothy Scott", "comment": "Pellentesque eget nunc.", "date_created": "2016-09-08T03:03:50.704Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 20, "fields": {"name": "Cheryl Scott", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "date_created": "2016-09-08T03:03:50.706Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 21, "fields": {"name": "Susan Stevens", "comment": "Duis aliquam convallis nunc.", "date_created": "2016-09-08T03:03:50.708Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 22, "fields": {"name": "Jonathan Elliott", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "date_created": "2016-09-08T03:03:50.712Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 23, "fields": {"name": "Doris Hicks", "comment": "Phasellus id sapien in sapien iaculis congue.", "date_created": "2016-09-08T03:03:50.714Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 24, "fields": {"name": "Amy Martinez", "comment": "Nulla ac enim.", "date_created": "2016-09-08T03:03:50.716Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 25, "fields": {"name": "Katherine Coleman", "comment": "Nullam varius.", "date_created": "2016-09-08T03:03:50.719Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 26, "fields": {"name": "Martha Lane", "comment": "In hac habitasse platea dictumst.", "date_created": "2016-09-08T03:03:50.721Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 27, "fields": {"name": "Laura Perez", "comment": "Mauris ullamcorper purus sit amet nulla.", "date_created": "2016-09-08T03:03:50.723Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 28, "fields": {"name": "Frances Carroll", "comment": "Donec posuere metus vitae ipsum.", "date_created": "2016-09-08T03:03:50.726Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 29, "fields": {"name": "Joyce Anderson", "comment": "Nullam varius.", "date_created": "2016-09-08T03:03:50.728Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 30, "fields": {"name": "Wanda Garrett", "comment": "Integer ac neque.", "date_created": "2016-09-08T03:03:50.730Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 31, "fields": {"name": "Marie Wheeler", "comment": "In blandit ultrices enim.", "date_created": "2016-09-08T03:03:50.734Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 32, "fields": {"name": "Ralph Fisher", "comment": "Integer a nibh.", "date_created": "2016-09-08T03:03:50.736Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 33, "fields": {"name": "Ruby Wright", "comment": "Praesent id massa id nisl venenatis lacinia.", "date_created": "2016-09-08T03:03:50.739Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 34, "fields": {"name": "Kathryn Thompson", "comment": "Ut tellus.", "date_created": "2016-09-08T03:03:50.741Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 35, "fields": {"name": "Rose Palmer", "comment": "Nullam molestie nibh in lectus.", "date_created": "2016-09-08T03:03:50.743Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 36, "fields": {"name": "Norma Armstrong", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla.", "date_created": "2016-09-08T03:03:50.745Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 37, "fields": {"name": "Amy Wallace", "comment": "Duis ac nibh.", "date_created": "2016-09-08T03:03:50.748Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 38, "fields": {"name": "Kathy Nichols", "comment": "Donec dapibus.", "date_created": "2016-09-08T03:03:50.750Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 39, "fields": {"name": "Pamela Adams", "comment": "Nulla nisl.", "date_created": "2016-09-08T03:03:50.752Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 40, "fields": {"name": "Doris Lee", "comment": "Proin eu mi.", "date_created": "2016-09-08T03:03:50.755Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 41, "fields": {"name": "Alice Myers", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "date_created": "2016-09-08T03:03:50.758Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 42, "fields": {"name": "Patricia Thompson", "comment": "Duis at velit eu est congue elementum.", "date_created": "2016-09-08T03:03:50.761Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 43, "fields": {"name": "Barbara Berry", "comment": "Maecenas rhoncus aliquam lacus.", "date_created": "2016-09-08T03:03:50.763Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 44, "fields": {"name": "Diane Larson", "comment": "Duis mattis egestas metus.", "date_created": "2016-09-08T03:03:50.765Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 45, "fields": {"name": "Teresa Black", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.", "date_created": "2016-09-08T03:03:50.768Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 46, "fields": {"name": "Christine Garrett", "comment": "Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante.", "date_created": "2016-09-08T03:03:50.771Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 47, "fields": {"name": "Jane Burns", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "date_created": "2016-09-08T03:03:50.773Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 48, "fields": {"name": "Kelly Mendoza", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_created": "2016-09-08T03:03:50.775Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 49, "fields": {"name": "Kathleen Phillips", "comment": "Nulla ac enim.", "date_created": "2016-09-08T03:03:50.777Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 50, "fields": {"name": "Brenda Bennett", "comment": "Donec ut mauris eget massa tempor convallis.", "date_created": "2016-09-08T03:03:50.780Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 51, "fields": {"name": "Frances Campbell", "comment": "Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl.", "date_created": "2016-09-08T03:03:50.782Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 52, "fields": {"name": "Cynthia Bradley", "comment": "Curabitur gravida nisi at nibh.", "date_created": "2016-09-08T03:03:50.784Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 53, "fields": {"name": "Alice Green", "comment": "Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl.", "date_created": "2016-09-08T03:03:50.786Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 54, "fields": {"name": "Maria Smith", "comment": "Nulla nisl.", "date_created": "2016-09-08T03:03:50.788Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 55, "fields": {"name": "Emily Dunn", "comment": "Ut at dolor quis odio consequat varius.", "date_created": "2016-09-08T03:03:50.791Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 56, "fields": {"name": "Jean Cruz", "comment": "Donec ut dolor.", "date_created": "2016-09-08T03:03:50.794Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 57, "fields": {"name": "Mary Burke", "comment": "Sed sagittis.", "date_created": "2016-09-08T03:03:50.796Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 58, "fields": {"name": "Susan Hernandez", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est.", "date_created": "2016-09-08T03:03:50.798Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 59, "fields": {"name": "Debra Morris", "comment": "Suspendisse potenti.", "date_created": "2016-09-08T03:03:50.800Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 60, "fields": {"name": "Wanda Garza", "comment": "In hac habitasse platea dictumst.", "date_created": "2016-09-08T03:03:50.803Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 61, "fields": {"name": "Bonnie Jones", "comment": "Vestibulum sed magna at nunc commodo placerat.", "date_created": "2016-09-08T03:03:50.805Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 62, "fields": {"name": "Judy Davis", "comment": "Pellentesque ultrices mattis odio.", "date_created": "2016-09-08T03:03:50.808Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 63, "fields": {"name": "Karen Harris", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_created": "2016-09-08T03:03:50.811Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 64, "fields": {"name": "Mildred Kelley", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-08T03:03:50.814Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 65, "fields": {"name": "Judith Mitchell", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "date_created": "2016-09-08T03:03:50.816Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 66, "fields": {"name": "Lillian Banks", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "date_created": "2016-09-08T03:03:50.818Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 67, "fields": {"name": "Lillian Gomez", "comment": "Donec dapibus.", "date_created": "2016-09-08T03:03:50.820Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 68, "fields": {"name": "Janice Rodriguez", "comment": "Nullam porttitor lacus at turpis.", "date_created": "2016-09-08T03:03:50.822Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 69, "fields": {"name": "Amanda Dixon", "comment": "Aenean auctor gravida sem.", "date_created": "2016-09-08T03:03:50.825Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 70, "fields": {"name": "Judy Wells", "comment": "Nulla tempus.", "date_created": "2016-09-08T03:03:50.828Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 71, "fields": {"name": "Donna Hughes", "comment": "Sed vel enim sit amet nunc viverra dapibus.", "date_created": "2016-09-08T03:03:50.831Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 72, "fields": {"name": "Tammy Campbell", "comment": "Maecenas ut massa quis augue luctus tincidunt.", "date_created": "2016-09-08T03:03:50.833Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 73, "fields": {"name": "Lawrence Barnes", "comment": "Quisque ut erat.", "date_created": "2016-09-08T03:03:50.835Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 74, "fields": {"name": "Michelle Ramos", "comment": "Duis at velit eu est congue elementum.", "date_created": "2016-09-08T03:03:50.837Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 75, "fields": {"name": "Betty Wells", "comment": "Cras in purus eu magna vulputate luctus.", "date_created": "2016-09-08T03:03:50.839Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 76, "fields": {"name": "Jacqueline Adams", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-08T03:03:50.841Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 77, "fields": {"name": "Lori Evans", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "date_created": "2016-09-08T03:03:50.843Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 78, "fields": {"name": "Christina Nguyen", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "date_created": "2016-09-08T03:03:50.846Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 79, "fields": {"name": "Jane Long", "comment": "In hac habitasse platea dictumst.", "date_created": "2016-09-08T03:03:50.848Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 80, "fields": {"name": "Elizabeth Garrett", "comment": "Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.", "date_created": "2016-09-08T03:03:50.851Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 81, "fields": {"name": "Frances Flores", "comment": "In eleifend quam a odio.", "date_created": "2016-09-08T03:03:50.853Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 82, "fields": {"name": "Bonnie Bowman", "comment": "Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci.", "date_created": "2016-09-08T03:03:50.855Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 83, "fields": {"name": "Robin Thomas", "comment": "Nulla nisl.", "date_created": "2016-09-08T03:03:50.857Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 84, "fields": {"name": "Phyllis Martinez", "comment": "Aenean sit amet justo.", "date_created": "2016-09-08T03:03:50.860Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 85, "fields": {"name": "Tammy West", "comment": "Morbi porttitor lorem id ligula.", "date_created": "2016-09-08T03:03:50.863Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 86, "fields": {"name": "Kathryn Harrison", "comment": "Integer ac leo.", "date_created": "2016-09-08T03:03:50.865Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 87, "fields": {"name": "Denise Stanley", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.", "date_created": "2016-09-08T03:03:50.867Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 88, "fields": {"name": "Lois Foster", "comment": "Donec quis orci eget orci vehicula condimentum.", "date_created": "2016-09-08T03:03:50.869Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 89, "fields": {"name": "Ann Vasquez", "comment": "Mauris sit amet eros.", "date_created": "2016-09-08T03:03:50.872Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 90, "fields": {"name": "Annie Clark", "comment": "Duis at velit eu est congue elementum.", "date_created": "2016-09-08T03:03:50.874Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 91, "fields": {"name": "Stephanie Richards", "comment": "Donec ut dolor.", "date_created": "2016-09-08T03:03:50.877Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 92, "fields": {"name": "Louise Robinson", "comment": "Aliquam erat volutpat.", "date_created": "2016-09-08T03:03:50.879Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 93, "fields": {"name": "Melissa Kim", "comment": "Aenean fermentum.", "date_created": "2016-09-08T03:03:50.881Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 94, "fields": {"name": "Barbara Cooper", "comment": "Suspendisse potenti.", "date_created": "2016-09-08T03:03:50.883Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 95, "fields": {"name": "Louise Hall", "comment": "Etiam justo.", "date_created": "2016-09-08T03:03:50.886Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 96, "fields": {"name": "Brenda Roberts", "comment": "Suspendisse potenti.", "date_created": "2016-09-08T03:03:50.888Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 97, "fields": {"name": "Bonnie Lawrence", "comment": "In blandit ultrices enim.", "date_created": "2016-09-08T03:03:50.890Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 98, "fields": {"name": "Irene Perry", "comment": "Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo.", "date_created": "2016-09-08T03:03:50.893Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 99, "fields": {"name": "Helen Alvarez", "comment": "Donec quis orci eget orci vehicula condimentum.", "date_created": "2016-09-08T03:03:50.895Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 100, "fields": {"name": "Annie Bowman", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "date_created": "2016-09-08T03:03:50.898Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 101, "fields": {"name": "Mary Allen", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "date_created": "2016-09-08T03:03:50.900Z", "created_by": "admin"}}, {"model": "assets.idc", "pk": 1, "fields": {"name": "Sarah Garcia", "bandwidth": "200M", "contact": "Lillian Woods", "phone": "9-(989)805-2918", "address": "Los Gatos38602 Artisan Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.578Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Sed vel enim sit amet nunc viverra dapibus."}}, {"model": "assets.idc", "pk": 2, "fields": {"name": "Sara Jacobs", "bandwidth": "200M", "contact": "Karen Richardson", "phone": "1-(911)092-5399", "address": "Red Bluff16 Golf View Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.580Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 3, "fields": {"name": "Katherine Johnston", "bandwidth": "200M", "contact": "Barbara Morrison", "phone": "1-(277)477-6778", "address": "Corte Madera17 Kinsman Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.581Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla suscipit ligula in lacus."}}, {"model": "assets.idc", "pk": 4, "fields": {"name": "Susan Henderson", "bandwidth": "200M", "contact": "Beverly Kim", "phone": "6-(700)332-5745", "address": "Vacaville1 Mccormick Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.583Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Duis bibendum."}}, {"model": "assets.idc", "pk": 5, "fields": {"name": "Virginia Murphy", "bandwidth": "200M", "contact": "Debra Frazier", "phone": "0-(685)123-0909", "address": "Indian Wells20 High Crossing Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.584Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vivamus vel nulla eget eros elementum pellentesque."}}, {"model": "assets.idc", "pk": 6, "fields": {"name": "Amanda Spencer", "bandwidth": "200M", "contact": "Susan Hamilton", "phone": "8-(788)858-9745", "address": "Turlock629 Lien Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.585Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In congue."}}, {"model": "assets.idc", "pk": 7, "fields": {"name": "Doris Fuller", "bandwidth": "200M", "contact": "Ruby Dixon", "phone": "7-(611)985-8789", "address": "Corning6712 Sunbrook Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.587Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nunc purus."}}, {"model": "assets.idc", "pk": 8, "fields": {"name": "Rebecca West", "bandwidth": "200M", "contact": "Denise Burton", "phone": "8-(681)023-6320", "address": "Yucca Valley0 Linden Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.588Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nunc purus."}}, {"model": "assets.idc", "pk": 9, "fields": {"name": "Judith Martin", "bandwidth": "200M", "contact": "Paula Riley", "phone": "3-(953)498-9393", "address": "Mammoth Lakes394 Mosinee Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.589Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Sed ante."}}, {"model": "assets.idc", "pk": 10, "fields": {"name": "Mildred Graham", "bandwidth": "200M", "contact": "Gloria Kelley", "phone": "4-(826)981-1294", "address": "El Segundo0475 Westport Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.591Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla."}}, {"model": "assets.idc", "pk": 11, "fields": {"name": "Betty Payne", "bandwidth": "200M", "contact": "Martha Smith", "phone": "4-(077)936-4994", "address": "Tehachapi38097 Texas Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.593Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi ut odio."}}, {"model": "assets.idc", "pk": 12, "fields": {"name": "Christina Olson", "bandwidth": "200M", "contact": "Evelyn Sanchez", "phone": "2-(403)747-5722", "address": "Dana Point083 Hallows Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.595Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque porta volutpat erat."}}, {"model": "assets.idc", "pk": 13, "fields": {"name": "Rachel Evans", "bandwidth": "200M", "contact": "Mildred Ferguson", "phone": "9-(718)282-1930", "address": "Lodi45 Park Meadow Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.596Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla nisl."}}, {"model": "assets.idc", "pk": 14, "fields": {"name": "Kathleen Stanley", "bandwidth": "200M", "contact": "Heather Dean", "phone": "2-(467)650-8119", "address": "Carson29 Sauthoff Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.597Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Mauris sit amet eros."}}, {"model": "assets.idc", "pk": 15, "fields": {"name": "Mildred Olson", "bandwidth": "200M", "contact": "Amy Woods", "phone": "0-(721)578-5551", "address": "Maricopa75 Twin Pines Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.599Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo."}}, {"model": "assets.idc", "pk": 16, "fields": {"name": "Martha Fox", "bandwidth": "200M", "contact": "Nancy Hunt", "phone": "6-(751)553-7447", "address": "San Pablo18509 Starling Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.600Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi a ipsum."}}, {"model": "assets.idc", "pk": 17, "fields": {"name": "Mary Morgan", "bandwidth": "200M", "contact": "Julia Garza", "phone": "3-(761)154-0695", "address": "Riverside6 Corscot Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.601Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In eleifend quam a odio."}}, {"model": "assets.idc", "pk": 18, "fields": {"name": "Laura Gilbert", "bandwidth": "200M", "contact": "Joyce Reid", "phone": "1-(489)059-4526", "address": "Huron3 Westerfield Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.603Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 19, "fields": {"name": "Sharon Gutierrez", "bandwidth": "200M", "contact": "Robin Graham", "phone": "9-(488)714-5225", "address": "Palm Desert15 Petterle Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.604Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam."}}, {"model": "assets.idc", "pk": 20, "fields": {"name": "Joyce Sullivan", "bandwidth": "200M", "contact": "Alice Adams", "phone": "3-(803)533-8553", "address": "Winters84 Caliangt Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.605Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nunc nisl."}}, {"model": "assets.idc", "pk": 21, "fields": {"name": "Phyllis Vasquez", "bandwidth": "200M", "contact": "Judy Gray", "phone": "3-(968)523-4654", "address": "Los Angeles8704 Calypso Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.607Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Mauris sit amet eros."}}, {"model": "assets.idc", "pk": 22, "fields": {"name": "Alice Cunningham", "bandwidth": "200M", "contact": "Denise Simmons", "phone": "3-(552)123-5275", "address": "Temecula53706 Dapin Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.608Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Phasellus id sapien in sapien iaculis congue."}}, {"model": "assets.idc", "pk": 23, "fields": {"name": "Louise Gardner", "bandwidth": "200M", "contact": "Theresa Dixon", "phone": "8-(285)789-4870", "address": "Napa12843 Forster Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.609Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros."}}, {"model": "assets.idc", "pk": 24, "fields": {"name": "Donna Lawrence", "bandwidth": "200M", "contact": "Sandra Bryant", "phone": "2-(935)136-2730", "address": "La Ca\u00f1ada Flintridge87243 Crescent Oaks Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.611Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Etiam vel augue."}}, {"model": "assets.idc", "pk": 25, "fields": {"name": "Jacqueline Carter", "bandwidth": "200M", "contact": "Laura Simpson", "phone": "3-(679)977-4491", "address": "Anaheim46308 Merrick Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.612Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi ut odio."}}, {"model": "assets.idc", "pk": 26, "fields": {"name": "Louise Snyder", "bandwidth": "200M", "contact": "Lori Hayes", "phone": "4-(342)858-0193", "address": "Rocklin57 Vernon Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.614Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nunc purus."}}, {"model": "assets.idc", "pk": 27, "fields": {"name": "Doris Reynolds", "bandwidth": "200M", "contact": "Norma Wagner", "phone": "8-(952)261-6195", "address": "Indian Wells53 Ramsey Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.616Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla tellus."}}, {"model": "assets.idc", "pk": 28, "fields": {"name": "Kelly Reid", "bandwidth": "200M", "contact": "Sara Mcdonald", "phone": "5-(543)248-9479", "address": "Pinole64 Dorton Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.617Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Suspendisse potenti."}}, {"model": "assets.idc", "pk": 29, "fields": {"name": "Ruth Gray", "bandwidth": "200M", "contact": "Heather Vasquez", "phone": "3-(725)241-1940", "address": "Paramount963 Shasta Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.618Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem."}}, {"model": "assets.idc", "pk": 30, "fields": {"name": "Elizabeth Jones", "bandwidth": "200M", "contact": "Marilyn Castillo", "phone": "9-(571)254-8016", "address": "Hidden Hills24059 Clyde Gallagher Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.620Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Donec ut dolor."}}, {"model": "assets.idc", "pk": 31, "fields": {"name": "Bonnie Watson", "bandwidth": "200M", "contact": "Marilyn Brooks", "phone": "1-(006)215-0363", "address": "Montebello58 Northland Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.621Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Maecenas pulvinar lobortis est."}}, {"model": "assets.idc", "pk": 32, "fields": {"name": "Lois Stewart", "bandwidth": "200M", "contact": "Ashley Flores", "phone": "4-(991)326-9366", "address": "Brawley27158 Fair Oaks Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.623Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi a ipsum."}}, {"model": "assets.idc", "pk": 33, "fields": {"name": "Wanda Peterson", "bandwidth": "200M", "contact": "Susan Lawson", "phone": "5-(056)760-9786", "address": "Baldwin Park107 Briar Crest Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.624Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Proin risus."}}, {"model": "assets.idc", "pk": 34, "fields": {"name": "Sarah Sullivan", "bandwidth": "200M", "contact": "Christina Greene", "phone": "7-(850)229-0377", "address": "Cypress54 Hoepker Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.626Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque ut erat."}}, {"model": "assets.idc", "pk": 35, "fields": {"name": "Jane Rodriguez", "bandwidth": "200M", "contact": "Robin Knight", "phone": "5-(352)755-6372", "address": "Antioch542 Tennyson Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.636Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."}}, {"model": "assets.idc", "pk": 36, "fields": {"name": "Lois Brown", "bandwidth": "200M", "contact": "Robin Riley", "phone": "1-(857)758-4309", "address": "Redding4239 Beilfuss Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.638Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi non quam nec dui luctus rutrum."}}, {"model": "assets.idc", "pk": 37, "fields": {"name": "Ann Kelly", "bandwidth": "200M", "contact": "Evelyn Morales", "phone": "3-(877)185-2885", "address": "Culver City5980 Mallory Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.640Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Phasellus id sapien in sapien iaculis congue."}}, {"model": "assets.idc", "pk": 38, "fields": {"name": "Ruth Wilson", "bandwidth": "200M", "contact": "Ruby Medina", "phone": "0-(567)412-9481", "address": "Sonoma8579 Arkansas Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.641Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Suspendisse ornare consequat lectus."}}, {"model": "assets.idc", "pk": 39, "fields": {"name": "Diane Hayes", "bandwidth": "200M", "contact": "Robin White", "phone": "8-(517)345-4223", "address": "Rancho Cucamonga5023 Sycamore Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.642Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla."}}, {"model": "assets.idc", "pk": 40, "fields": {"name": "Donna Martin", "bandwidth": "200M", "contact": "Sandra Lynch", "phone": "2-(378)254-7616", "address": "St. Helena68 Grim Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.644Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Donec posuere metus vitae ipsum."}}, {"model": "assets.idc", "pk": 41, "fields": {"name": "Ashley Jenkins", "bandwidth": "200M", "contact": "Teresa Black", "phone": "5-(485)633-6931", "address": "Pleasanton546 Ryan Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.645Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Aenean lectus."}}, {"model": "assets.idc", "pk": 42, "fields": {"name": "Marilyn Butler", "bandwidth": "200M", "contact": "Julie Hicks", "phone": "3-(960)818-5834", "address": "Sausalito72680 Maryland Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.646Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam."}}, {"model": "assets.idc", "pk": 43, "fields": {"name": "Angela Carpenter", "bandwidth": "200M", "contact": "Lisa Holmes", "phone": "7-(830)614-5780", "address": "Camarillo32 Anzinger Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.648Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi quis tortor id nulla ultrices aliquet."}}, {"model": "assets.idc", "pk": 44, "fields": {"name": "Janice Medina", "bandwidth": "200M", "contact": "Mary Anderson", "phone": "8-(137)407-5518", "address": "Lincoln51 Darwin Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.649Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Curabitur convallis."}}, {"model": "assets.idc", "pk": 45, "fields": {"name": "Pamela Evans", "bandwidth": "200M", "contact": "Sharon Carter", "phone": "0-(899)129-7470", "address": "Maywood3067 Troy Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.650Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis."}}, {"model": "assets.idc", "pk": 46, "fields": {"name": "Joan Cruz", "bandwidth": "200M", "contact": "Laura Mcdonald", "phone": "6-(790)029-1689", "address": "Burbank42678 Harper Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.652Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 47, "fields": {"name": "Barbara Matthews", "bandwidth": "200M", "contact": "Janice White", "phone": "9-(607)152-4392", "address": "Sonora46105 Sullivan Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.653Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Vestibulum sed magna at nunc commodo placerat."}}, {"model": "assets.idc", "pk": 48, "fields": {"name": "Patricia Johnston", "bandwidth": "200M", "contact": "Christina Williamson", "phone": "5-(078)214-3571", "address": "Palos Verdes Estates09871 Upham Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.654Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Suspendisse accumsan tortor quis turpis."}}, {"model": "assets.idc", "pk": 49, "fields": {"name": "Michelle Fox", "bandwidth": "200M", "contact": "Diana Brown", "phone": "9-(428)218-1317", "address": "Corning0 Northland Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.656Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Etiam pretium iaculis justo."}}, {"model": "assets.idc", "pk": 50, "fields": {"name": "Katherine Greene", "bandwidth": "200M", "contact": "Barbara Allen", "phone": "7-(478)112-1822", "address": "Fremont415 Johnson Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.657Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla ut erat id mauris vulputate elementum."}}, {"model": "assets.idc", "pk": 51, "fields": {"name": "Wanda Watkins", "bandwidth": "200M", "contact": "Rebecca Spencer", "phone": "3-(088)780-4286", "address": "Lake Elsinore16473 Cherokee Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.659Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci."}}, {"model": "assets.idc", "pk": 52, "fields": {"name": "Evelyn Mendoza", "bandwidth": "200M", "contact": "Carol Frazier", "phone": "9-(767)843-3362", "address": "Cerritos6 Raven Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.660Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi a ipsum."}}, {"model": "assets.idc", "pk": 53, "fields": {"name": "Catherine Jordan", "bandwidth": "200M", "contact": "Theresa Fields", "phone": "3-(550)264-9110", "address": "Huron4 Carioca Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.661Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nullam varius."}}, {"model": "assets.idc", "pk": 54, "fields": {"name": "Andrea Arnold", "bandwidth": "200M", "contact": "Janice Henry", "phone": "9-(391)293-0447", "address": "Auburn124 Leroy Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.663Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla facilisi."}}, {"model": "assets.idc", "pk": 55, "fields": {"name": "Rebecca Johnson", "bandwidth": "200M", "contact": "Diana Johnston", "phone": "2-(342)711-1279", "address": "Pomona4 Hanover Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.664Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis."}}, {"model": "assets.idc", "pk": 56, "fields": {"name": "Margaret Wheeler", "bandwidth": "200M", "contact": "Evelyn Mason", "phone": "9-(643)580-2251", "address": "El Segundo4036 Dovetail Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.665Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi non quam nec dui luctus rutrum."}}, {"model": "assets.idc", "pk": 57, "fields": {"name": "Rachel Warren", "bandwidth": "200M", "contact": "Brenda Sims", "phone": "3-(498)355-6668", "address": "Moorpark96 Glendale Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.667Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Etiam pretium iaculis justo."}}, {"model": "assets.idc", "pk": 58, "fields": {"name": "Diane Mcdonald", "bandwidth": "200M", "contact": "Margaret Gibson", "phone": "3-(324)871-6721", "address": "Grover Beach02783 Haas Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.668Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Praesent blandit lacinia erat."}}, {"model": "assets.idc", "pk": 59, "fields": {"name": "Joyce Knight", "bandwidth": "200M", "contact": "Janet Tucker", "phone": "9-(362)424-3687", "address": "Port Hueneme1932 Barby Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.669Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nulla mollis molestie lorem."}}, {"model": "assets.idc", "pk": 60, "fields": {"name": "Julie Gonzales", "bandwidth": "200M", "contact": "Julie Payne", "phone": "1-(290)664-5180", "address": "San Ramon861 Spenser Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.670Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent id massa id nisl venenatis lacinia."}}, {"model": "assets.idc", "pk": 61, "fields": {"name": "Linda Jackson", "bandwidth": "200M", "contact": "Janet Mason", "phone": "8-(818)915-4748", "address": "Yucaipa7 Sunnyside Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.672Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Duis ac nibh."}}, {"model": "assets.idc", "pk": 62, "fields": {"name": "Kathleen Garza", "bandwidth": "200M", "contact": "Anna Garza", "phone": "7-(484)629-0239", "address": "Avenal672 Dapin Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.673Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nam dui."}}, {"model": "assets.idc", "pk": 63, "fields": {"name": "Joyce Gilbert", "bandwidth": "200M", "contact": "Rachel Gonzales", "phone": "1-(988)826-1084", "address": "Exeter0132 Laurel Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.674Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nulla justo."}}, {"model": "assets.idc", "pk": 64, "fields": {"name": "Judith Stanley", "bandwidth": "200M", "contact": "Sara Patterson", "phone": "3-(243)240-0628", "address": "Laguna Hills4293 Wayridge Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.675Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque porta volutpat erat."}}, {"model": "assets.idc", "pk": 65, "fields": {"name": "Denise Jordan", "bandwidth": "200M", "contact": "Ruby Perry", "phone": "6-(225)677-9653", "address": "Sunnyvale308 Manley Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.677Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi porttitor lorem id ligula."}}, {"model": "assets.idc", "pk": 66, "fields": {"name": "Susan Medina", "bandwidth": "200M", "contact": "Joyce Davis", "phone": "4-(973)281-1036", "address": "Highland89 Almo Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.678Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Suspendisse accumsan tortor quis turpis."}}, {"model": "assets.idc", "pk": 67, "fields": {"name": "Diane Lawson", "bandwidth": "200M", "contact": "Marilyn Rogers", "phone": "7-(613)944-2049", "address": "Palmdale4702 Hoard Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.680Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci."}}, {"model": "assets.idc", "pk": 68, "fields": {"name": "Anne Greene", "bandwidth": "200M", "contact": "Michelle Reid", "phone": "1-(416)221-9748", "address": "Dublin48967 Spaight Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.681Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Integer a nibh."}}, {"model": "assets.idc", "pk": 69, "fields": {"name": "Julia Hicks", "bandwidth": "200M", "contact": "Kelly Allen", "phone": "9-(657)457-2642", "address": "La Habra Heights53682 Bunker Hill Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.682Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Duis bibendum."}}, {"model": "assets.idc", "pk": 70, "fields": {"name": "Alice Watkins", "bandwidth": "200M", "contact": "Jane Berry", "phone": "4-(224)620-1407", "address": "Bellflower87 Fairview Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.683Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Etiam pretium iaculis justo."}}, {"model": "assets.idc", "pk": 71, "fields": {"name": "Lillian Perkins", "bandwidth": "200M", "contact": "Tammy Bryant", "phone": "1-(274)123-4455", "address": "Ripon542 Carioca Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.685Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Maecenas ut massa quis augue luctus tincidunt."}}, {"model": "assets.idc", "pk": 72, "fields": {"name": "Doris Campbell", "bandwidth": "200M", "contact": "Brenda Gordon", "phone": "0-(531)710-4188", "address": "Santa Barbara8 Manley Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.686Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "In sagittis dui vel nisl."}}, {"model": "assets.idc", "pk": 73, "fields": {"name": "Linda Austin", "bandwidth": "200M", "contact": "Bonnie Alexander", "phone": "8-(081)978-7177", "address": "Yucaipa520 Melody Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.687Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi quis tortor id nulla ultrices aliquet."}}, {"model": "assets.idc", "pk": 74, "fields": {"name": "Katherine Ray", "bandwidth": "200M", "contact": "Doris Kelley", "phone": "2-(098)399-2112", "address": "Atwater605 Boyd Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.689Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Donec ut mauris eget massa tempor convallis."}}, {"model": "assets.idc", "pk": 75, "fields": {"name": "Barbara Stanley", "bandwidth": "200M", "contact": "Virginia Morgan", "phone": "6-(120)039-5912", "address": "Novato53 Oak Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.690Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vestibulum sed magna at nunc commodo placerat."}}, {"model": "assets.idc", "pk": 76, "fields": {"name": "Brenda Adams", "bandwidth": "200M", "contact": "Janet Ellis", "phone": "9-(597)492-3981", "address": "San Rafael621 Spaight Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.692Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem."}}, {"model": "assets.idc", "pk": 77, "fields": {"name": "Carolyn Gardner", "bandwidth": "200M", "contact": "Carolyn Henry", "phone": "8-(718)258-6746", "address": "Woodside08 Victoria Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.693Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Duis mattis egestas metus."}}, {"model": "assets.idc", "pk": 78, "fields": {"name": "Andrea Butler", "bandwidth": "200M", "contact": "Norma Bell", "phone": "5-(405)151-6296", "address": "Shasta Lake57386 Springs Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.694Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Maecenas pulvinar lobortis est."}}, {"model": "assets.idc", "pk": 79, "fields": {"name": "Pamela Scott", "bandwidth": "200M", "contact": "Ruby Ford", "phone": "9-(440)049-6700", "address": "La Ca\u00f1ada Flintridge5174 Nelson Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.695Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Pellentesque eget nunc."}}, {"model": "assets.idc", "pk": 80, "fields": {"name": "Kathy Hawkins", "bandwidth": "200M", "contact": "Evelyn Gray", "phone": "8-(785)701-6664", "address": "Seaside362 Pine View Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.697Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "In congue."}}, {"model": "assets.idc", "pk": 81, "fields": {"name": "Jennifer Kennedy", "bandwidth": "200M", "contact": "Susan Jacobs", "phone": "3-(470)242-5893", "address": "Marysville12936 Village Green Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.698Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante."}}, {"model": "assets.idc", "pk": 82, "fields": {"name": "Andrea Bishop", "bandwidth": "200M", "contact": "Kelly Bishop", "phone": "9-(838)134-8682", "address": "Delano248 North Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.700Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 83, "fields": {"name": "Beverly Jenkins", "bandwidth": "200M", "contact": "Ann Anderson", "phone": "1-(622)378-6834", "address": "Danville320 Derek Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.701Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam."}}, {"model": "assets.idc", "pk": 84, "fields": {"name": "Elizabeth Lewis", "bandwidth": "200M", "contact": "Catherine Ross", "phone": "3-(759)815-3880", "address": "Blythe04918 Dexter Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.702Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa."}}, {"model": "assets.idc", "pk": 85, "fields": {"name": "Amy Stanley", "bandwidth": "200M", "contact": "Shirley Bennett", "phone": "5-(242)223-2401", "address": "Marysville37 Anniversary Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.704Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Curabitur convallis."}}, {"model": "assets.idc", "pk": 86, "fields": {"name": "Sarah Harrison", "bandwidth": "200M", "contact": "Julia Little", "phone": "7-(117)040-4718", "address": "Apple Valley71 Hovde Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.705Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nullam molestie nibh in lectus."}}, {"model": "assets.idc", "pk": 87, "fields": {"name": "Cynthia Perkins", "bandwidth": "200M", "contact": "Emily Garrett", "phone": "9-(407)716-3250", "address": "Lafayette8 Novick Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.706Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis."}}, {"model": "assets.idc", "pk": 88, "fields": {"name": "Frances Crawford", "bandwidth": "200M", "contact": "Paula Jordan", "phone": "6-(767)856-1779", "address": "Los Altos59 Nobel Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.708Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Integer ac leo."}}, {"model": "assets.idc", "pk": 89, "fields": {"name": "Denise Jackson", "bandwidth": "200M", "contact": "Paula Powell", "phone": "1-(714)929-3650", "address": "Port Hueneme8 Oakridge Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.709Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante."}}, {"model": "assets.idc", "pk": 90, "fields": {"name": "Katherine Fox", "bandwidth": "200M", "contact": "Doris Washington", "phone": "6-(452)637-6093", "address": "Kingsburg6294 Schurz Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.710Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla facilisi."}}, {"model": "assets.idc", "pk": 91, "fields": {"name": "Catherine Jordan", "bandwidth": "200M", "contact": "Louise Weaver", "phone": "3-(789)565-9624", "address": "Alturas054 Bunker Hill Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.712Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Suspendisse potenti."}}, {"model": "assets.idc", "pk": 92, "fields": {"name": "Lillian Howell", "bandwidth": "200M", "contact": "Ruth Jordan", "phone": "1-(088)412-0788", "address": "Pacific Grove9 Sage Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.713Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Donec ut dolor."}}, {"model": "assets.idc", "pk": 93, "fields": {"name": "Kelly Murphy", "bandwidth": "200M", "contact": "Virginia Simmons", "phone": "8-(344)877-8031", "address": "Ukiah13789 Rutledge Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.714Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Aenean fermentum."}}, {"model": "assets.idc", "pk": 94, "fields": {"name": "Mildred Sanchez", "bandwidth": "200M", "contact": "Jennifer Montgomery", "phone": "1-(853)653-5085", "address": "Laguna Woods5094 Stephen Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.715Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Maecenas tincidunt lacus at velit."}}, {"model": "assets.idc", "pk": 95, "fields": {"name": "Mary Matthews", "bandwidth": "200M", "contact": "Beverly Mccoy", "phone": "5-(448)087-2874", "address": "Kerman861 Carey Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.716Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla justo."}}, {"model": "assets.idc", "pk": 96, "fields": {"name": "Angela Gibson", "bandwidth": "200M", "contact": "Ashley Fox", "phone": "9-(368)523-3859", "address": "Temple City6983 Blue Bill Park Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.718Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi non lectus."}}, {"model": "assets.idc", "pk": 97, "fields": {"name": "Marilyn Ross", "bandwidth": "200M", "contact": "Louise Wilson", "phone": "0-(285)436-0947", "address": "Montclair68397 Nancy Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.719Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Curabitur at ipsum ac tellus semper interdum."}}, {"model": "assets.idc", "pk": 98, "fields": {"name": "Judy Robertson", "bandwidth": "200M", "contact": "Anne Brown", "phone": "6-(433)915-0987", "address": "Madera59172 Victoria Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.720Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Integer ac neque."}}, {"model": "assets.idc", "pk": 99, "fields": {"name": "Heather Taylor", "bandwidth": "200M", "contact": "Cynthia Moreno", "phone": "6-(490)900-9533", "address": "Orange840 Anhalt Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.721Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla tellus."}}, {"model": "assets.idc", "pk": 100, "fields": {"name": "Cynthia Kelley", "bandwidth": "200M", "contact": "Diana Weaver", "phone": "4-(412)590-7474", "address": "Ojai385 Thompson Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-08T03:04:17.723Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede."}}
\ No newline at end of file
diff --git a/apps/fixtures/init.json b/apps/fixtures/init.json
index a9b504052..62a9125e8 100644
--- a/apps/fixtures/init.json
+++ b/apps/fixtures/init.json
@@ -1 +1 @@
-[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_added": "2016-09-05T11:39:25.770Z", "created_by": "System"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$5ReHkQOQA2Hk$DIW0b5U/uK+U0xqjA3QpYvBcODNhm2MPCm7YWbQys3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:39:25.771Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-19T11:39:25.771Z", "created_by": "System", "user_permissions": [], "groups": [1]}}]
\ No newline at end of file
+[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_created": "2016-09-14T15:34:43Z", "created_by": "System"}}, {"model": "users.usergroup", "pk": 2, "fields": {"name": "Brian Smith", "comment": "Pellentesque ultrices mattis odio.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 3, "fields": {"name": "Marie Lane", "comment": "Nulla ut erat id mauris vulputate elementum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 4, "fields": {"name": "Louise Perkins", "comment": "Proin at turpis a pede posuere nonummy.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 5, "fields": {"name": "Teresa Johnson", "comment": "Donec ut mauris eget massa tempor convallis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 6, "fields": {"name": "Sharon Morgan", "comment": "Aenean sit amet justo.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 7, "fields": {"name": "Tina Mason", "comment": "Suspendisse potenti.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 8, "fields": {"name": "Paula Marshall", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 9, "fields": {"name": "Ruby Crawford", "comment": "Nullam molestie nibh in lectus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 10, "fields": {"name": "Justin Robertson", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 11, "fields": {"name": "Ronald Perry", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 12, "fields": {"name": "Lois Armstrong", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 13, "fields": {"name": "Evelyn Stewart", "comment": "Proin interdum mauris non ligula pellentesque ultrices.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 14, "fields": {"name": "Shirley Fernandez", "comment": "Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 15, "fields": {"name": "Kathryn Hunter", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 16, "fields": {"name": "Virginia Hart", "comment": "Etiam faucibus cursus urna.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 17, "fields": {"name": "Amy Miller", "comment": "Nulla ac enim.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 18, "fields": {"name": "Marie Long", "comment": "Etiam vel augue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 19, "fields": {"name": "Martha Olson", "comment": "Mauris ullamcorper purus sit amet nulla.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 20, "fields": {"name": "Jennifer Powell", "comment": "Fusce consequat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 21, "fields": {"name": "Sara Jackson", "comment": "Vivamus tortor.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 22, "fields": {"name": "Robin Meyer", "comment": "Sed ante.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 23, "fields": {"name": "Judith Gonzales", "comment": "Donec quis orci eget orci vehicula condimentum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 24, "fields": {"name": "Jean Patterson", "comment": "Nam tristique tortor eu pede.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 25, "fields": {"name": "Raymond Simmons", "comment": "Duis bibendum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 26, "fields": {"name": "Mildred Nguyen", "comment": "Integer non velit.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 27, "fields": {"name": "Bonnie Flores", "comment": "Nullam porttitor lacus at turpis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 28, "fields": {"name": "Elizabeth Fox", "comment": "Ut tellus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 29, "fields": {"name": "Rebecca Peters", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 30, "fields": {"name": "Helen Howell", "comment": "Cras pellentesque volutpat dui.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 31, "fields": {"name": "Christopher Armstrong", "comment": "Nulla facilisi.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 32, "fields": {"name": "Kathryn Schmidt", "comment": "Duis at velit eu est congue elementum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 33, "fields": {"name": "Julia Reed", "comment": "Pellentesque ultrices mattis odio.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 34, "fields": {"name": "Ann Lewis", "comment": "Curabitur in libero ut massa volutpat convallis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 35, "fields": {"name": "Wanda Romero", "comment": "In sagittis dui vel nisl.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 36, "fields": {"name": "Jean Richards", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 37, "fields": {"name": "Jessica Spencer", "comment": "Suspendisse potenti.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 38, "fields": {"name": "Linda Bowman", "comment": "Mauris ullamcorper purus sit amet nulla.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 39, "fields": {"name": "Sarah Cooper", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 40, "fields": {"name": "Donna Mitchell", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 41, "fields": {"name": "Heather West", "comment": "Duis aliquam convallis nunc.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 42, "fields": {"name": "Lois Kennedy", "comment": "Suspendisse potenti.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 43, "fields": {"name": "Louise Porter", "comment": "Quisque porta volutpat erat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 44, "fields": {"name": "Lori Martin", "comment": "Duis aliquam convallis nunc.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 45, "fields": {"name": "Ruth Sullivan", "comment": "Curabitur gravida nisi at nibh.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 46, "fields": {"name": "Jacqueline Brown", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 47, "fields": {"name": "Margaret Larson", "comment": "Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 48, "fields": {"name": "Karen Marshall", "comment": "Nullam sit amet turpis elementum ligula vehicula consequat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 49, "fields": {"name": "Betty Carr", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 50, "fields": {"name": "Debra Lane", "comment": "Integer ac neque.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 51, "fields": {"name": "Heather Payne", "comment": "Praesent blandit lacinia erat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 52, "fields": {"name": "Gloria Jenkins", "comment": "Maecenas tincidunt lacus at velit.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 53, "fields": {"name": "Sara Lane", "comment": "Sed vel enim sit amet nunc viverra dapibus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 54, "fields": {"name": "Pamela Henry", "comment": "Proin at turpis a pede posuere nonummy.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 55, "fields": {"name": "Diana Dixon", "comment": "Ut tellus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 56, "fields": {"name": "Tina Graham", "comment": "Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 57, "fields": {"name": "Janice Flores", "comment": "Nulla justo.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 58, "fields": {"name": "Deborah Warren", "comment": "Sed sagittis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 59, "fields": {"name": "Anne Carroll", "comment": "Ut at dolor quis odio consequat varius.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 60, "fields": {"name": "Betty Matthews", "comment": "Maecenas pulvinar lobortis est.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 61, "fields": {"name": "Brenda Palmer", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 62, "fields": {"name": "Phyllis Shaw", "comment": "Vivamus vestibulum sagittis sapien.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 63, "fields": {"name": "Lisa Schmidt", "comment": "Aenean auctor gravida sem.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 64, "fields": {"name": "Sandra Lewis", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 65, "fields": {"name": "Brenda Burke", "comment": "In congue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 66, "fields": {"name": "Anna Wallace", "comment": "Donec vitae nisi.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 67, "fields": {"name": "Julia Gutierrez", "comment": "Etiam vel augue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 68, "fields": {"name": "Lori Phillips", "comment": "Sed accumsan felis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 69, "fields": {"name": "Sandra Perez", "comment": "Vivamus in felis eu sapien cursus vestibulum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 70, "fields": {"name": "Maria Nichols", "comment": "Aenean fermentum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 71, "fields": {"name": "Wanda Allen", "comment": "In est risus, auctor sed, tristique in, tempus sit amet, sem.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 72, "fields": {"name": "Karen Collins", "comment": "Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 73, "fields": {"name": "Theresa Harrison", "comment": "Nulla nisl.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 74, "fields": {"name": "Debra Carr", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 75, "fields": {"name": "Ashley Daniels", "comment": "Mauris ullamcorper purus sit amet nulla.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 76, "fields": {"name": "Amanda Matthews", "comment": "Maecenas pulvinar lobortis est.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 77, "fields": {"name": "Nancy Green", "comment": "Proin eu mi.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 78, "fields": {"name": "Lisa Ferguson", "comment": "Nullam molestie nibh in lectus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 79, "fields": {"name": "Cynthia Washington", "comment": "Maecenas rhoncus aliquam lacus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 80, "fields": {"name": "Michelle Wells", "comment": "Nulla tempus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 81, "fields": {"name": "Sara Graham", "comment": "Etiam faucibus cursus urna.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 82, "fields": {"name": "Beverly Armstrong", "comment": "In hac habitasse platea dictumst.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 83, "fields": {"name": "Andrea White", "comment": "Quisque porta volutpat erat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 84, "fields": {"name": "Angela Edwards", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 85, "fields": {"name": "Julia Alexander", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 86, "fields": {"name": "Dorothy Ward", "comment": "In blandit ultrices enim.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 87, "fields": {"name": "Brenda Gonzalez", "comment": "Nunc purus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 88, "fields": {"name": "Alice Chapman", "comment": "Nam tristique tortor eu pede.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 89, "fields": {"name": "Margaret Powell", "comment": "In sagittis dui vel nisl.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 90, "fields": {"name": "Jessica Riley", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 91, "fields": {"name": "Cheryl Coleman", "comment": "Sed accumsan felis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 92, "fields": {"name": "Diana Miller", "comment": "Donec vitae nisi.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 93, "fields": {"name": "Tammy Phillips", "comment": "Mauris lacinia sapien quis libero.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 94, "fields": {"name": "Dorothy Wood", "comment": "Etiam vel augue.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 95, "fields": {"name": "Deborah Ortiz", "comment": "Praesent blandit lacinia erat.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 96, "fields": {"name": "Debra Stevens", "comment": "Nulla suscipit ligula in lacus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 97, "fields": {"name": "Donna Lawson", "comment": "Integer non velit.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 98, "fields": {"name": "Anna Stewart", "comment": "Donec posuere metus vitae ipsum.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 99, "fields": {"name": "Cheryl Williamson", "comment": "Duis mattis egestas metus.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 100, "fields": {"name": "Carolyn Sanchez", "comment": "Pellentesque at nulla.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "users.usergroup", "pk": 101, "fields": {"name": "Deborah Reid", "comment": "Sed sagittis.", "date_created": "2016-09-15T01:55:12Z", "created_by": "admin"}}, {"model": "assets.idc", "pk": 7, "fields": {"name": "Wanda Henry", "bandwidth": "200M", "contact": "Bonnie Fields", "phone": "6-(107)118-3618", "address": "Ridgecrest08293 Bellgrove Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo."}}, {"model": "assets.idc", "pk": 8, "fields": {"name": "Theresa Matthews", "bandwidth": "200M", "contact": "Janet Marshall", "phone": "1-(158)666-7567", "address": "Burbank92540 Brown Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla nisl."}}, {"model": "assets.idc", "pk": 9, "fields": {"name": "Linda Green", "bandwidth": "200M", "contact": "Catherine Miller", "phone": "6-(186)047-7348", "address": "Shasta Lake0 Vernon Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Integer ac neque."}}, {"model": "assets.idc", "pk": 10, "fields": {"name": "Donna Willis", "bandwidth": "200M", "contact": "Lisa Mendoza", "phone": "9-(242)470-1639", "address": "Redondo Beach83027 Rigney Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi vel lectus in quam fringilla rhoncus."}}, {"model": "assets.idc", "pk": 11, "fields": {"name": "Shirley Gordon", "bandwidth": "200M", "contact": "Kimberly Palmer", "phone": "9-(328)343-6730", "address": "Pittsburg3657 Scoville Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Sed accumsan felis."}}, {"model": "assets.idc", "pk": 12, "fields": {"name": "Michelle Bradley", "bandwidth": "200M", "contact": "Heather Garcia", "phone": "7-(310)079-6347", "address": "City of Commerce91064 Vidon Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi a ipsum."}}, {"model": "assets.idc", "pk": 13, "fields": {"name": "Elizabeth Lopez", "bandwidth": "200M", "contact": "Cheryl Carr", "phone": "0-(772)467-1157", "address": "Dublin951 Rusk Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla tellus."}}, {"model": "assets.idc", "pk": 14, "fields": {"name": "Lillian Hamilton", "bandwidth": "200M", "contact": "Jacqueline Frazi", "phone": "1-(901)574-2748", "address": "Placentia0 American Ash Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Duis aliquam convallis nunc."}}, {"model": "assets.idc", "pk": 15, "fields": {"name": "Jennifer Perry", "bandwidth": "200M", "contact": "Linda Long", "phone": "8-(322)730-5262", "address": "Crescent City965 Sugar Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In quis justo."}}, {"model": "assets.idc", "pk": 16, "fields": {"name": "Martha Phillips", "bandwidth": "200M", "contact": "Diana Roberts", "phone": "9-(830)108-3261", "address": "Roseville04 Vermont Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Proin eu mi."}}, {"model": "assets.idc", "pk": 17, "fields": {"name": "Susan Gordon", "bandwidth": "200M", "contact": "Stephanie Bradle", "phone": "6-(426)121-7918", "address": "Santa Fe Springs7 Elgar Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo."}}, {"model": "assets.idc", "pk": 18, "fields": {"name": "Cynthia Sims", "bandwidth": "200M", "contact": "Mary Nichols", "phone": "7-(508)008-3082", "address": "Oakdale916 Barnett Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Proin eu mi."}}, {"model": "assets.idc", "pk": 19, "fields": {"name": "Catherine Wheeler", "bandwidth": "200M", "contact": "Annie Murphy", "phone": "1-(146)987-5320", "address": "Scotts Valley76 Evergreen Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit."}}, {"model": "assets.idc", "pk": 21, "fields": {"name": "Denise Davis", "bandwidth": "200M", "contact": "Christine Crawfo", "phone": "5-(628)897-7260", "address": "Calipatria9418 Cottonwood Trail", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Donec ut dolor."}}, {"model": "assets.idc", "pk": 22, "fields": {"name": "Susan Ellis", "bandwidth": "200M", "contact": "Robin Stanley", "phone": "3-(703)665-6725", "address": "Dinuba36 Brentwood Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Suspendisse accumsan tortor quis turpis."}}, {"model": "assets.idc", "pk": 24, "fields": {"name": "Phyllis Myers", "bandwidth": "200M", "contact": "Diana Stone", "phone": "2-(902)492-5081", "address": "El Monte3 Merry Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem."}}, {"model": "assets.idc", "pk": 25, "fields": {"name": "Jennifer Ross", "bandwidth": "200M", "contact": "Laura Thompson", "phone": "2-(199)831-8725", "address": "Oakdale0 Haas Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla facilisi."}}, {"model": "assets.idc", "pk": 26, "fields": {"name": "Margaret Sanchez", "bandwidth": "200M", "contact": "Amanda Fuller", "phone": "4-(084)319-6199", "address": "Truckee84 Muir Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Sed sagittis."}}, {"model": "assets.idc", "pk": 27, "fields": {"name": "Tammy Peterson", "bandwidth": "200M", "contact": "Phyllis Young", "phone": "4-(403)500-5429", "address": "Lompoc690 Barby Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Etiam vel augue."}}, {"model": "assets.idc", "pk": 28, "fields": {"name": "Jean Bell", "bandwidth": "200M", "contact": "Lois Carroll", "phone": "0-(883)815-1542", "address": "Hidden Hills9 Muir Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Praesent blandit lacinia erat."}}, {"model": "assets.idc", "pk": 29, "fields": {"name": "Gloria Cook", "bandwidth": "200M", "contact": "Deborah Wells", "phone": "4-(878)879-4593", "address": "Sierra Madre539 Lakewood Gardens Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "In hac habitasse platea dictumst."}}, {"model": "assets.idc", "pk": 30, "fields": {"name": "Christine Torres", "bandwidth": "200M", "contact": "Norma Martin", "phone": "5-(455)707-0466", "address": "Turlock24 Sachtjen Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Etiam faucibus cursus urna."}}, {"model": "assets.idc", "pk": 31, "fields": {"name": "Martha Coleman", "bandwidth": "200M", "contact": "Virginia Evans", "phone": "0-(797)352-0548", "address": "Pismo Beach0 Cascade Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Aliquam non mauris."}}, {"model": "assets.idc", "pk": 32, "fields": {"name": "Doris Young", "bandwidth": "200M", "contact": "Christina Lawren", "phone": "1-(624)334-5677", "address": "Orinda063 Lotheville Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Donec ut dolor."}}, {"model": "assets.idc", "pk": 33, "fields": {"name": "Brenda Gray", "bandwidth": "200M", "contact": "Rebecca Mcdonald", "phone": "2-(150)996-8788", "address": "Rancho Palos Verdes280 Kensington Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh."}}, {"model": "assets.idc", "pk": 34, "fields": {"name": "Gloria Arnold", "bandwidth": "200M", "contact": "Brenda Williams", "phone": "9-(230)324-2266", "address": "Pasadena4 School Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Donec dapibus."}}, {"model": "assets.idc", "pk": 35, "fields": {"name": "Julia Frazier", "bandwidth": "200M", "contact": "Janice Welch", "phone": "1-(580)141-7916", "address": "El Segundo5 Brentwood Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Integer ac leo."}}, {"model": "assets.idc", "pk": 36, "fields": {"name": "Ruby Watson", "bandwidth": "200M", "contact": "Emily Cooper", "phone": "1-(291)494-9845", "address": "Los Angeles0 Pond Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "In hac habitasse platea dictumst."}}, {"model": "assets.idc", "pk": 37, "fields": {"name": "Brenda Morrison", "bandwidth": "200M", "contact": "Nancy Schmidt", "phone": "8-(799)952-2019", "address": "Burlingame71 Autumn Leaf Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl."}}, {"model": "assets.idc", "pk": 38, "fields": {"name": "Amy Lee", "bandwidth": "200M", "contact": "Laura Mendoza", "phone": "5-(513)114-8850", "address": "Corona70 Dapin Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est."}}, {"model": "assets.idc", "pk": 39, "fields": {"name": "Shirley Mcdonald", "bandwidth": "200M", "contact": "Norma Rodriguez", "phone": "6-(163)727-5032", "address": "Studio City19423 Warbler Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent blandit lacinia erat."}}, {"model": "assets.idc", "pk": 40, "fields": {"name": "Jane Carr", "bandwidth": "200M", "contact": "Norma Kennedy", "phone": "9-(026)075-3121", "address": "Dorris029 Sunnyside Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Ut tellus."}}, {"model": "assets.idc", "pk": 41, "fields": {"name": "Tammy Adams", "bandwidth": "200M", "contact": "Karen Simmons", "phone": "0-(026)744-5786", "address": "Colusa9562 Starling Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vestibulum rutrum rutrum neque."}}, {"model": "assets.idc", "pk": 42, "fields": {"name": "Catherine Coleman", "bandwidth": "200M", "contact": "Jean Ferguson", "phone": "7-(203)893-9201", "address": "Hughson483 American Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Proin eu mi."}}, {"model": "assets.idc", "pk": 43, "fields": {"name": "Christina Ford", "bandwidth": "200M", "contact": "Anne Kelley", "phone": "7-(361)766-8108", "address": "Sonoma6517 Homewood Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 44, "fields": {"name": "Ashley Clark", "bandwidth": "200M", "contact": "Donna Weaver", "phone": "6-(865)303-2972", "address": "Williams59106 Judy Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In congue."}}, {"model": "assets.idc", "pk": 45, "fields": {"name": "Katherine Harper", "bandwidth": "200M", "contact": "Deborah Baker", "phone": "2-(077)530-8128", "address": "Orange853 Cody Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Cras in purus eu magna vulputate luctus."}}, {"model": "assets.idc", "pk": 46, "fields": {"name": "Christine Boyd", "bandwidth": "200M", "contact": "Stephanie Bailey", "phone": "8-(720)553-4835", "address": "Calistoga76913 Arapahoe Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "In eleifend quam a odio."}}, {"model": "assets.idc", "pk": 47, "fields": {"name": "Mildred Ramirez", "bandwidth": "200M", "contact": "Paula Chapman", "phone": "2-(230)486-4798", "address": "Roseville24 Pond Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo."}}, {"model": "assets.idc", "pk": 48, "fields": {"name": "Rachel Weaver", "bandwidth": "200M", "contact": "Frances Marshall", "phone": "3-(074)015-2372", "address": "Daly City8376 Kenwood Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nam nulla."}}, {"model": "assets.idc", "pk": 49, "fields": {"name": "Janet Schmidt", "bandwidth": "200M", "contact": "Lois Perez", "phone": "9-(286)963-6298", "address": "Bradbury485 Anhalt Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Aenean fermentum."}}, {"model": "assets.idc", "pk": 50, "fields": {"name": "Christine Porter", "bandwidth": "200M", "contact": "Denise Weaver", "phone": "6-(230)220-9488", "address": "Mendota86 Hauk Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Pellentesque eget nunc."}}, {"model": "assets.idc", "pk": 51, "fields": {"name": "Sarah Cooper", "bandwidth": "200M", "contact": "Katherine King", "phone": "2-(176)708-8202", "address": "Del Rey Oaks9 Clarendon Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Fusce posuere felis sed lacus."}}, {"model": "assets.idc", "pk": 52, "fields": {"name": "Rachel Gardner", "bandwidth": "200M", "contact": "Margaret Simmons", "phone": "1-(556)814-2223", "address": "Stockton98067 Burning Wood Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque ut erat."}}, {"model": "assets.idc", "pk": 53, "fields": {"name": "Ruth Crawford", "bandwidth": "200M", "contact": "Denise Reynolds", "phone": "0-(111)540-6291", "address": "Benicia5 Nelson Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio."}}, {"model": "assets.idc", "pk": 54, "fields": {"name": "Nicole Dunn", "bandwidth": "200M", "contact": "Ashley Daniels", "phone": "0-(593)650-4400", "address": "Atascadero541 Warbler Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nunc nisl."}}, {"model": "assets.idc", "pk": 55, "fields": {"name": "Sharon Scott", "bandwidth": "200M", "contact": "Mildred Parker", "phone": "8-(426)698-1400", "address": "Emeryville7 Debra Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus."}}, {"model": "assets.idc", "pk": 56, "fields": {"name": "Helen Harvey", "bandwidth": "200M", "contact": "Rachel Brooks", "phone": "9-(539)900-3281", "address": "Woodside8 Hayes Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla."}}, {"model": "assets.idc", "pk": 57, "fields": {"name": "Sharon Welch", "bandwidth": "200M", "contact": "Irene Knight", "phone": "9-(479)484-8960", "address": "Maricopa3 3rd Road", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "In blandit ultrices enim."}}, {"model": "assets.idc", "pk": 58, "fields": {"name": "Judith Perez", "bandwidth": "200M", "contact": "Doris Williams", "phone": "9-(070)853-9629", "address": "Wheatland9268 Stone Corner Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nam dui."}}, {"model": "assets.idc", "pk": 59, "fields": {"name": "Marie Gonzales", "bandwidth": "200M", "contact": "Helen Gonzales", "phone": "9-(663)074-3567", "address": "Fremont1 Jenna Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."}}, {"model": "assets.idc", "pk": 60, "fields": {"name": "Annie Owens", "bandwidth": "200M", "contact": "Robin Spencer", "phone": "9-(505)754-4001", "address": "Glendale954 Butterfield Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nam nulla."}}, {"model": "assets.idc", "pk": 61, "fields": {"name": "Margaret Woods", "bandwidth": "200M", "contact": "Nancy Webb", "phone": "5-(741)490-5249", "address": "San Gabriel4231 Wayridge Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Pellentesque viverra pede ac diam."}}, {"model": "assets.idc", "pk": 62, "fields": {"name": "Lois Martin", "bandwidth": "200M", "contact": "Irene Hart", "phone": "8-(289)102-3580", "address": "Livingston31 Stang Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla nisl."}}, {"model": "assets.idc", "pk": 63, "fields": {"name": "Annie Brown", "bandwidth": "200M", "contact": "Jennifer Perkins", "phone": "9-(703)955-1074", "address": "Yorba Linda80561 Sugar Alley", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Proin eu mi."}}, {"model": "assets.idc", "pk": 64, "fields": {"name": "Lois Turner", "bandwidth": "200M", "contact": "Denise Garcia", "phone": "2-(294)228-0955", "address": "Bell Gardens961 Bartelt Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla ut erat id mauris vulputate elementum."}}, {"model": "assets.idc", "pk": 65, "fields": {"name": "Helen Gibson", "bandwidth": "200M", "contact": "Kathleen Cook", "phone": "9-(881)761-0055", "address": "Windsor63 Stephen Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent id massa id nisl venenatis lacinia."}}, {"model": "assets.idc", "pk": 66, "fields": {"name": "Tammy Washington", "bandwidth": "200M", "contact": "Lisa Bryant", "phone": "3-(644)666-6002", "address": "King City27634 Hooker Court", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Integer ac neque."}}, {"model": "assets.idc", "pk": 67, "fields": {"name": "Kelly Banks", "bandwidth": "200M", "contact": "Nancy Simmons", "phone": "9-(777)534-1801", "address": "Glendora9081 Lakeland Lane", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "In quis justo."}}, {"model": "assets.idc", "pk": 68, "fields": {"name": "Amy Perez", "bandwidth": "200M", "contact": "Joan Hunt", "phone": "0-(467)579-0353", "address": "Shasta Lake93546 Lawn Plaza", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Duis ac nibh."}}, {"model": "assets.idc", "pk": 69, "fields": {"name": "Teresa Foster", "bandwidth": "200M", "contact": "Jennifer Gonzale", "phone": "7-(350)688-7097", "address": "Barstow794 Ludington Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci."}}, {"model": "assets.idc", "pk": 70, "fields": {"name": "Diane Perry", "bandwidth": "200M", "contact": "Pamela Lee", "phone": "9-(268)952-7790", "address": "Larkspur258 Esch Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Fusce consequat."}}, {"model": "assets.idc", "pk": 71, "fields": {"name": "Jacqueline Stanley", "bandwidth": "200M", "contact": "Katherine Wilson", "phone": "2-(827)139-8785", "address": "Ceres218 Express Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent blandit lacinia erat."}}, {"model": "assets.idc", "pk": 72, "fields": {"name": "Debra Torres", "bandwidth": "200M", "contact": "Mary Gordon", "phone": "5-(985)757-8073", "address": "Coachella57640 Montana Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Phasellus sit amet erat."}}, {"model": "assets.idc", "pk": 73, "fields": {"name": "Mildred Hamilton", "bandwidth": "200M", "contact": "Shirley Hall", "phone": "3-(675)223-7431", "address": "Carlsbad945 Golf Course Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Maecenas ut massa quis augue luctus tincidunt."}}, {"model": "assets.idc", "pk": 74, "fields": {"name": "Julia Phillips", "bandwidth": "200M", "contact": "Ruth Richardson", "phone": "2-(368)626-3624", "address": "Union City4 Redwing Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Etiam vel augue."}}, {"model": "assets.idc", "pk": 75, "fields": {"name": "Mary Bennett", "bandwidth": "200M", "contact": "Andrea Simmons", "phone": "1-(683)983-8015", "address": "Suisun City57 Londonderry Drive", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Maecenas pulvinar lobortis est."}}, {"model": "assets.idc", "pk": 76, "fields": {"name": "Lisa Henry", "bandwidth": "200M", "contact": "Sandra Campbell", "phone": "9-(136)328-7239", "address": "Fortuna4 Mccormick Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Duis mattis egestas metus."}}, {"model": "assets.idc", "pk": 77, "fields": {"name": "Alice Hall", "bandwidth": "200M", "contact": "Dorothy Gardner", "phone": "7-(684)295-4754", "address": "Yreka3 Westend Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi porttitor lorem id ligula."}}, {"model": "assets.idc", "pk": 78, "fields": {"name": "Anne Montgomery", "bandwidth": "200M", "contact": "Lois Wright", "phone": "0-(624)672-3340", "address": "Calimesa3076 Onsgard Place", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."}}, {"model": "assets.idc", "pk": 79, "fields": {"name": "Mary Robinson", "bandwidth": "200M", "contact": "Gloria Collins", "phone": "6-(691)568-4557", "address": "Rialto34706 Corben Terrace", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Suspendisse accumsan tortor quis turpis."}}, {"model": "assets.idc", "pk": 80, "fields": {"name": "Theresa Butler", "bandwidth": "200M", "contact": "Ann Barnes", "phone": "7-(831)628-2018", "address": "Upland62 Northwestern Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi non lectus."}}, {"model": "assets.idc", "pk": 81, "fields": {"name": "Donna Moore", "bandwidth": "200M", "contact": "Marilyn Cooper", "phone": "7-(997)355-3509", "address": "Chico53 Caliangt Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla nisl."}}, {"model": "assets.idc", "pk": 82, "fields": {"name": "Catherine Clark", "bandwidth": "200M", "contact": "Evelyn Gardner", "phone": "9-(936)729-0148", "address": "Encinitas3164 Elka Way", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Praesent blandit."}}, {"model": "assets.idc", "pk": 83, "fields": {"name": "Kelly Torres", "bandwidth": "200M", "contact": "Rose Ward", "phone": "3-(333)302-6150", "address": "Adelanto9 Lukken Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Morbi non quam nec dui luctus rutrum."}}, {"model": "assets.idc", "pk": 84, "fields": {"name": "Gloria Diaz", "bandwidth": "200M", "contact": "Shirley West", "phone": "7-(995)003-7181", "address": "San Mateo6 Dorton Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Aenean fermentum."}}, {"model": "assets.idc", "pk": 85, "fields": {"name": "Marie West", "bandwidth": "200M", "contact": "Dorothy Weaver", "phone": "3-(204)516-5417", "address": "Lodi456 Old Gate Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Aenean auctor gravida sem."}}, {"model": "assets.idc", "pk": 86, "fields": {"name": "Frances Hudson", "bandwidth": "200M", "contact": "Andrea Edwards", "phone": "1-(448)835-9553", "address": "Mission Viejo1523 5th Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo."}}, {"model": "assets.idc", "pk": 87, "fields": {"name": "Donna Peters", "bandwidth": "200M", "contact": "Lillian Lawrence", "phone": "3-(949)524-1176", "address": "Livingston6230 Prentice Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "BGP\u5168\u7f51\u901a", "created_by": "Fake", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh."}}, {"model": "assets.idc", "pk": 88, "fields": {"name": "Brenda Vasquez", "bandwidth": "200M", "contact": "Paula Gordon", "phone": "2-(481)082-9972", "address": "La Habra45 Dapin Street", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Phasellus id sapien in sapien iaculis congue."}}, {"model": "assets.idc", "pk": 89, "fields": {"name": "Margaret Morales", "bandwidth": "200M", "contact": "Teresa Rice", "phone": "6-(892)534-0804", "address": "Selma3 Tennyson Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Donec semper sapien a libero."}}, {"model": "assets.idc", "pk": 90, "fields": {"name": "Gloria Ruiz", "bandwidth": "200M", "contact": "Andrea Murphy", "phone": "8-(374)456-9736", "address": "Culver City23 Bayside Circle", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nulla facilisi."}}, {"model": "assets.idc", "pk": 91, "fields": {"name": "Sharon Cook", "bandwidth": "200M", "contact": "Lisa Fernandez", "phone": "1-(495)953-8047", "address": "Stanton12308 Parkside Parkway", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Nam tristique tortor eu pede."}}, {"model": "assets.idc", "pk": 92, "fields": {"name": "Norma Day", "bandwidth": "200M", "contact": "Doris Duncan", "phone": "4-(208)430-3206", "address": "El Segundo1074 Dorton Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo."}}, {"model": "assets.idc", "pk": 93, "fields": {"name": "Mary Castillo", "bandwidth": "200M", "contact": "Melissa Mason", "phone": "9-(682)061-3784", "address": "San Dimas3 Rockefeller Center", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Duis at velit eu est congue elementum."}}, {"model": "assets.idc", "pk": 94, "fields": {"name": "Stephanie Woods", "bandwidth": "200M", "contact": "Judy Moreno", "phone": "9-(112)159-3565", "address": "Pomona48359 Maywood Junction", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Aliquam quis turpis eget elit sodales scelerisque."}}, {"model": "assets.idc", "pk": 95, "fields": {"name": "Ruby Perez", "bandwidth": "200M", "contact": "Lois Hamilton", "phone": "1-(347)779-0602", "address": "City of Commerce093 Reindahl Pass", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis."}}, {"model": "assets.idc", "pk": 96, "fields": {"name": "Catherine Weaver", "bandwidth": "200M", "contact": "Beverly Freeman", "phone": "5-(281)093-1208", "address": "Del Mar584 Bay Point", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo."}}, {"model": "assets.idc", "pk": 97, "fields": {"name": "Sara Olson", "bandwidth": "200M", "contact": "Brenda Miller", "phone": "0-(958)684-8524", "address": "Twentynine Palms039 Lillian Park", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla."}}, {"model": "assets.idc", "pk": 98, "fields": {"name": "Linda Griffin", "bandwidth": "200M", "contact": "Robin Fox", "phone": "6-(187)802-5149", "address": "Benicia8541 Merchant Hill", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Proin leo odio, porttitor id, consequat in, consequat ut, nulla."}}, {"model": "assets.idc", "pk": 99, "fields": {"name": "Julie Thompson", "bandwidth": "200M", "contact": "Joan Lawson", "phone": "9-(645)340-3742", "address": "San Pablo7502 Calypso Avenue", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u7535\u4fe1", "created_by": "Fake", "comment": "Proin eu mi."}}, {"model": "assets.idc", "pk": 100, "fields": {"name": "Kathleen Morgan", "bandwidth": "200M", "contact": "Denise Hall", "phone": "4-(511)117-0401", "address": "Portola Valley907 Garrison Crossing", "network": "192.168.1.10/24\n192.168.1.20", "date_created": "2016-09-15T01:55:28Z", "operator": "\u5317\u4eac\u8054\u901a", "created_by": "Fake", "comment": "Nulla tempus."}}, {"model": "assets.assetgroup", "pk": 1, "fields": {"name": "Sandra Miller", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Ut at dolor quis odio consequat varius.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 2, "fields": {"name": "Theresa Thomas", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam porttitor lacus at turpis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 3, "fields": {"name": "Ruby Ross", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 4, "fields": {"name": "Larry Stone", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Mauris sit amet eros.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 5, "fields": {"name": "Lillian Diaz", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Ut tellus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 6, "fields": {"name": "Martha Robertson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Sed ante.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 7, "fields": {"name": "Christine Hunter", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nulla suscipit ligula in lacus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 8, "fields": {"name": "Irene Hill", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 9, "fields": {"name": "Lisa Rose", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 10, "fields": {"name": "Kathryn Moreno", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 11, "fields": {"name": "Marie Jones", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam porttitor lacus at turpis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 12, "fields": {"name": "Robin Frazier", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In sagittis dui vel nisl.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 13, "fields": {"name": "Nicole Mason", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 14, "fields": {"name": "Sarah Lawson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nunc nisl.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 15, "fields": {"name": "Carolyn Thomas", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Vestibulum quam sapien, varius ut, blandit non, interdum in, ante.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 16, "fields": {"name": "Sarah Taylor", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Etiam pretium iaculis justo.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 17, "fields": {"name": "Barbara Payne", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nulla facilisi.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 18, "fields": {"name": "Kelly Ryan", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 19, "fields": {"name": "Irene Gibson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam varius.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 20, "fields": {"name": "Helen Cole", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 21, "fields": {"name": "Barbara Watkins", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nam nulla.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 22, "fields": {"name": "Annie Martin", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nunc rhoncus dui vel sem.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 23, "fields": {"name": "Kathleen Martin", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 24, "fields": {"name": "Cynthia George", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam sit amet turpis elementum ligula vehicula consequat.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 25, "fields": {"name": "Cheryl Davis", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis consequat dui nec nisi volutpat eleifend.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 26, "fields": {"name": "Kathleen Daniels", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis at velit eu est congue elementum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 27, "fields": {"name": "Michelle Dean", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas tincidunt lacus at velit.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 28, "fields": {"name": "Judy Hudson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec posuere metus vitae ipsum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 29, "fields": {"name": "Sarah Daniels", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 30, "fields": {"name": "Beverly Lewis", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Phasellus id sapien in sapien iaculis congue.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 31, "fields": {"name": "Amanda Dixon", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 32, "fields": {"name": "Kathryn Roberts", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Cras pellentesque volutpat dui.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 33, "fields": {"name": "Diana Simmons", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Praesent blandit lacinia erat.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 34, "fields": {"name": "Lois Washington", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec ut mauris eget massa tempor convallis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 35, "fields": {"name": "Gloria White", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In quis justo.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 36, "fields": {"name": "Maria Griffin", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 37, "fields": {"name": "Louise Dunn", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 38, "fields": {"name": "Diane Tucker", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Integer ac neque.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 39, "fields": {"name": "Shirley Stanley", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 40, "fields": {"name": "Kathleen Marshall", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis mattis egestas metus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 41, "fields": {"name": "Jennifer Ramos", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 42, "fields": {"name": "Betty Porter", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec quis orci eget orci vehicula condimentum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 43, "fields": {"name": "Cynthia Turner", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 44, "fields": {"name": "Linda Simmons", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 45, "fields": {"name": "Amy Garrett", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Praesent id massa id nisl venenatis lacinia.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 46, "fields": {"name": "Marilyn Stevens", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 47, "fields": {"name": "Martha Chavez", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In eleifend quam a odio.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 48, "fields": {"name": "Shirley Dean", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Integer non velit.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 49, "fields": {"name": "Margaret Brown", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 50, "fields": {"name": "Betty Watkins", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec posuere metus vitae ipsum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 51, "fields": {"name": "Patricia Bailey", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam varius.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 52, "fields": {"name": "Melissa Gonzales", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 53, "fields": {"name": "Janice Jordan", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Cras in purus eu magna vulputate luctus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 54, "fields": {"name": "Susan Johnson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Phasellus id sapien in sapien iaculis congue.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 55, "fields": {"name": "Karen Johnson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 56, "fields": {"name": "Ruth Bowman", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 57, "fields": {"name": "Melissa Bishop", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Vivamus vestibulum sagittis sapien.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 58, "fields": {"name": "Virginia Bowman", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas pulvinar lobortis est.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 59, "fields": {"name": "Kimberly Reynolds", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec semper sapien a libero.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 60, "fields": {"name": "Mildred Bishop", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 61, "fields": {"name": "Amy Bennett", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Ut tellus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 62, "fields": {"name": "Marie Burton", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Curabitur gravida nisi at nibh.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 63, "fields": {"name": "Rose Torres", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam sit amet diam in magna bibendum imperdiet.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 64, "fields": {"name": "Mary Johnson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Mauris ullamcorper purus sit amet nulla.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 65, "fields": {"name": "Louise Kim", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 66, "fields": {"name": "Judy Fields", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 67, "fields": {"name": "Amanda Rivera", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 68, "fields": {"name": "Kathy Dixon", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 69, "fields": {"name": "Brenda Adams", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In quis justo.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 70, "fields": {"name": "Annie Scott", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In hac habitasse platea dictumst.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 71, "fields": {"name": "Pamela Wells", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec quis orci eget orci vehicula condimentum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 72, "fields": {"name": "Nicole Gilbert", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Praesent blandit.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 73, "fields": {"name": "Barbara Ramos", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 74, "fields": {"name": "Katherine Campbell", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nullam sit amet turpis elementum ligula vehicula consequat.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 75, "fields": {"name": "Julia Gordon", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse accumsan tortor quis turpis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 76, "fields": {"name": "Shirley Lawson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nunc nisl.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 77, "fields": {"name": "Catherine Gonzales", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nam nulla.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 78, "fields": {"name": "Kathryn Chapman", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Integer non velit.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 79, "fields": {"name": "Carol Porter", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In hac habitasse platea dictumst.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 80, "fields": {"name": "Cynthia Evans", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 81, "fields": {"name": "Amanda Thompson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aenean lectus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 82, "fields": {"name": "Michelle Perez", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In est risus, auctor sed, tristique in, tempus sit amet, sem.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 83, "fields": {"name": "Pamela Wilson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Morbi non lectus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 84, "fields": {"name": "Lori Wheeler", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 85, "fields": {"name": "Judith Lynch", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas pulvinar lobortis est.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 86, "fields": {"name": "Alice James", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Curabitur in libero ut massa volutpat convallis.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 87, "fields": {"name": "Norma Fuller", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Cras in purus eu magna vulputate luctus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 88, "fields": {"name": "Wanda Hill", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "In eleifend quam a odio.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 89, "fields": {"name": "Mary Phillips", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Phasellus id sapien in sapien iaculis congue.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 90, "fields": {"name": "Michelle Evans", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 91, "fields": {"name": "Ashley Hall", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Ut tellus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 92, "fields": {"name": "Amy Andrews", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Maecenas rhoncus aliquam lacus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 93, "fields": {"name": "Jessica Lawrence", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Suspendisse potenti.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 94, "fields": {"name": "Beverly Simpson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Donec posuere metus vitae ipsum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 95, "fields": {"name": "Ann Richardson", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Duis at velit eu est congue elementum.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 96, "fields": {"name": "Donna Green", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 97, "fields": {"name": "Janet Washington", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 98, "fields": {"name": "Ruby Tucker", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Nulla suscipit ligula in lacus.", "system_users": []}}, {"model": "assets.assetgroup", "pk": 99, "fields": {"name": "Janet Stone", "created_by": "Fake", "date_created": "2016-09-15T01:55:28Z", "comment": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", "system_users": []}}, {"model": "assets.asset", "pk": 1, "fields": {"ip": "g1G.KYl.oGF.Th8", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 2, "fields": {"ip": "1ZH.gKS.4pj.EhT", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 3, "fields": {"ip": "iPJ.pHE.UXs.ruG", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 4, "fields": {"ip": "Fzm.Mn9.nbe.D1z", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 5, "fields": {"ip": "JCh.X2G.RbS.XxM", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 6, "fields": {"ip": "oIT.fZd.91c.vh2", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 7, "fields": {"ip": "GIq.uyi.vMS.AVp", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 8, "fields": {"ip": "DSN.gL2.0Lp.nYS", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 9, "fields": {"ip": "JGP.bdf.6Cn.g79", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 10, "fields": {"ip": "aLh.JRN.5ub.VrO", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 11, "fields": {"ip": "aun.3uz.TKy.F44", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 12, "fields": {"ip": "9sY.3lR.pfJ.P4j", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 13, "fields": {"ip": "tgH.SPF.gO .PS3", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 14, "fields": {"ip": "q8T.oNU.PPH.D h", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 15, "fields": {"ip": "KsU.GJF.EEV.cWB", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 16, "fields": {"ip": "5Kt.ZIT.QmR.wCB", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 17, "fields": {"ip": "j50.SqW.mOw.DSI", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 18, "fields": {"ip": "3E8.ars.HSC.5Zo", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 19, "fields": {"ip": "ltH.xVS.TCt.FUa", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 20, "fields": {"ip": "3UL.xhk.SJx.aOU", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 21, "fields": {"ip": "unk.xf8. rW.9sA", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 22, "fields": {"ip": "Cs7.MEb.Jc3.LHe", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 23, "fields": {"ip": "m5g.O2b.RS2.r8r", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 24, "fields": {"ip": "QEN.7SL.jco.W7g", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 25, "fields": {"ip": "7zk.9qD.l1C.YBS", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 26, "fields": {"ip": "nxK.Z0X.80b.BOx", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 27, "fields": {"ip": "aH6.2Zm.T5u.d9R", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 28, "fields": {"ip": "g0T.QLO.ZCb.bot", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 29, "fields": {"ip": "rUE.9 g.tfx.Qfk", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 30, "fields": {"ip": "uGp.xQ .5Y5.9Nc", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 31, "fields": {"ip": "6l0.4ER.DDw.RwI", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 32, "fields": {"ip": "Nxw.dfl.hq5.K8m", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 33, "fields": {"ip": "bDl.QWN.KC7.pSQ", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 34, "fields": {"ip": "RnD.Es8.yck.vva", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 35, "fields": {"ip": "o1O.hSh.FA0.uuI", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 36, "fields": {"ip": "oze.jPZ.fkP.fEC", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 37, "fields": {"ip": "Uwa.cPZ.R1v.OP ", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 38, "fields": {"ip": "NS1.dm6.6ti.TFT", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 39, "fields": {"ip": "4Tk.50u.XmJ.ook", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 40, "fields": {"ip": "tT5.qiI.gLW.DjJ", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 41, "fields": {"ip": "hIf.LjT.h7A.Gv ", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 42, "fields": {"ip": "TWf.KU7.YiU.soO", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 43, "fields": {"ip": "wPO.H46.yGn.bq7", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 44, "fields": {"ip": "OOA.Hz8.trx.J97", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 45, "fields": {"ip": "ngu.pHZ.1em.Gj7", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 46, "fields": {"ip": "3nj.5DN.gNT.OlR", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 47, "fields": {"ip": "GPA.7oW.3ES.i4E", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 48, "fields": {"ip": "hmz.1Qt.6xL.wOR", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 49, "fields": {"ip": "3TU.hpQ.c5M.qIu", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 50, "fields": {"ip": "NAT.Fl4.h4f.H4t", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 51, "fields": {"ip": "MPd.e O.F1T.FoW", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 52, "fields": {"ip": "Jud.1cb.IgW.Iuk", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 53, "fields": {"ip": "tS8.vME.ATr.BgM", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 54, "fields": {"ip": "gh0.PWS.7 c.D4m", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 55, "fields": {"ip": "oQz.JKx.KJL.WTl", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 56, "fields": {"ip": "jfj.7f9.R8c.SF8", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 57, "fields": {"ip": "YhL.NZI.P97.hz2", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 58, "fields": {"ip": "Eyy.NhK.i1P.PSW", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 59, "fields": {"ip": "eq4.M8r.c2l.nN2", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 60, "fields": {"ip": "oYL.Kfk.l3f.fgt", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 61, "fields": {"ip": "WWy.5il.L7X.yMq", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 62, "fields": {"ip": "7jJ.cAn.Xfg.0Do", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 63, "fields": {"ip": "rOf.zbY.DCm.D2x", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 64, "fields": {"ip": "1o1.Pio.z7D.mSb", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 65, "fields": {"ip": "Uhc.I5w.0St.JQW", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 66, "fields": {"ip": "Lcj.YNr.Ern.2j6", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 67, "fields": {"ip": "zYb.n3V.DZU.4NG", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 68, "fields": {"ip": "3Vv.esS.2m5.ibk", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 69, "fields": {"ip": "VpF.VTE.yKV.f67", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 70, "fields": {"ip": "hLm.6QJ.oxX.vYE", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 71, "fields": {"ip": "3Hv.C8E.UkW.ZRZ", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 72, "fields": {"ip": "2An.AMA.6Jk.E1w", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 73, "fields": {"ip": "MWe.L0i.wdk.Ero", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 74, "fields": {"ip": "yFa.XdM.Uat.3o3", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 75, "fields": {"ip": "LjT. qK. B5.bDb", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 76, "fields": {"ip": "ufc.w I.cUW.pWg", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 77, "fields": {"ip": "w3A.Qvc.BEW.OAk", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 78, "fields": {"ip": "6at.uFL.kKh.lhD", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 79, "fields": {"ip": "V2k.Fmi.XZp.pkA", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 80, "fields": {"ip": "bkH.hcu.EiP.5yD", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 81, "fields": {"ip": "5l0.DWb.m6w.D6n", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 82, "fields": {"ip": "UoL.esA.Z0h.7t9", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 83, "fields": {"ip": "GBB.A4n.G9Y.IrM", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 84, "fields": {"ip": "BkA.ReK.6ai.U5W", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 85, "fields": {"ip": "uTO.sPz.v2M.wng", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 86, "fields": {"ip": "lPj.suA.5wH.qrD", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 87, "fields": {"ip": "VSY.rCc.VXm.wia", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 88, "fields": {"ip": "wSZ.Nui.j21.LUi", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 89, "fields": {"ip": "UWU.e1p.Srx.iBk", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 90, "fields": {"ip": "Ofx.ps7.7IN.t3C", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 91, "fields": {"ip": "CBn.T3D. r5.rOL", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 92, "fields": {"ip": "72o.nNQ.Nvq.NA4", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 93, "fields": {"ip": " G4.JSE.b5w.UUR", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 94, "fields": {"ip": " bp.6Yx.JPZ.CMs", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 95, "fields": {"ip": "xW9.z6n.2aO.CSo", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 96, "fields": {"ip": "MQS.i4v.OJI.m9X", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 97, "fields": {"ip": "E6w.404.bNe.zKm", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 98, "fields": {"ip": "t3i.MKo.ep7.Ald", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 99, "fields": {"ip": "i4H.oOJ.BYy.3w5", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "assets.asset", "pk": 100, "fields": {"ip": "tJu.cve.gBZ.43o", "other_ip": null, "remote_card_ip": null, "hostname": null, "port": 22, "username": null, "password": null, "admin_user": null, "idc": null, "mac_address": null, "brand": null, "cpu": null, "memory": null, "disk": null, "os": null, "cabinet_no": null, "cabinet_pos": null, "number": null, "sn": null, "created_by": "Fake", "is_active": true, "date_created": "2016-09-15T01:55:28Z", "comment": null, "groups": [], "system_user": [], "status": [], "type": [], "env": []}}, {"model": "contenttypes.contenttype", "pk": 1, "fields": {"app_label": "users", "model": "user"}}, {"model": "contenttypes.contenttype", "pk": 2, "fields": {"app_label": "users", "model": "usergroup"}}, {"model": "contenttypes.contenttype", "pk": 3, "fields": {"app_label": "assets", "model": "assetextend"}}, {"model": "contenttypes.contenttype", "pk": 4, "fields": {"app_label": "assets", "model": "label"}}, {"model": "contenttypes.contenttype", "pk": 5, "fields": {"app_label": "assets", "model": "systemuser"}}, {"model": "contenttypes.contenttype", "pk": 6, "fields": {"app_label": "assets", "model": "assetgroup"}}, {"model": "contenttypes.contenttype", "pk": 7, "fields": {"app_label": "assets", "model": "adminuser"}}, {"model": "contenttypes.contenttype", "pk": 8, "fields": {"app_label": "assets", "model": "idc"}}, {"model": "contenttypes.contenttype", "pk": 9, "fields": {"app_label": "assets", "model": "asset"}}, {"model": "contenttypes.contenttype", "pk": 10, "fields": {"app_label": "perms", "model": "assetpermission"}}, {"model": "contenttypes.contenttype", "pk": 11, "fields": {"app_label": "authtoken", "model": "token"}}, {"model": "contenttypes.contenttype", "pk": 12, "fields": {"app_label": "captcha", "model": "captchastore"}}, {"model": "contenttypes.contenttype", "pk": 13, "fields": {"app_label": "auth", "model": "group"}}, {"model": "contenttypes.contenttype", "pk": 14, "fields": {"app_label": "auth", "model": "permission"}}, {"model": "contenttypes.contenttype", "pk": 15, "fields": {"app_label": "contenttypes", "model": "contenttype"}}, {"model": "contenttypes.contenttype", "pk": 16, "fields": {"app_label": "sessions", "model": "session"}}, {"model": "auth.permission", "pk": 1, "fields": {"name": "Can add user", "content_type": 1, "codename": "add_user"}}, {"model": "auth.permission", "pk": 2, "fields": {"name": "Can change user", "content_type": 1, "codename": "change_user"}}, {"model": "auth.permission", "pk": 3, "fields": {"name": "Can delete user", "content_type": 1, "codename": "delete_user"}}, {"model": "auth.permission", "pk": 4, "fields": {"name": "Can add user group", "content_type": 2, "codename": "add_usergroup"}}, {"model": "auth.permission", "pk": 5, "fields": {"name": "Can change user group", "content_type": 2, "codename": "change_usergroup"}}, {"model": "auth.permission", "pk": 6, "fields": {"name": "Can delete user group", "content_type": 2, "codename": "delete_usergroup"}}, {"model": "auth.permission", "pk": 7, "fields": {"name": "Can add asset extend", "content_type": 3, "codename": "add_assetextend"}}, {"model": "auth.permission", "pk": 8, "fields": {"name": "Can change asset extend", "content_type": 3, "codename": "change_assetextend"}}, {"model": "auth.permission", "pk": 9, "fields": {"name": "Can delete asset extend", "content_type": 3, "codename": "delete_assetextend"}}, {"model": "auth.permission", "pk": 10, "fields": {"name": "Can add label", "content_type": 4, "codename": "add_label"}}, {"model": "auth.permission", "pk": 11, "fields": {"name": "Can change label", "content_type": 4, "codename": "change_label"}}, {"model": "auth.permission", "pk": 12, "fields": {"name": "Can delete label", "content_type": 4, "codename": "delete_label"}}, {"model": "auth.permission", "pk": 13, "fields": {"name": "Can add system user", "content_type": 5, "codename": "add_systemuser"}}, {"model": "auth.permission", "pk": 14, "fields": {"name": "Can change system user", "content_type": 5, "codename": "change_systemuser"}}, {"model": "auth.permission", "pk": 15, "fields": {"name": "Can delete system user", "content_type": 5, "codename": "delete_systemuser"}}, {"model": "auth.permission", "pk": 16, "fields": {"name": "Can add asset group", "content_type": 6, "codename": "add_assetgroup"}}, {"model": "auth.permission", "pk": 17, "fields": {"name": "Can change asset group", "content_type": 6, "codename": "change_assetgroup"}}, {"model": "auth.permission", "pk": 18, "fields": {"name": "Can delete asset group", "content_type": 6, "codename": "delete_assetgroup"}}, {"model": "auth.permission", "pk": 19, "fields": {"name": "Can add admin user", "content_type": 7, "codename": "add_adminuser"}}, {"model": "auth.permission", "pk": 20, "fields": {"name": "Can change admin user", "content_type": 7, "codename": "change_adminuser"}}, {"model": "auth.permission", "pk": 21, "fields": {"name": "Can delete admin user", "content_type": 7, "codename": "delete_adminuser"}}, {"model": "auth.permission", "pk": 22, "fields": {"name": "Can add idc", "content_type": 8, "codename": "add_idc"}}, {"model": "auth.permission", "pk": 23, "fields": {"name": "Can change idc", "content_type": 8, "codename": "change_idc"}}, {"model": "auth.permission", "pk": 24, "fields": {"name": "Can delete idc", "content_type": 8, "codename": "delete_idc"}}, {"model": "auth.permission", "pk": 25, "fields": {"name": "Can add asset", "content_type": 9, "codename": "add_asset"}}, {"model": "auth.permission", "pk": 26, "fields": {"name": "Can change asset", "content_type": 9, "codename": "change_asset"}}, {"model": "auth.permission", "pk": 27, "fields": {"name": "Can delete asset", "content_type": 9, "codename": "delete_asset"}}, {"model": "auth.permission", "pk": 28, "fields": {"name": "Can add asset permission", "content_type": 10, "codename": "add_assetpermission"}}, {"model": "auth.permission", "pk": 29, "fields": {"name": "Can change asset permission", "content_type": 10, "codename": "change_assetpermission"}}, {"model": "auth.permission", "pk": 30, "fields": {"name": "Can delete asset permission", "content_type": 10, "codename": "delete_assetpermission"}}, {"model": "auth.permission", "pk": 31, "fields": {"name": "Can add Token", "content_type": 11, "codename": "add_token"}}, {"model": "auth.permission", "pk": 32, "fields": {"name": "Can change Token", "content_type": 11, "codename": "change_token"}}, {"model": "auth.permission", "pk": 33, "fields": {"name": "Can delete Token", "content_type": 11, "codename": "delete_token"}}, {"model": "auth.permission", "pk": 34, "fields": {"name": "Can add captcha store", "content_type": 12, "codename": "add_captchastore"}}, {"model": "auth.permission", "pk": 35, "fields": {"name": "Can change captcha store", "content_type": 12, "codename": "change_captchastore"}}, {"model": "auth.permission", "pk": 36, "fields": {"name": "Can delete captcha store", "content_type": 12, "codename": "delete_captchastore"}}, {"model": "auth.permission", "pk": 37, "fields": {"name": "Can add group", "content_type": 13, "codename": "add_group"}}, {"model": "auth.permission", "pk": 38, "fields": {"name": "Can change group", "content_type": 13, "codename": "change_group"}}, {"model": "auth.permission", "pk": 39, "fields": {"name": "Can delete group", "content_type": 13, "codename": "delete_group"}}, {"model": "auth.permission", "pk": 40, "fields": {"name": "Can add permission", "content_type": 14, "codename": "add_permission"}}, {"model": "auth.permission", "pk": 41, "fields": {"name": "Can change permission", "content_type": 14, "codename": "change_permission"}}, {"model": "auth.permission", "pk": 42, "fields": {"name": "Can delete permission", "content_type": 14, "codename": "delete_permission"}}, {"model": "auth.permission", "pk": 43, "fields": {"name": "Can add content type", "content_type": 15, "codename": "add_contenttype"}}, {"model": "auth.permission", "pk": 44, "fields": {"name": "Can change content type", "content_type": 15, "codename": "change_contenttype"}}, {"model": "auth.permission", "pk": 45, "fields": {"name": "Can delete content type", "content_type": 15, "codename": "delete_contenttype"}}, {"model": "auth.permission", "pk": 46, "fields": {"name": "Can add session", "content_type": 16, "codename": "add_session"}}, {"model": "auth.permission", "pk": 47, "fields": {"name": "Can change session", "content_type": 16, "codename": "change_session"}}, {"model": "auth.permission", "pk": 48, "fields": {"name": "Can delete session", "content_type": 16, "codename": "delete_session"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$IKVlHhkZLSou$WCC2vTcaXwcaKlyNNIK0iHxM2T/x7Ppus5YD1LqE5fM=", "last_login": "2016-09-15T03:33:24Z", "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-14T15:34:43Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": true, "secret_key_otp": "", "_private_key": "Ii0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS1cclxuUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRFxyXG5ERUstSW5mbzogREVTLUVERTMtQ0JDLEU1NTdBQUY5RjFGNUJFODlcclxuXHJcbkljdFNjOCtKbVZ0VUNMYjZIcGdnKzc2RlQxRWtqVkppaks5R0d3dzFZdHNVcHJlcGFNSFY1TjhmQjJYbmxvVE9cclxuKzRYOXpWbS9DdWFSQ3l5KzJTdFNHNnNRcFJjM3k3c1F3eWZ2RVJjWkpiUHg2blhqRlpqeFdKWmk0UklvdzdSN1xyXG5zb3lmKzZ0c0NNVWZXYSswdXEyWE5BQ0xuWjRjTHRzVEdoZ000MnpKU2N6TGJsdVFZb2lWc1FFQkl0VWhYTTJKXHJcbjV2SzN6VlhtbVE2ZjhuTlhyZ3BZZkxwc21nNjd3UnQ5YmdtMDRQV1hlL2JpUHhRSnlPRzVWdE1UVzNPOFNDVVBcclxuR1QzN2NmV1pSOHMzRzBpV1hFelVUSEFpZHdlMTllajBtMVVwZHV0U2NMN1VwSTJqdUh0TndRN2FkNkNId3IvNlxyXG5oTTRkazc1cHBIbFdMQ0g4bXdMWmpMem01OWFUNk9VMmt6a3pTYjUxNnU0SHJQRXdEZ2YrMExXbXUzOWxRMUtWXHJcbmx1a1g1eFZyRTVDL1YzMUVLWVplb1NwTTd2Q2ZGbiswalZUR2t4aGw3dkdtOFl2dk51NCsrcWg1ZU51SXpjRU9cclxubmVGSE5KZW9sd0U0YUNZOW1oNWRQamhMeFZIRUJXSWdFRm1kNG5mMVlrN3BPbTlzV1VlWDJtbjRld0hYVmk4dlxyXG5TMnJkclg2WHMwdG1tVU5HL1ZXU0E1TlJRQ2hRVHBFd3d0NXNrOEJWV1BzSWd3RjBtN0czMmw0WFhTUTI1MXZNXHJcbldubkpPbjl2M3VjWGpkbW0yMXdqdHFsZm9tYmZwUURuaDI0cVVoSE1oSHBxc3BWeitnY3BjQXpiYjNKbDNjdENcclxuVE03MlhyMkJidWFOOWVaQkRleUhSZ25XUWtYU3RKMjB1SEpESHVmam4wbVpyOVlSZ2N6ZEpvc0RLRmsrR1ZHRVxyXG43VDdncFJtalJaVlkrdkwvY2xkdVgwcmphNmlZeFVkZjA0YVVhYmZjTThLdjUvZ2J4WUJBRnMrdTlEb2Z2MGE1XHJcbllMYkUwUG9GSG9SSUJHMUhQQ01ndzhHN2hXUEZTcWp4aEkwQStObC8rS2o1Z0xoTkRzN1Exc20zem95R05ZMnlcclxub2VIRzZWWEdEVmJRbEVqSjZubmpCZUt4QjR0Qi9PdURFdDlQUTQxVlFpZUw5Q29rbkhGUU1MbEg4UU05WjdiNVxyXG5jbktpVHNzaFlGQ2tsaUpVWDBoVmcybUFOSW5FU25wK1FJOFpUMG9MWHV3aGpPeHhqUkZ5VWkyVi9TYzlpRG41XHJcbnJsR2h3OGNhQ0U5VTBuY0VLSmpINmJHeHNKdDdNMjQ5bjlrNmlWKzY0SnNFMDk0Zm5VcUlmMWZtSmZZTkhtc0dcclxuWDNMekpwditoWm9YeUZjNjRXdW11c25BeXhCQWNHV2U2RjgwV3Y5cUJlR0cyMXM5U0tGNjJQY2lWZUJTL2NBaFxyXG5JY3luTGNHVTcwVjFOSy9XTlp1SWIva3dEbHdvZm1XSitWV2NHRGRkbFU0YnhSRlhhbSsvTFMyNVF1Skh2bjZHXHJcbkhtY2RCdVhzY3oraE9WQmtsYkQ1UHpoTXg3cTNqbXYvdWEyM1Fab2VaRHB6QURQVll3bTJVN2NtV215ZHgxOFBcclxuSE1uWlloVGdPMWJ1L2NlV0EvSmNYb0RsMXkxbktqS2wwUmg4V2xNTDFHQlhDOXRmYTJld3BpTzlFZHlSWjYwaFxyXG5jZmFLdUZFM3BUZWxCZUluRmdGSWwweVJjVy8zSjZTSGxCZGRNTlB3QlNnek5HcVA1K0lERkhwU1l0REJmZUhBXHJcbjJpbVRON0p1ejhZZCtpa1FDd3RDa3cyS0pxMWhVMFN1RjR1TnEveVRpNTAwblJhSU8xUUJ1N2pFV1VDS2xoTmVcclxuejd6RStqUUNYQTg2SURLZ3JqUTA2NmdkMGcwS29UVDl1U29wTGM2ckZkeHFJcXJ0RExCVURBU2ZyY2NBbjdJS1xyXG5xWHpyTGVwOXVYYVJjeGNRS1MxSkl4SnQ2NTluWkhNY3lrZ0ZvMEYzL1Y5NXk4ZzV3eS9PQnNUQll6YXgxYXM2XHJcbnA2aHdKZTlidDhQUTRObmd3YSt1ZGJBRS9nLzcvdEJ1QWN0L0kzTE5XZEhENUpMSGIyNXNHUT09XHJcbi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tIg:1bkMko:NwpgeKKEYr8zzdgi7xGcqHbM60c", "_public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-28T15:34:43Z", "created_by": "System", "user_permissions": [], "groups": [1]}}, {"model": "users.user", "pk": 2, "fields": {"password": "pbkdf2_sha256$30000$yTbM0j71TqJm$DUQ5AOGEGTZku1PCl693KtZGtktOl2TebVikbo/+pnc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "bonnie74", "name": "Bonnie Stanley", "email": "andrea@tagpad.name", "role": "User", "avatar": "", "wechat": "paula83", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "admin", "user_permissions": [], "groups": [1, 99]}}, {"model": "users.user", "pk": 3, "fields": {"password": "pbkdf2_sha256$30000$B1xwFMJAuRAr$cscOSKmlgUEHBYa/6wNFrxLl1vKqUJ2R19HGvGJ/L+k=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "joan94", "name": "Carol Foster", "email": "kathy@topicblab.com", "role": "Admin", "avatar": "", "wechat": "stephanie68", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "bonnie74", "user_permissions": [], "groups": [1, 71]}}, {"model": "users.user", "pk": 4, "fields": {"password": "pbkdf2_sha256$30000$iJOPMQ4Js0Ta$E3D9fc6IjzKwTY8SZclQwBTcJfP2kzHeC2FHEerS0xU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "lillian64", "name": "Frances Campbell", "email": "teresa@buzzshare.gov", "role": "Admin", "avatar": "", "wechat": "margaret91", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Suspendisse ornare consequat lectus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "joan94", "user_permissions": [], "groups": [1, 12]}}, {"model": "users.user", "pk": 5, "fields": {"password": "pbkdf2_sha256$30000$UIWBVIVgs3OM$5L/0ErLjSio/EutGd0XYue7UYuTNe0AfJ8WXqvCSKv4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "cynthia71", "name": "Margaret Ruiz", "email": "sarah@browseblab.biz", "role": "Admin", "avatar": "", "wechat": "susan85", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam faucibus cursus urna.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "joan94", "user_permissions": [], "groups": [1, 74]}}, {"model": "users.user", "pk": 6, "fields": {"password": "pbkdf2_sha256$30000$lHMLI3qcSH3I$QRavGd3dJUGIaG0gnt/4pq8pcGWCNl+6OZVkGLk68z8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "katherine70", "name": "Judith Washington", "email": "norma@pixonyx.info", "role": "Admin", "avatar": "", "wechat": "mildred72", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "admin", "user_permissions": [], "groups": [1, 13]}}, {"model": "users.user", "pk": 7, "fields": {"password": "pbkdf2_sha256$30000$nv1Q7BxGoI2C$dWEa9krCWSWMwzt0ZecO7and7wO3YgCGE+HXrvClc3Q=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "lisa86", "name": "Amy Frazier", "email": "brenda@edgeblab.edu", "role": "Admin", "avatar": "", "wechat": "sharon85", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "cynthia71", "user_permissions": [], "groups": [1, 41]}}, {"model": "users.user", "pk": 8, "fields": {"password": "pbkdf2_sha256$30000$MZIGNEGrlPEf$MTcuU1Yqz6x47DwYiJ06psFmIZwWtr02bDyxsIPK9xU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:12Z", "username": "tina63", "name": "Paula Ruiz", "email": "marilyn@twitternation.gov", "role": "User", "avatar": "", "wechat": "diane83", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:12Z", "created_by": "cynthia71", "user_permissions": [], "groups": [1, 13]}}, {"model": "users.user", "pk": 9, "fields": {"password": "pbkdf2_sha256$30000$AR5gO3nKEAtz$7zpuAPZGu0g753t/nWxqHYLLJK9qm2ctVcfC/f7qLxM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "julie92", "name": "Beverly Simpson", "email": "rebecca@yamia.mil", "role": "Admin", "avatar": "", "wechat": "rachel81", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Praesent lectus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "bonnie74", "user_permissions": [], "groups": [1, 3]}}, {"model": "users.user", "pk": 10, "fields": {"password": "pbkdf2_sha256$30000$sJOgrLoEWfL7$jaNm3yAay97Jcs5DBzWjXjYpTwnpg1KYBwYvY8q+/LE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "robin70", "name": "Susan Mendoza", "email": "melissa@pixoboo.name", "role": "Admin", "avatar": "", "wechat": "martha81", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "julie92", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 11, "fields": {"password": "pbkdf2_sha256$30000$hMUrdtxQ5EgG$1bxzOJjC06tM0Hl8ULZ3QuloGLArDTRUijlYGg7xICU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "virginia70", "name": "Lillian Thompson", "email": "tammy@trupe.biz", "role": "Admin", "avatar": "", "wechat": "kimberly80", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In blandit ultrices enim.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "tina63", "user_permissions": [], "groups": [1, 54]}}, {"model": "users.user", "pk": 12, "fields": {"password": "pbkdf2_sha256$30000$CHC8oKnRYErw$T9VvJEG9p+UVmIgvrA5QIpBzJaMvbxt4IlROsj+ScqE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "heather66", "name": "Betty Gray", "email": "susan@twitterworks.name", "role": "User", "avatar": "", "wechat": "ann68", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "bonnie74", "user_permissions": [], "groups": [1, 88]}}, {"model": "users.user", "pk": 13, "fields": {"password": "pbkdf2_sha256$30000$kerem95dK7Qy$ncmqkm62ZTzJZ1WL+dtRrD0BxNup9/EiHQl9+ilaGGY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "jacqueline88", "name": "Jean Simmons", "email": "teresa@yakidoo.name", "role": "User", "avatar": "", "wechat": "michelle94", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam faucibus cursus urna.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "admin", "user_permissions": [], "groups": [1, 18]}}, {"model": "users.user", "pk": 14, "fields": {"password": "pbkdf2_sha256$30000$WgA67aeCgkRM$j+8yC7SZ+iUZuW6yKpQrWNlA13h7kl2ngdvCpUYYmrI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "laura66", "name": "Pamela Montgomery", "email": "lillian@dabvine.com", "role": "User", "avatar": "", "wechat": "cheryl92", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec vitae nisi.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "lisa86", "user_permissions": [], "groups": [1, 101]}}, {"model": "users.user", "pk": 15, "fields": {"password": "pbkdf2_sha256$30000$IIumaITLEGcv$/7sidlSgncQeHS+ZvzuAiO8uJyfNES6r5t9i+RnjsiQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "gloria77", "name": "Tina Moore", "email": "rebecca@nlounge.mil", "role": "Admin", "avatar": "", "wechat": "lori63", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "jacqueline88", "user_permissions": [], "groups": [1, 64]}}, {"model": "users.user", "pk": 16, "fields": {"password": "pbkdf2_sha256$30000$9vfYJpuhD5n7$lZ8Tb2Oxp2KOwOINoTEkpxwtopHyQFy/gxqsfLfzL9E=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "kimberly74", "name": "Cynthia Knight", "email": "christina@tazz.net", "role": "Admin", "avatar": "", "wechat": "marie74", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "joan94", "user_permissions": [], "groups": [1, 37]}}, {"model": "users.user", "pk": 17, "fields": {"password": "pbkdf2_sha256$30000$qvAwMLep4lYG$IAZoxF1oWjPyJtSZEYZpbwC/06GfyRrxpuVFTX+6nyE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "stephanie69", "name": "Stephanie Mitchell", "email": "tammy@gabspot.gov", "role": "User", "avatar": "", "wechat": "diane71", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Curabitur at ipsum ac tellus semper interdum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "virginia70", "user_permissions": [], "groups": [1, 64]}}, {"model": "users.user", "pk": 18, "fields": {"password": "pbkdf2_sha256$30000$yb2hZR4Nl6r2$QcBAeZXMV7qYnvkgCDylHTACpCLDtxVUqfsg+bgFXjw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "tina83", "name": "Jessica Miller", "email": "cheryl@browsebug.biz", "role": "Admin", "avatar": "", "wechat": "debra77", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce consequat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "stephanie69", "user_permissions": [], "groups": [1, 74]}}, {"model": "users.user", "pk": 19, "fields": {"password": "pbkdf2_sha256$30000$ziE2wz8ndf80$xo1OHl0fnCaqM0+ZA9b16JSfb7XZQmvkFNmAqwfobBE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "stephanie78", "name": "Irene Hawkins", "email": "diana@innotype.biz", "role": "User", "avatar": "", "wechat": "sara71", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer ac neque.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "tina83", "user_permissions": [], "groups": [1, 39]}}, {"model": "users.user", "pk": 20, "fields": {"password": "pbkdf2_sha256$30000$sYONHXGdiRn1$FGIm+r2dvWMvIRzCla/WqPJHvmwpmc4xGoObFHSuWLM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "kathy65", "name": "Ruby Garza", "email": "mildred@twinte.gov", "role": "User", "avatar": "", "wechat": "robin89", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nunc purus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "tina63", "user_permissions": [], "groups": [1, 41]}}, {"model": "users.user", "pk": 21, "fields": {"password": "pbkdf2_sha256$30000$lDn2qWQc2yYN$1vNW9nRjgXqu5RuGuqjMs32Eew1bXnjtS9vSqp4lZI0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "patricia88", "name": "Wanda Kelly", "email": "karen@browseblab.com", "role": "Admin", "avatar": "", "wechat": "mary73", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam varius.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "admin", "user_permissions": [], "groups": [1, 7]}}, {"model": "users.user", "pk": 22, "fields": {"password": "pbkdf2_sha256$30000$7t0FLB3KW6SA$WYkh5ULr98tyisZFdWW7S5wNMlLsNz7PzhfWe/QO8Dw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:13Z", "username": "judith93", "name": "Beverly Hanson", "email": "shirley@ntags.net", "role": "Admin", "avatar": "", "wechat": "rachel92", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:13Z", "created_by": "lillian64", "user_permissions": [], "groups": [1, 91]}}, {"model": "users.user", "pk": 23, "fields": {"password": "pbkdf2_sha256$30000$znNvYgOuvCNQ$VO9YeB5O1IGCAy/nbUqpgshoG18B5Zrz0DF0qfCxBP8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "janice76", "name": "Rachel Warren", "email": "linda@yambee.edu", "role": "Admin", "avatar": "", "wechat": "alice79", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce consequat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "katherine70", "user_permissions": [], "groups": [1, 37]}}, {"model": "users.user", "pk": 24, "fields": {"password": "pbkdf2_sha256$30000$Qs5zbrWqzqZ5$oLcDl5JfX2Xx1WSyYooAPEZSXlz92xJ7v6kwpnWVyME=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "bonnie69", "name": "Joyce Cooper", "email": "jane@mybuzz.gov", "role": "User", "avatar": "", "wechat": "shirley77", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec posuere metus vitae ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "admin", "user_permissions": [], "groups": [1, 52]}}, {"model": "users.user", "pk": 25, "fields": {"password": "pbkdf2_sha256$30000$RrIx5IS2Ii77$ygyjb2/NemojFgyN7MD0hD795KLiztXQl1swdiJpsxU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "jane63", "name": "Frances Little", "email": "janice@yoveo.biz", "role": "Admin", "avatar": "", "wechat": "sarah69", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "janice76", "user_permissions": [], "groups": [1, 93]}}, {"model": "users.user", "pk": 26, "fields": {"password": "pbkdf2_sha256$30000$cMOC4o1WLusE$14SpC+FmWEi+M0fXetEO2+Imrku404D07e+AbdD+zpw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "deborah87", "name": "Tammy Peters", "email": "wanda@dablist.info", "role": "User", "avatar": "", "wechat": "lisa84", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "jacqueline88", "user_permissions": [], "groups": [1, 6]}}, {"model": "users.user", "pk": 27, "fields": {"password": "pbkdf2_sha256$30000$khqNw4q6bATe$7kDg72CEb5yep1UkXl6+x67d0uFK7gfcOKdwZWz41zc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "eric66", "name": "Amanda Cole", "email": "susan@skyba.edu", "role": "Admin", "avatar": "", "wechat": "angela65", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "stephanie69", "user_permissions": [], "groups": [1]}}, {"model": "users.user", "pk": 28, "fields": {"password": "pbkdf2_sha256$30000$5s7gTw39QQbA$NsgOOSPCtEf62R3jEB4wlLF14msTTV3LIbTamR9mKek=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "angela81", "name": "Rebecca Morales", "email": "laura@skiba.com", "role": "User", "avatar": "", "wechat": "evelyn93", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Duis aliquam convallis nunc.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "robin70", "user_permissions": [], "groups": [1, 16]}}, {"model": "users.user", "pk": 29, "fields": {"password": "pbkdf2_sha256$30000$DSckYQ2FEjUu$8K3i1XrX6Jv7ZzdVG2TfvGdaookEzsh/JYb/4F4OkO4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "nicole84", "name": "Jacqueline Long", "email": "linda@aibox.gov", "role": "User", "avatar": "", "wechat": "laura69", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Praesent lectus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "stephanie69", "user_permissions": [], "groups": [1, 45]}}, {"model": "users.user", "pk": 30, "fields": {"password": "pbkdf2_sha256$30000$ufE0c3a4NA2d$FCCSaGClO69MlyocQm/KhBwUbMf7wga9NL2s27rzcpU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "patricia69", "name": "Michelle Reyes", "email": "tammy@photofeed.name", "role": "Admin", "avatar": "", "wechat": "carolyn79", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Mauris lacinia sapien quis libero.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "virginia70", "user_permissions": [], "groups": [1, 82]}}, {"model": "users.user", "pk": 31, "fields": {"password": "pbkdf2_sha256$30000$G2FaLsITBp7g$phz2O4yV9k2iRm5a+lcuFJRcH1tYawrIQgZkubqoZC8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "sharon69", "name": "Margaret Bradley", "email": "tina@quamba.info", "role": "User", "avatar": "", "wechat": "sara64", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Sed vel enim sit amet nunc viverra dapibus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "laura66", "user_permissions": [], "groups": [1, 99]}}, {"model": "users.user", "pk": 32, "fields": {"password": "pbkdf2_sha256$30000$TulVgtY2Ub27$EJxHTVI/4NYWlyKo+Dk4d/iJsuLdrcN70gMbQWoF3M8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "ann87", "name": "Phyllis Meyer", "email": "betty@wikivu.edu", "role": "User", "avatar": "", "wechat": "ann79", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "patricia69", "user_permissions": [], "groups": [1, 92]}}, {"model": "users.user", "pk": 33, "fields": {"password": "pbkdf2_sha256$30000$ZMEVifwXza6c$rrVAYG/fT8Q2YBC9FmP2ZUgkGprYDc2dWmi85H8/1No=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "lois83", "name": "Judith Riley", "email": "lori@trilia.name", "role": "Admin", "avatar": "", "wechat": "marie67", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "laura66", "user_permissions": [], "groups": [1, 11]}}, {"model": "users.user", "pk": 34, "fields": {"password": "pbkdf2_sha256$30000$c5PRuduC4a0r$V6Etecsme7plCHgUgV4JccUK+51u11V7eqXqHnurzYY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "melissa84", "name": "Judith Fisher", "email": "julie@bluezoom.edu", "role": "Admin", "avatar": "", "wechat": "julie87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nulla tellus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "laura66", "user_permissions": [], "groups": [1, 99]}}, {"model": "users.user", "pk": 35, "fields": {"password": "pbkdf2_sha256$30000$8ggGlsGSu9TP$aGRk+9awfyACmrEkuRphzTZ7ornyMhwg8zKQNoPO9ug=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "sarah69", "name": "Sara Mason", "email": "christine@zoombeat.name", "role": "User", "avatar": "", "wechat": "rose89", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "virginia70", "user_permissions": [], "groups": [1, 22]}}, {"model": "users.user", "pk": 36, "fields": {"password": "pbkdf2_sha256$30000$TYpQCb6Zi75h$QzST/dPDA8Brj4vHGSJg/ZXadSiPaLUS7O2DCk/Nc3Q=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:14Z", "username": "lisa91", "name": "Debra Coleman", "email": "joyce@bubblemix.net", "role": "User", "avatar": "", "wechat": "joyce87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci.", "is_first_login": true, "date_expired": "2086-08-29T01:55:14Z", "created_by": "melissa84", "user_permissions": [], "groups": [1, 4]}}, {"model": "users.user", "pk": 37, "fields": {"password": "pbkdf2_sha256$30000$ItBS2CuGi4OW$ETaZNY1yhbiUzJJpPxTqBETqOx5bY8bZ7QJ9HVNubJo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "lisa81", "name": "Kimberly Ellis", "email": "lori@rhynyx.mil", "role": "Admin", "avatar": "", "wechat": "linda92", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer tincidunt ante vel ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "tina83", "user_permissions": [], "groups": [1, 81]}}, {"model": "users.user", "pk": 38, "fields": {"password": "pbkdf2_sha256$30000$Czlc4Lh9DzqH$ChoPoT9EzaUDHtBb5wdHgf8fRvKCrcter1zFaSGluE0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "carolyn87", "name": "Andrea Flores", "email": "teresa@edgeclub.info", "role": "User", "avatar": "", "wechat": "wanda74", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vestibulum sed magna at nunc commodo placerat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "sarah69", "user_permissions": [], "groups": [1, 96]}}, {"model": "users.user", "pk": 39, "fields": {"password": "pbkdf2_sha256$30000$gozl2rwG7Skn$Kze1I7WRzv4a0pklpyAt+wvC2rTkQ7y32frOZsgsKn4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "denise82", "name": "Wanda Rice", "email": "barbara@jabbersphere.biz", "role": "User", "avatar": "", "wechat": "jean70", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nunc purus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "nicole84", "user_permissions": [], "groups": [1, 44]}}, {"model": "users.user", "pk": 40, "fields": {"password": "pbkdf2_sha256$30000$zh3ZO7WTLm82$bdsTjDzl1MXvJWNL8hIYl9YS1YJ9pTo831EqiFfd2D4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "michelle85", "name": "Beverly Romero", "email": "andrea@yotz.edu", "role": "Admin", "avatar": "", "wechat": "judith91", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "carolyn87", "user_permissions": [], "groups": [1, 39]}}, {"model": "users.user", "pk": 41, "fields": {"password": "pbkdf2_sha256$30000$yoPKAAOx9Hdp$a7U34qlMJXphTWWN1pMV+BA0wcdle3CMFXEkUtazV5Y=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "anne65", "name": "Judy Peterson", "email": "irene@yakijo.mil", "role": "User", "avatar": "", "wechat": "kathleen68", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer ac neque.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "lisa81", "user_permissions": [], "groups": [1, 74]}}, {"model": "users.user", "pk": 42, "fields": {"password": "pbkdf2_sha256$30000$6f5CGxHQXjBP$tDX6khIvMCzuCOfSx9U7I4pRB0V5kM4ugU0WTdRkh8w=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "phyllis69", "name": "Andrea Banks", "email": "emily@skiba.edu", "role": "User", "avatar": "", "wechat": "donna68", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce consequat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "joan94", "user_permissions": [], "groups": [1, 33]}}, {"model": "users.user", "pk": 43, "fields": {"password": "pbkdf2_sha256$30000$kRjEXCXl63ra$lwtpXDY5JOg3Oi6wHeztp37t+CGhpcvRTqk1Rp49YqQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "barbara64", "name": "Tammy Stevens", "email": "patricia@talane.biz", "role": "Admin", "avatar": "", "wechat": "tina84", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "eric66", "user_permissions": [], "groups": [1, 59]}}, {"model": "users.user", "pk": 44, "fields": {"password": "pbkdf2_sha256$30000$JxFODu6sZhU7$4MKMJOO+ofE/WXui1qeSAYuLZ60GzL2XpxGEu+F5Pdc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "deborah76", "name": "Dorothy Day", "email": "elizabeth@browsezoom.gov", "role": "Admin", "avatar": "", "wechat": "andrea87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Curabitur gravida nisi at nibh.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "judith93", "user_permissions": [], "groups": [1, 30]}}, {"model": "users.user", "pk": 45, "fields": {"password": "pbkdf2_sha256$30000$xrfrSxouc3FY$WSiiICGq9IhM7en4PDNqzIXQoWzzUytpaE3cwQkWVck=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "katherine86", "name": "Angela Campbell", "email": "rebecca@feedfish.mil", "role": "User", "avatar": "", "wechat": "bonnie82", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer tincidunt ante vel ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "michelle85", "user_permissions": [], "groups": [1, 62]}}, {"model": "users.user", "pk": 46, "fields": {"password": "pbkdf2_sha256$30000$M0tJnOlIGeHQ$xqXbhzCmphUp+lQG1ghGLdUTVhvEnzfC+Yta4LgkMa8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "judy90", "name": "Amanda Carroll", "email": "paula@babbleblab.biz", "role": "Admin", "avatar": "", "wechat": "judy69", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "patricia69", "user_permissions": [], "groups": [1, 2]}}, {"model": "users.user", "pk": 47, "fields": {"password": "pbkdf2_sha256$30000$h472D89xtNj3$506FYhENOcvsebtIH2N/40UoFgHjnCO3UAMPz2i9q0U=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "rose93", "name": "Jennifer Webb", "email": "sandra@skivee.biz", "role": "Admin", "avatar": "", "wechat": "deborah71", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Sed accumsan felis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "lillian64", "user_permissions": [], "groups": [1, 20]}}, {"model": "users.user", "pk": 48, "fields": {"password": "pbkdf2_sha256$30000$WN0Ro8nyuDEi$nFj4JUyetQhnUCeQWESpjb6TUR1kIurLKpEDbt/FSeQ=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "marilyn72", "name": "Cynthia Olson", "email": "rachel@jabberstorm.edu", "role": "User", "avatar": "", "wechat": "barbara81", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Aliquam quis turpis eget elit sodales scelerisque.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "bonnie69", "user_permissions": [], "groups": [1, 2]}}, {"model": "users.user", "pk": 49, "fields": {"password": "pbkdf2_sha256$30000$1ZfVz6ss6RlK$5clrvMZxbTrv2+HDErEj2AdFGqxIGHErjVpFxgJ4Cw8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:15Z", "username": "jacqueline81", "name": "Frances Elliott", "email": "patricia@yakitri.gov", "role": "Admin", "avatar": "", "wechat": "amanda72", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:15Z", "created_by": "eric66", "user_permissions": [], "groups": [1, 41]}}, {"model": "users.user", "pk": 50, "fields": {"password": "pbkdf2_sha256$30000$8FvciDFPJdBD$9l416Fl453Zm6mi2ZO9ZgZVvO0yqOh9eMxfNc9boudc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "jennifer84", "name": "Louise Hansen", "email": "jean@blognation.net", "role": "User", "avatar": "", "wechat": "kathleen80", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam varius.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "melissa84", "user_permissions": [], "groups": [1, 25]}}, {"model": "users.user", "pk": 51, "fields": {"password": "pbkdf2_sha256$30000$BDw3WSK0ZSj4$HEBo0qI+AFVacPPuYElQSDl1n5RA0mdESF53WbWs83M=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "theresa64", "name": "Lois Fernandez", "email": "anna@eadel.edu", "role": "User", "avatar": "", "wechat": "lisa65", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "anne65", "user_permissions": [], "groups": [1, 86]}}, {"model": "users.user", "pk": 52, "fields": {"password": "pbkdf2_sha256$30000$Y4zvVQBV3RYb$S57vpWdHHTiDLPm3KbQ3ZAYCL/OerVoZa/JccyhkB9Y=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "jennifer81", "name": "Martha Willis", "email": "margaret@topicware.com", "role": "User", "avatar": "", "wechat": "jennifer88", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam vel augue.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "janice76", "user_permissions": [], "groups": [1, 10]}}, {"model": "users.user", "pk": 53, "fields": {"password": "pbkdf2_sha256$30000$muAHw50f1PJy$N3P/qa6dV//nWxZYo44lwUTTY6FVeI/3MhHsTUmmSjA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "nancy90", "name": "Tina Arnold", "email": "irene@muxo.mil", "role": "User", "avatar": "", "wechat": "carolyn68", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "julie92", "user_permissions": [], "groups": [1, 24]}}, {"model": "users.user", "pk": 54, "fields": {"password": "pbkdf2_sha256$30000$6ti6txNiKdBw$O+oePFgL3ICqQipsSQuFtWBuDEHfv9dryD+s7WBKcrw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "nancy79", "name": "Carolyn Morris", "email": "jean@quimba.mil", "role": "User", "avatar": "", "wechat": "stephanie63", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In hac habitasse platea dictumst.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "jacqueline81", "user_permissions": [], "groups": [1, 36]}}, {"model": "users.user", "pk": 55, "fields": {"password": "pbkdf2_sha256$30000$rRobV9wodYl7$9Ru4xZfQRNzpW9jSMMp/YpG8EzdAVp6TiUvrqOFlyNE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "anne82", "name": "Michelle Foster", "email": "lillian@roombo.gov", "role": "User", "avatar": "", "wechat": "elizabeth72", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "janice76", "user_permissions": [], "groups": [1, 79]}}, {"model": "users.user", "pk": 56, "fields": {"password": "pbkdf2_sha256$30000$h6faFBdaN7Ir$PQ6Qs7GmZc5AH7JyNLKTRvzeJxArrkzF0I8n+EpO+S4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "kathy64", "name": "Katherine Jackson", "email": "alice@twitterlist.name", "role": "Admin", "avatar": "", "wechat": "carol79", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Proin eu mi.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "gloria77", "user_permissions": [], "groups": [1, 8]}}, {"model": "users.user", "pk": 57, "fields": {"password": "pbkdf2_sha256$30000$c4iLKp44LRVQ$zlE9dNgPSdbgMmjE6Ge/CErPK8PQrj7sLpuMVj//hd0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "andrea85", "name": "Teresa Little", "email": "barbara@dabvine.biz", "role": "Admin", "avatar": "", "wechat": "debra72", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam vel augue.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "marilyn72", "user_permissions": [], "groups": [1, 80]}}, {"model": "users.user", "pk": 58, "fields": {"password": "pbkdf2_sha256$30000$KJw6szUO6zsF$pqWiqk/3a1dPc2zON7miii5lCuXb7RK3goN31N1cDIw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "janet86", "name": "Carolyn Ford", "email": "irene@wikivu.edu", "role": "User", "avatar": "", "wechat": "robin89", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec quis orci eget orci vehicula condimentum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "heather66", "user_permissions": [], "groups": [1, 22]}}, {"model": "users.user", "pk": 59, "fields": {"password": "pbkdf2_sha256$30000$jAZTcyzAITI4$FMAL9dQ/5fbSbVXPtpkZES/tEVFOAttUD4TbD25s6A4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "lillian65", "name": "Katherine Palmer", "email": "theresa@rooxo.mil", "role": "User", "avatar": "", "wechat": "doris64", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Curabitur gravida nisi at nibh.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "jane63", "user_permissions": [], "groups": [1, 8]}}, {"model": "users.user", "pk": 60, "fields": {"password": "pbkdf2_sha256$30000$SmrnEoxozF1L$QB1t73gAGaR3JPlXlVRcDIn9JXw6DdnhwylqQynoJJY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "brenda84", "name": "Kathleen Dean", "email": "rachel@cogibox.mil", "role": "User", "avatar": "", "wechat": "margaret73", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vivamus tortor.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "carolyn87", "user_permissions": [], "groups": [1, 20]}}, {"model": "users.user", "pk": 61, "fields": {"password": "pbkdf2_sha256$30000$g0xJWkJ7WxDf$8kn654GW+E9uKSF9L3sjtNvKS4UDCquSSGutqFNfW/A=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:16Z", "username": "paula73", "name": "Kathy Garza", "email": "diane@skidoo.edu", "role": "Admin", "avatar": "", "wechat": "dorothy92", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vestibulum sed magna at nunc commodo placerat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:16Z", "created_by": "lisa91", "user_permissions": [], "groups": [1, 76]}}, {"model": "users.user", "pk": 62, "fields": {"password": "pbkdf2_sha256$30000$0GOuM8IRehSo$ep5zLCs289Rw15TmmMW6NU0Uev6M4LTCwxU3dNYmQJs=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "nicole69", "name": "Sandra Lopez", "email": "nancy@yakitri.name", "role": "User", "avatar": "", "wechat": "frances76", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam sit amet turpis elementum ligula vehicula consequat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "lisa86", "user_permissions": [], "groups": [1, 36]}}, {"model": "users.user", "pk": 63, "fields": {"password": "pbkdf2_sha256$30000$eGI0SYEfKVrj$VGPQiaxk4GlNjf3Kr2JRxBqStLSf42knNIsgIZBALNU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "bonnie85", "name": "Kelly Chavez", "email": "cynthia@ailane.biz", "role": "Admin", "avatar": "", "wechat": "diana79", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "lillian65", "user_permissions": [], "groups": [1, 84]}}, {"model": "users.user", "pk": 64, "fields": {"password": "pbkdf2_sha256$30000$mYa0lSMe7SBm$egCzgBqBCZjYcnu7MiAUBQD5e3fh0/3vLn2JpXLlQ6s=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "sara86", "name": "Maria Sanders", "email": "kimberly@eidel.net", "role": "User", "avatar": "", "wechat": "emily85", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nulla suscipit ligula in lacus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "bonnie85", "user_permissions": [], "groups": [1, 84]}}, {"model": "users.user", "pk": 65, "fields": {"password": "pbkdf2_sha256$30000$AZnonfYt27Nz$EIKRJWiit0swQ0m8r8PaVBXEP5fVr8Bpgowb1FegVBE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "carlos80", "name": "Patricia Hudson", "email": "amanda@mudo.com", "role": "Admin", "avatar": "", "wechat": "martha64", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Praesent blandit lacinia erat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "paula73", "user_permissions": [], "groups": [1, 23]}}, {"model": "users.user", "pk": 66, "fields": {"password": "pbkdf2_sha256$30000$990fqt6iUR8W$BPq+nPIoJBfrAO0AkK/Qw1QCQNBSglgT2xKwpx1tMQI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "elizabeth63", "name": "Mary Sims", "email": "cheryl@browsetype.mil", "role": "Admin", "avatar": "", "wechat": "janet73", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Etiam pretium iaculis justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "judy90", "user_permissions": [], "groups": [1, 84]}}, {"model": "users.user", "pk": 67, "fields": {"password": "pbkdf2_sha256$30000$2F1e9rZQKC1H$X1dgFUltjCoil7Fh3me1McLZW6rjlZen7zL9GOpUvFo=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "rebecca68", "name": "Michelle Holmes", "email": "julie@plambee.biz", "role": "User", "avatar": "", "wechat": "susan76", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nam tristique tortor eu pede.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "katherine86", "user_permissions": [], "groups": [1, 28]}}, {"model": "users.user", "pk": 68, "fields": {"password": "pbkdf2_sha256$30000$IJyXJnaZ6Daa$YorHVCNkR+S6d6MHknJfjrauRdIAWXR8+a1WjT704oI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "lori73", "name": "Ruby Lawrence", "email": "ruby@tagtune.net", "role": "User", "avatar": "", "wechat": "lillian91", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "jennifer84", "user_permissions": [], "groups": [1, 97]}}, {"model": "users.user", "pk": 69, "fields": {"password": "pbkdf2_sha256$30000$D7g4k0cD3Pbj$KNTXQ6+A0HLt7SJRqT0fRpLR5WLF/w1MxqbJnCXQ5IA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "linda88", "name": "Donna Morris", "email": "annie@trupe.com", "role": "Admin", "avatar": "", "wechat": "janice93", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Suspendisse potenti.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "lillian65", "user_permissions": [], "groups": [1, 29]}}, {"model": "users.user", "pk": 70, "fields": {"password": "pbkdf2_sha256$30000$mNvDDYaDA7Ob$CZQ7mGIkdk7dbSGqUL92yG58c/xX4zrbnnFsPyaXCbA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "ruby65", "name": "Barbara Austin", "email": "christine@meezzy.info", "role": "Admin", "avatar": "", "wechat": "judy72", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras non velit nec nisi vulputate nonummy.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "jennifer81", "user_permissions": [], "groups": [1, 36]}}, {"model": "users.user", "pk": 71, "fields": {"password": "pbkdf2_sha256$30000$ZG5zSpblnVHv$+DmWQ9HV0/biw1jsweqEd1yTbnnk9/hLnfdHRVMAd7Y=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "carol83", "name": "Lisa Baker", "email": "jane@kayveo.info", "role": "Admin", "avatar": "", "wechat": "frances71", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "elizabeth63", "user_permissions": [], "groups": [1, 16]}}, {"model": "users.user", "pk": 72, "fields": {"password": "pbkdf2_sha256$30000$rho4MaMy7ZzH$El/9X5pBIiPXEQPohvRrQsoQWNHS/hg4rBFI6YYWX0I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "cheryl68", "name": "Susan Chapman", "email": "jane@gabvine.org", "role": "User", "avatar": "", "wechat": "rebecca93", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Maecenas pulvinar lobortis est.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "judith93", "user_permissions": [], "groups": [1, 22]}}, {"model": "users.user", "pk": 73, "fields": {"password": "pbkdf2_sha256$30000$anEm0e1qZe3B$BINmray3lflxUco7bbkb44PgAgYihiglgJ12j34EZzU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:17Z", "username": "kathryn79", "name": "Louise Murphy", "email": "rachel@avavee.edu", "role": "User", "avatar": "", "wechat": "heather69", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Pellentesque eget nunc.", "is_first_login": true, "date_expired": "2086-08-29T01:55:17Z", "created_by": "melissa84", "user_permissions": [], "groups": [1, 48]}}, {"model": "users.user", "pk": 74, "fields": {"password": "pbkdf2_sha256$30000$srPP9EzYb93I$ce8+nbRpenHBSAbMnuPBrdRq4G7RaFp2ULk27FPBRsA=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "ruby90", "name": "Diane Elliott", "email": "louise@leexo.name", "role": "User", "avatar": "", "wechat": "anna74", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Vestibulum ac est lacinia nisi venenatis tristique.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "lisa81", "user_permissions": [], "groups": [1, 66]}}, {"model": "users.user", "pk": 75, "fields": {"password": "pbkdf2_sha256$30000$rm77CbmRmQwd$WkEZuvokZ1zYYS8xCbK5VZTz3nSVB0+ywA0Gxr0+pdY=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "linda89", "name": "Louise Dean", "email": "michelle@npath.com", "role": "User", "avatar": "", "wechat": "brenda94", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Proin risus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "deborah87", "user_permissions": [], "groups": [1, 13]}}, {"model": "users.user", "pk": 76, "fields": {"password": "pbkdf2_sha256$30000$ZMvFYikBYWaN$8GoJyS9A/hSvgRB+UzSkV6iAp3FkVJtK1WI7IAAxD9g=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "sandra69", "name": "Laura West", "email": "pamela@ntag.edu", "role": "Admin", "avatar": "", "wechat": "linda76", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "laura66", "user_permissions": [], "groups": [1, 41]}}, {"model": "users.user", "pk": 77, "fields": {"password": "pbkdf2_sha256$30000$2KJj0hrJZveX$xJJ/mUDR6VUgbts4s9JGCynEebSHX02yIoN+Z/vkm0I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "sandra83", "name": "Patricia Nguyen", "email": "heather@dabshots.com", "role": "User", "avatar": "", "wechat": "catherine87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer ac neque.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "phyllis69", "user_permissions": [], "groups": [1, 41]}}, {"model": "users.user", "pk": 78, "fields": {"password": "pbkdf2_sha256$30000$AZYdtWL4oiET$aFNHutAWF2p8aJ6osIthOK6b3kHF5ZzXUoloZDqJJco=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "sarah77", "name": "Carol Richards", "email": "andrea@mydeo.info", "role": "Admin", "avatar": "", "wechat": "maria74", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "patricia69", "user_permissions": [], "groups": [1, 64]}}, {"model": "users.user", "pk": 79, "fields": {"password": "pbkdf2_sha256$30000$uy7N7rTghX4m$xtRdNZ5bQx5lG4je3aPhBO1ejn3re5qSEccR5R3w+Hk=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "betty91", "name": "Jessica Gray", "email": "carol@yodoo.info", "role": "User", "avatar": "", "wechat": "judith90", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Morbi a ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "melissa84", "user_permissions": [], "groups": [1, 93]}}, {"model": "users.user", "pk": 80, "fields": {"password": "pbkdf2_sha256$30000$orws1WK4ck1a$SxToLTjrJ9wYLHeDURMDfBCGjYZ3utSAUmmJx+Dbz2M=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "stephanie63", "name": "Martha Hughes", "email": "katherine@quamba.mil", "role": "User", "avatar": "", "wechat": "anna69", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nullam varius.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "jacqueline88", "user_permissions": [], "groups": [1, 68]}}, {"model": "users.user", "pk": 81, "fields": {"password": "pbkdf2_sha256$30000$9uAN25AaYrN9$Axz7EkHzfM1XVgS30jrBbV2YjNtol8cwKTZBH4UYXc4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "beverly79", "name": "Wanda Butler", "email": "kathleen@viva.edu", "role": "User", "avatar": "", "wechat": "teresa64", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In quis justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "jennifer84", "user_permissions": [], "groups": [1, 87]}}, {"model": "users.user", "pk": 82, "fields": {"password": "pbkdf2_sha256$30000$XSCXwKOSMkv7$cLvc9ilhhS7eET95+DA0XuBM6cCw7kTLfTWLnNmNziU=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "judy75", "name": "Frances Ross", "email": "ruth@oyondu.com", "role": "User", "avatar": "", "wechat": "norma83", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Nulla suscipit ligula in lacus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "bonnie85", "user_permissions": [], "groups": [1]}}, {"model": "users.user", "pk": 83, "fields": {"password": "pbkdf2_sha256$30000$dDIouWmOTgbc$UIsnigZXUP5AaQ+fEGQGnwJoYqtDHFp1gcoaLrZL2Ow=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "mildred83", "name": "Melissa Banks", "email": "brenda@twitterwire.com", "role": "Admin", "avatar": "", "wechat": "brenda88", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Curabitur in libero ut massa volutpat convallis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "jennifer81", "user_permissions": [], "groups": [1, 96]}}, {"model": "users.user", "pk": 84, "fields": {"password": "pbkdf2_sha256$30000$HXmeR1kfq6N5$S1Ng7jQNTeZGRmwWWivUa/azHI4+1nQ2IgFFrZT9CiE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "anne91", "name": "Catherine Bailey", "email": "tammy@jabbersphere.info", "role": "User", "avatar": "", "wechat": "wanda77", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "joan94", "user_permissions": [], "groups": [1, 67]}}, {"model": "users.user", "pk": 85, "fields": {"password": "pbkdf2_sha256$30000$8t9jr25DEX2M$oWDX+5WAXy+ncQZ3a1cCpWylybahtaZjcA1JVObm8mw=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "ruby79", "name": "Rebecca Greene", "email": "amy@jazzy.gov", "role": "User", "avatar": "", "wechat": "helen78", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec quis orci eget orci vehicula condimentum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "carlos80", "user_permissions": [], "groups": [1, 74]}}, {"model": "users.user", "pk": 86, "fields": {"password": "pbkdf2_sha256$30000$lUKpfJXuSH9w$GiEpV/YNed080JXRPrSSeqBqyjIxKko1gdnPkF6xdbM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:18Z", "username": "tina75", "name": "Jean Pierce", "email": "joan@quinu.mil", "role": "Admin", "avatar": "", "wechat": "rebecca87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque id justo sit amet sapien dignissim vestibulum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:18Z", "created_by": "sarah69", "user_permissions": [], "groups": [1, 72]}}, {"model": "users.user", "pk": 87, "fields": {"password": "pbkdf2_sha256$30000$m7ZoQnIldps7$Ky7ZmY61QRK/Hm5oTf3KgIRXxqzSf7knJxOq8l4+McM=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "joyce73", "name": "Cheryl Bryant", "email": "denise@myworks.biz", "role": "Admin", "avatar": "", "wechat": "kathryn82", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec posuere metus vitae ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "rebecca68", "user_permissions": [], "groups": [1, 8]}}, {"model": "users.user", "pk": 88, "fields": {"password": "pbkdf2_sha256$30000$PyDh6KFIkNi9$PyHeNzexW/ksT09D3gK1czE5sUKopyO0G/dGylcyJ+0=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "lois67", "name": "Barbara Kelly", "email": "kelly@divavu.edu", "role": "User", "avatar": "", "wechat": "kathleen87", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Integer tincidunt ante vel ipsum.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "judy75", "user_permissions": [], "groups": [1, 71]}}, {"model": "users.user", "pk": 89, "fields": {"password": "pbkdf2_sha256$30000$3ewpjVwGjV0r$O2efrXjrLkovn0gDzxtt430kugxtDujUR2lTahtxYbE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "helen80", "name": "Phyllis Jordan", "email": "marilyn@youopia.name", "role": "User", "avatar": "", "wechat": "catherine91", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec ut mauris eget massa tempor convallis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "virginia70", "user_permissions": [], "groups": [1, 82]}}, {"model": "users.user", "pk": 90, "fields": {"password": "pbkdf2_sha256$30000$YCN7Y4OXGe9j$BC4apeXu9hZUlndOmBnkWULvT5JhcuCVLXBZvpwtB9s=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "katherine65", "name": "Elizabeth Peterson", "email": "mildred@feedspan.gov", "role": "User", "avatar": "", "wechat": "brenda73", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "In est risus, auctor sed, tristique in, tempus sit amet, sem.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "kathy64", "user_permissions": [], "groups": [1, 71]}}, {"model": "users.user", "pk": 91, "fields": {"password": "pbkdf2_sha256$30000$ztfF2R3gx3AV$KZByDcNg/3eDFTXij2lRyv/1TmEG+jAZB+/FLBeRT8c=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "kimberly64", "name": "Amy Coleman", "email": "rose@kazio.mil", "role": "User", "avatar": "", "wechat": "tammy82", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Morbi quis tortor id nulla ultrices aliquet.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "kathryn79", "user_permissions": [], "groups": [1, 70]}}, {"model": "users.user", "pk": 92, "fields": {"password": "pbkdf2_sha256$30000$U5IKqQEDwcX7$E8Cbiw4czEFLfwPPqSQ+aHhABwDe7DuDwlDZXa8amio=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "doris67", "name": "Lori Ross", "email": "frances@riffpedia.edu", "role": "User", "avatar": "", "wechat": "tina92", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "sandra83", "user_permissions": [], "groups": [1, 24]}}, {"model": "users.user", "pk": 93, "fields": {"password": "pbkdf2_sha256$30000$SRFrehlptcfI$wdD+DbNfxWceUx1LWmQAya+E7ERQQFszoN7ju9OiTvI=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "louise68", "name": "Mildred Hanson", "email": "martha@tagchat.mil", "role": "User", "avatar": "", "wechat": "denise75", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Maecenas rhoncus aliquam lacus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "sarah77", "user_permissions": [], "groups": [1, 26]}}, {"model": "users.user", "pk": 94, "fields": {"password": "pbkdf2_sha256$30000$1VmciJRCgLkF$7wvjjaIXn6qJnBhoEXoc3sZ4SVwogj5wVmhPqzFIZqE=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "jessica89", "name": "Virginia Stone", "email": "kathleen@vinder.edu", "role": "Admin", "avatar": "", "wechat": "cynthia71", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras in purus eu magna vulputate luctus.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "jane63", "user_permissions": [], "groups": [1, 6]}}, {"model": "users.user", "pk": 95, "fields": {"password": "pbkdf2_sha256$30000$F4xh4xhxFepR$MjkKz+TeEtlG19OsWDXuNsV0g1J9nOuFvY5Ou1Wyx/g=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "kathleen90", "name": "Julie Bailey", "email": "louise@reallinks.com", "role": "Admin", "avatar": "", "wechat": "wanda67", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque ut erat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "gloria77", "user_permissions": [], "groups": [1, 85]}}, {"model": "users.user", "pk": 96, "fields": {"password": "pbkdf2_sha256$30000$Bu3uw0GnHZ8X$mDHWUyNZKiWpXhf14hKbKDJvmrw+5J4+7WkryqaUFvs=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "theresa84", "name": "Rachel Lawson", "email": "evelyn@pixonyx.info", "role": "User", "avatar": "", "wechat": "cynthia84", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Quisque ut erat.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "tina63", "user_permissions": [], "groups": [1, 70]}}, {"model": "users.user", "pk": 97, "fields": {"password": "pbkdf2_sha256$30000$o2InNwJyGjqv$RtvS2Rjl0AWNepVJI3aELIFuwSyxMD93LdJcXkECAn4=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "helen64", "name": "Mary Cunningham", "email": "laura@katz.biz", "role": "User", "avatar": "", "wechat": "annie93", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "kathryn79", "user_permissions": [], "groups": [1, 88]}}, {"model": "users.user", "pk": 98, "fields": {"password": "pbkdf2_sha256$30000$nbkZrF7fDTCL$Gs2AA+54g4/muEQBrlYxgILMLN3EKwi7hLcX7UEsQgc=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "evelyn78", "name": "Irene White", "email": "ann@jabbercube.com", "role": "User", "avatar": "", "wechat": "elizabeth90", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "sara86", "user_permissions": [], "groups": [1, 90]}}, {"model": "users.user", "pk": 99, "fields": {"password": "pbkdf2_sha256$30000$LRQ6c9p5TaHK$ZR1LflnFcbrFu287KB82Rlz18zEBaSCMdZTLjXx60Q8=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-15T01:55:19Z", "username": "jane86", "name": "Denise Davis", "email": "bonnie@eidel.com", "role": "Admin", "avatar": "", "wechat": "susan84", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Curabitur in libero ut massa volutpat convallis.", "is_first_login": true, "date_expired": "2086-08-29T01:55:19Z", "created_by": "carolyn87", "user_permissions": [], "groups": [1, 96]}}, {"model": "authtoken.token", "pk": "0052f4d9b32f048bbd82bdd78b6e3089bb01bd2b", "fields": {"user": 77, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "063c7c58e2873bead8bbf29ecf9551f04ec77680", "fields": {"user": 33, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "077b9ce3bfe3e1147532902dada3cabbc1ceb5e1", "fields": {"user": 1, "created": "2016-09-14T15:34:43Z"}}, {"model": "authtoken.token", "pk": "0a818ff504de3ca8c2e08c2d9c68eed8d46fe9a1", "fields": {"user": 11, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "0b89fb24dcd3fbbd8bc5e85434c6d78869f7351f", "fields": {"user": 46, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "0cf3cd51ff1f526f5d0cecf5c8dedaa6e318645c", "fields": {"user": 64, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "0f62e2271f3e7c4e3471da1f3ef82777d7e799ae", "fields": {"user": 32, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "12a99652b335ead9b880a6752bb2c562a9511636", "fields": {"user": 47, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "132968929c1f44bf9bfcdd7955ac53a5b2a8c745", "fields": {"user": 18, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "14798fe789c1180faf00e52e3bb79ff5a47c8d43", "fields": {"user": 42, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "15a17d944cad348deca2ef3b834fc7dd63247860", "fields": {"user": 6, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "162dd083febc79004495190a3821d63ae48866b3", "fields": {"user": 94, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "174aaeabc95f0c43a74c7a4abd42a055b88cd5a6", "fields": {"user": 65, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "17f84f34d96cae1be23814ab1b273c14f47d9eff", "fields": {"user": 74, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "258c867538c3dc1a7ba91ec0451588b4532af5eb", "fields": {"user": 85, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "27198516f392eae6e1b573c58a16b2c7e66096b0", "fields": {"user": 72, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "29ac945773f8b90d8062fa171edf66e332d2f942", "fields": {"user": 49, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "2b66ed29cdc0503d08a93185315c567d48be3ec8", "fields": {"user": 12, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "2f42e915df0ceae877bc17a705b907af74ccc196", "fields": {"user": 62, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "2f51aec4240d5dec1103b1b4681692f5ff78d18d", "fields": {"user": 67, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "32ab6bbda35d8032a40096b768f00ba000b19846", "fields": {"user": 3, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "33476ce7224222f8d0600230d4b0a9b83c50d387", "fields": {"user": 57, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "3bd78b8360870becc45f952e20a5cbdb293b59c2", "fields": {"user": 36, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "3e6f61f6d77129991a26ddf83a6f317556a61a53", "fields": {"user": 75, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "3f18ba1a5d815b958538904e51bbb990408fca26", "fields": {"user": 2, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "4096d6ed67e12d7dd63d27b87c155a328dffca28", "fields": {"user": 60, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "42da7a87648dd1a6e172d63ee7f6c743ec642237", "fields": {"user": 83, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "450379e85f2839dbff7cbd5243da8a25b4280a97", "fields": {"user": 78, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "474942254cedf9972161fb96eab79a32f0dae7dd", "fields": {"user": 88, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "48c1e83245fbca16c008b295ba47223e8cee251b", "fields": {"user": 24, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "490440da4da363d2a338f424e576829d25109c1f", "fields": {"user": 71, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "4f5770ad3b5305f518cfe9531bb190e254672ead", "fields": {"user": 73, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "4fad3d0bf66e04699bac60b399c2b055726fee91", "fields": {"user": 91, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "526131bf8ca38ac65a2417c9d8af87d181360a51", "fields": {"user": 95, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "55d81e2650f5c94356d2db022d6f52de87f5037c", "fields": {"user": 10, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "56b72c93c249fa199651df5b8c7e7ea50b651648", "fields": {"user": 9, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "596aae3ab94eefcc304d609d3b525918fb0bb708", "fields": {"user": 14, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "63cb55f9220696383ccd8b748fc61f6c54f83da1", "fields": {"user": 45, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "64ff8a3fe8e004d192a4fb32b0e61395cadf5fdf", "fields": {"user": 28, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "65dcacc5fc2bb2bafbe20e40e6c103c472b8ddbf", "fields": {"user": 44, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "67fc4320b885e9c7cb056eea008b47ba1bfa4408", "fields": {"user": 80, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "6adcf213cfad9559fcbffbcb6db2fc6a0144d00b", "fields": {"user": 34, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "6b859b44bf73d70dae1baa9922f307b018ccaaef", "fields": {"user": 29, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "6bd96294132c03417d3e32180790deaa41eecde6", "fields": {"user": 63, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "6eee1352b3a7f20467a3e8bf8b718369e9daabe3", "fields": {"user": 52, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "6f7fb132213b495b946b1fcc49ed3bf366d9818d", "fields": {"user": 96, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "6fea9a08ca65a17067ae9a373c2c33b8cfa9d4b7", "fields": {"user": 21, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "71a18ea26318d42de342e0b96082a1b155cf240f", "fields": {"user": 89, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "727a8a6446a3fa98da82162111d3274bcb784886", "fields": {"user": 40, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "7503bd5d951691ae60a05435be255774c4a97049", "fields": {"user": 20, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "781077e250503c0dbfb14722d8badc6dd1e7a700", "fields": {"user": 61, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "7b867a5632756d436009c84421dbc14e06dc46c3", "fields": {"user": 54, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "7e568eba6054d39b65cd026ab8f2d8a475c88415", "fields": {"user": 55, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "85efaf02b19a224bc749c0bb99ee82a6fda119d1", "fields": {"user": 68, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "86425234af7f6f044bd50516dbffd520871eadc5", "fields": {"user": 17, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "87b741af6785494d68af310c4465cfe07e7c728d", "fields": {"user": 39, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "891e8b9ad3ce558aeab4e98daf4d7a811afa9709", "fields": {"user": 90, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "893137746504f500b297478ea30b63df301f946a", "fields": {"user": 79, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "8bf67db798fce8129b51b8cefa3f372ad6bb2d5e", "fields": {"user": 70, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "8d02135b8f789d855511da02f700ac18669c4834", "fields": {"user": 48, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "8dd57211cdae4436b2eed83336b2f12f444f1052", "fields": {"user": 87, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "8f0a8790af4d1e55002fbd1c6eca1444fe91cfca", "fields": {"user": 7, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "96151a96e03feefb09f7ea86625bab693253661a", "fields": {"user": 37, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "96e6f5c3e309c8ad8c1d7c8878b41b56cde3ceee", "fields": {"user": 27, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "97759930a8cc3e9adaba6a291e274c2aabd89ded", "fields": {"user": 31, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "994610158c0a223ecff8f05ba2fb1e970e54a318", "fields": {"user": 26, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "99fd4d123474fee0364d16a92676af99ed15d36f", "fields": {"user": 66, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "9cd9ed991bae13b02886d5a5e6110ac31b8d3712", "fields": {"user": 81, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "9d6aa86d49ad31b4740c227edb28f6f4c8d87a24", "fields": {"user": 8, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "9efedb9c8470613fa518e3bc470ea865365447a2", "fields": {"user": 35, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "a39a81849cd68c5fd1604fb02011157db5a479ef", "fields": {"user": 97, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "a461ec72157bdba40a1dd35f4c757ab4c8d55085", "fields": {"user": 93, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "a59365a3beb40c1214ace0be23fea00a39bbb5c7", "fields": {"user": 98, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "ade619e8cf991ab2af8d8f9810da4056041aa113", "fields": {"user": 56, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "b13695f80f650c85d41ad003bfd3bece61f95da3", "fields": {"user": 43, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "b64314163e0f6d6d7400895a24df567e8c2da378", "fields": {"user": 41, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "b8868b92dbc83914f7751373553863eb782426d8", "fields": {"user": 38, "created": "2016-09-15T01:55:15Z"}}, {"model": "authtoken.token", "pk": "ba06d7f8a970127e0c38a79181eb97bce06935fd", "fields": {"user": 16, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "bb5da543ae0dd5be4b3b205dca863e5a48b0bcd3", "fields": {"user": 50, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "bc47ea0ba3b775969c439363be1efcf636cfc579", "fields": {"user": 86, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "c17f59dc47af6bf154df09a574429d8cd0affd59", "fields": {"user": 30, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "cb79ea2b425c503abff0a3ec11c5653f3e237326", "fields": {"user": 51, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "e1b7d0309c65fbbc958d7df2ab9248857f0da4c3", "fields": {"user": 5, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "e5055424e2239d0161eb7627d29e5c173dca28bc", "fields": {"user": 23, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "e67e6cd279c7d0029495f15882dfd88c69ad69b1", "fields": {"user": 22, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "e8d084f1ec91977253916104b6df590bdd49a632", "fields": {"user": 69, "created": "2016-09-15T01:55:17Z"}}, {"model": "authtoken.token", "pk": "e9f2200e6a35ab55bf65d0519b3e64cb7e1d0463", "fields": {"user": 4, "created": "2016-09-15T01:55:12Z"}}, {"model": "authtoken.token", "pk": "e9ff60aaf9eeba3f0da292e05ae84fa51fd78eaf", "fields": {"user": 92, "created": "2016-09-15T01:55:19Z"}}, {"model": "authtoken.token", "pk": "ec04f367d2865eb0a42e0ec67d8a0b17bce384ba", "fields": {"user": 84, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "ec5bff72ee0aeeb669a7f6cea660d1cbc40bd555", "fields": {"user": 19, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "ec85a152209f68bbed0435696a4d6b650bba58d7", "fields": {"user": 53, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "edc41450fe78c8425d8ac97fc301335f95451166", "fields": {"user": 25, "created": "2016-09-15T01:55:14Z"}}, {"model": "authtoken.token", "pk": "ef9fe285acf84987ac730747316fe66f25b91f82", "fields": {"user": 59, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "f02b33b00c3cb4c6030e9ff5930ab62a55b4080f", "fields": {"user": 13, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "f31869c9e99235a75e366148c19928c55043e64c", "fields": {"user": 82, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "f31f4d4b16f20656b4b9c1107fcba6214a63329a", "fields": {"user": 76, "created": "2016-09-15T01:55:18Z"}}, {"model": "authtoken.token", "pk": "f44d67aa9abf09fc87299a35c7d0f3cc0afb4469", "fields": {"user": 15, "created": "2016-09-15T01:55:13Z"}}, {"model": "authtoken.token", "pk": "fb5c5e8412eda7187cfe1d6ef349be3d79a7bb46", "fields": {"user": 58, "created": "2016-09-15T01:55:16Z"}}, {"model": "authtoken.token", "pk": "fcfd1cd0c6d5a7ab40297aa1a36bf0b20d3f48fa", "fields": {"user": 99, "created": "2016-09-15T01:55:19Z"}}]
\ No newline at end of file
diff --git a/apps/fixtures/users.json b/apps/fixtures/users.json
index a9b504052..dc4c209f0 100644
--- a/apps/fixtures/users.json
+++ b/apps/fixtures/users.json
@@ -1 +1 @@
-[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_added": "2016-09-05T11:39:25.770Z", "created_by": "System"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$5ReHkQOQA2Hk$DIW0b5U/uK+U0xqjA3QpYvBcODNhm2MPCm7YWbQys3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:39:25.771Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": false, "secret_key_otp": "", "private_key": "", "public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-19T11:39:25.771Z", "created_by": "System", "user_permissions": [], "groups": [1]}}]
\ No newline at end of file
+[{"model": "users.usergroup", "pk": 1, "fields": {"name": "Default", "comment": "Default user group for all user", "date_created": "2016-09-05T11:39:25.770Z", "created_by": "System"}}, {"model": "users.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$30000$5ReHkQOQA2Hk$DIW0b5U/uK+U0xqjA3QpYvBcODNhm2MPCm7YWbQys3I=", "last_login": null, "first_name": "", "last_name": "", "is_active": true, "date_joined": "2016-09-05T11:39:25.771Z", "username": "admin", "name": "Administrator", "email": "admin@jumpserver.org", "role": "Admin", "avatar": "", "wechat": "", "phone": "", "enable_otp": false, "secret_key_otp": "", "_private_key": "", "_public_key": "", "comment": "Administrator is the super user of system", "is_first_login": false, "date_expired": "2086-08-19T11:39:25.771Z", "created_by": "System", "user_permissions": [], "groups": [1]}}]
\ No newline at end of file
diff --git a/apps/jumpserver/settings.py b/apps/jumpserver/settings.py
index 0e8487b2a..31c39fe49 100644
--- a/apps/jumpserver/settings.py
+++ b/apps/jumpserver/settings.py
@@ -108,6 +108,7 @@ TEMPLATES = [
# WSGI_APPLICATION = 'jumpserver.wsgi.application'
LOGIN_REDIRECT_URL = reverse_lazy('index')
+LOGIN_URL = reverse_lazy('users:login')
# Database
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
@@ -227,7 +228,7 @@ USE_L10N = True
USE_TZ = True
# I18N translation
-LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale'),]
+LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale'), ]
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/
@@ -313,3 +314,5 @@ CAPTCHA_IMAGE_SIZE = (75, 33)
CAPTCHA_FOREGROUND_COLOR = '#001100'
#
+SESSION_COOKIE_AGE = 10800 # 3 hours
+SESSION_SAVE_EVERY_REQUEST = True
diff --git a/apps/jumpserver/urls.py b/apps/jumpserver/urls.py
index 0c1b83403..e593e60a8 100644
--- a/apps/jumpserver/urls.py
+++ b/apps/jumpserver/urls.py
@@ -17,7 +17,6 @@ from django.conf.urls import url, include
from django.conf import settings
from django.conf.urls.static import static
from django.views.generic.base import TemplateView
-from django.http import HttpResponseRedirect
urlpatterns = [
@@ -25,6 +24,7 @@ urlpatterns = [
url(r'^$', TemplateView.as_view(template_name='base.html'), name='index'),
url(r'^(api/)?users/', include('users.urls')),
url(r'^assets/', include('assets.urls')),
+ url(r'^perms/', include('perms.urls')),
url(r'^terminal/', include('webterminal.urls')),
]
diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo
index e6457f782..58a2c50f2 100644
Binary files a/apps/locale/zh/LC_MESSAGES/django.mo and b/apps/locale/zh/LC_MESSAGES/django.mo differ
diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po
index 3a1181aca..230d1b0f1 100644
--- a/apps/locale/zh/LC_MESSAGES/django.po
+++ b/apps/locale/zh/LC_MESSAGES/django.po
@@ -8,301 +8,1057 @@ msgid ""
msgstr ""
"Project-Id-Version: Jumpserver 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-09-05 20:18+0800\n"
+"POT-Creation-Date: 2016-09-15 12:13+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: ibuler \n"
"Language-Team: Jumpserver team\n"
-"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: zh_CN\n"
-#: assets/forms.py:20
-msgid "Join assetgroups"
-msgstr "添加到用户组"
+#: assets/forms.py:19 assets/forms.py:156 perms/forms.py:27
+#: perms/templates/perms/asset_permission_asset_list.html:139
+msgid "Select asset groups"
+msgstr "添加到资产组"
-#: assets/models.py:9 assets/models.py:21 assets/models.py:54
-#: assets/models.py:76 assets/templates/assets/assetgroup_list.html:12
-#: users/models.py:60 users/models.py:107
-#: users/templates/users/user_detail.html:69
-#: users/templates/users/user_list.html:12
-msgid "Name"
-msgstr "名称"
-
-#: assets/models.py:10 assets/models.py:29 assets/models.py:42
-#: assets/models.py:61 assets/models.py:90 assets/models.py:125
-#: assets/models.py:145 users/models.py:122
-#: users/templates/users/user_detail.html:101
-msgid "Created by"
-msgstr "创建者"
-
-#: assets/models.py:11 assets/models.py:30 assets/models.py:44
-#: assets/models.py:62 assets/models.py:91 assets/models.py:128
-#: assets/models.py:147 assets/templates/assets/assetgroup_list.html:14
-#: users/models.py:61 users/models.py:118
-#: users/templates/users/user_detail.html:113
-msgid "Comment"
-msgstr "备注"
-
-#: assets/models.py:22
-msgid "Bandwidth"
-msgstr "带宽"
-
-#: assets/models.py:23
-msgid "Contact"
-msgstr "联系人"
-
-#: assets/models.py:24 users/models.py:113
-#: users/templates/users/user_detail.html:82
-msgid "Phone"
-msgstr "手机"
-
-#: assets/models.py:25
-msgid "Address"
-msgstr "地址"
-
-#: assets/models.py:26
-msgid "Network"
-msgstr "网络"
-
-#: assets/models.py:27 assets/models.py:127
-msgid "Date added"
-msgstr "加入日期"
-
-#: assets/models.py:28
-msgid "Operator"
-msgstr "运营商"
-
-#: assets/models.py:40 assets/models.py:142
-msgid "KEY"
-msgstr "KEY"
-
-#: assets/models.py:41 assets/models.py:143
-msgid "VALUE"
-msgstr "VALUE"
-
-#: assets/models.py:55 assets/models.py:77 users/forms.py:12
-#: users/models.py:106 users/templates/users/login.html:54
-#: users/templates/users/user_detail.html:73
-#: users/templates/users/user_edit.html:5
-#: users/templates/users/user_list.html:13
-msgid "Username"
-msgstr "用户名"
-
-#: assets/models.py:56 assets/models.py:78 users/forms.py:13
-#: users/templates/users/login.html:57
-#: users/templates/users/reset_password.html:52
-#: users/templates/users/user_add.html:8 users/templates/users/user_add.html:10
-#: users/templates/users/user_edit.html:12
-#: users/templates/users/user_edit.html:14
-msgid "Password"
-msgstr "密码"
-
-#: assets/models.py:57 assets/models.py:80
-msgid "SSH private key"
-msgstr "ssh密钥"
-
-#: assets/models.py:58 assets/models.py:82
-msgid "As default"
-msgstr "默认使用"
-
-#: assets/models.py:59 assets/models.py:84
-msgid "Auto update pass/key"
-msgstr "自动更新密码/密钥"
-
-#: assets/models.py:79
-msgid "Protocol"
-msgstr "协议"
-
-#: assets/models.py:81
-msgid "SSH public key"
-msgstr "ssh公钥"
-
-#: assets/models.py:83
-msgid "Auto push"
-msgstr "自动推送"
-
-#: assets/models.py:85
-msgid "Sudo"
-msgstr "Sudo"
-
-#: assets/models.py:86
-msgid "Shell"
-msgstr "Shell"
-
-#: assets/models.py:87 templates/_header_bar.html:35 templates/_nav.html:4
-msgid "Home"
-msgstr "仪表盘"
-
-#: assets/models.py:88
-msgid "Uid"
-msgstr "Uid"
-
-#: assets/models.py:101
-msgid "IP"
-msgstr "IP"
-
-#: assets/models.py:102
-msgid "Other IP"
-msgstr "其它IP"
-
-#: assets/models.py:103
-msgid "Remote card IP"
-msgstr "远控卡IP"
-
-#: assets/models.py:104
-msgid "Hostname"
-msgstr "主机名"
-
-#: assets/models.py:105
-msgid "Port"
-msgstr "端口"
-
-#: assets/models.py:106
-msgid "Asset groups"
-msgstr "用户组"
-
-#: assets/models.py:107 assets/models.py:109 templates/_nav.html:24
-msgid "Admin user"
-msgstr "管理用户"
-
-#: assets/models.py:108
-msgid "Admin password"
-msgstr "管理员密码"
-
-#: assets/models.py:111 templates/_nav.html:23
-msgid "IDC"
-msgstr "机房"
-
-#: assets/models.py:112
-msgid "Mac address"
-msgstr "Mac地址"
-
-#: assets/models.py:113
-msgid "Brand"
-msgstr "品牌"
-
-#: assets/models.py:114
-msgid "CPU"
-msgstr "CPU"
-
-#: assets/models.py:115
-msgid "Memory"
-msgstr "内存"
-
-#: assets/models.py:116
-msgid "Disk"
-msgstr "硬盘"
-
-#: assets/models.py:117
-msgid "OS"
-msgstr "操作系统"
-
-#: assets/models.py:118
-msgid "Cabinet number"
-msgstr "机柜编号"
-
-#: assets/models.py:119
-msgid "Cabinet position"
-msgstr "机柜层号"
-
-#: assets/models.py:120
-msgid "Asset number"
-msgstr "资产编号"
-
-#: assets/models.py:121
-msgid "Asset status"
-msgstr "资产状态"
-
-#: assets/models.py:122
-msgid "Asset type"
-msgstr "系统类型"
-
-#: assets/models.py:123
-msgid "Asset environment"
-msgstr "资产环境"
-
-#: assets/models.py:124
-msgid "Serial number"
-msgstr "序列号"
-
-#: assets/models.py:126
-msgid "Is active"
-msgstr "是否激活"
-
-#: assets/models.py:144 assets/templates/assets/assetgroup_add.html:35
+#: assets/forms.py:26 assets/forms.py:57 assets/forms.py:88
+#: assets/forms.py:146 assets/models.py:322
+#: perms/templates/perms/asset_permission_create_update.html:40
#: templates/_nav.html:21
msgid "Asset"
msgstr "资产"
-#: assets/templates/assets/assetgroup_add.html:16
-#: assets/templates/assets/assetgroup_list.html:5 assets/views.py:60
-msgid "Create asset group"
-msgstr "创建资产组"
-
-#: assets/templates/assets/assetgroup_add.html:37
-msgid "Select asset"
+#: assets/forms.py:29 assets/forms.py:60 assets/forms.py:91
+#: assets/forms.py:149 perms/forms.py:25
+msgid "Select assets"
msgstr "选择资产"
-#: assets/templates/assets/assetgroup_add.html:49
+#: assets/forms.py:79 assets/forms.py:134 assets/forms.py:206
+#: assets/models.py:14 assets/models.py:88 assets/models.py:153
+#: assets/models.py:222 assets/templates/assets/admin_user_detail.html:50
+#: assets/templates/assets/admin_user_list.html:10
+#: assets/templates/assets/asset_group_detail.html:46
+#: assets/templates/assets/asset_group_list.html:12
+#: assets/templates/assets/idc_list.html:10
+#: assets/templates/assets/system_user_asset_group.html:53
+#: assets/templates/assets/system_user_detail.html:55
+#: assets/templates/assets/system_user_list.html:10 perms/models.py:19
+#: perms/templates/perms/asset_permission_create_update.html:33
+#: perms/templates/perms/asset_permission_detail.html:56
+#: perms/templates/perms/asset_permission_list.html:12
+#: perms/templates/perms/asset_permission_user_list.html:66
+#: perms/templates/perms/perm_user_asset_list.html:12 users/models.py:20
+#: users/models.py:67 users/templates/users/user_detail.html:54
+#: users/templates/users/user_list.html:12
+msgid "Name"
+msgstr "名称"
+
+#: assets/forms.py:96 assets/forms.py:161
+msgid "If also set private key, use that first"
+msgstr "如果设置私钥,则优先使用私钥"
+
+#: assets/forms.py:135 assets/forms.py:207 assets/models.py:89
+#: assets/models.py:154 assets/templates/assets/admin_user_detail.html:54
+#: assets/templates/assets/admin_user_list.html:11
+#: assets/templates/assets/system_user_detail.html:59
+#: assets/templates/assets/system_user_list.html:11
+#: perms/templates/perms/asset_permission_user_list.html:67
+#: perms/templates/perms/perm_user_asset_list.html:13 users/forms.py:13
+#: users/models.py:66 users/templates/users/login.html:53
+#: users/templates/users/user_detail.html:58
+#: users/templates/users/user_list.html:13
+#: users/templates/users/user_update.html:6
+msgid "Username"
+msgstr "用户名"
+
+#: assets/forms.py:152 perms/templates/perms/perm_user_asset_list.html:16
+#: templates/_nav.html:22
+msgid "Asset group"
+msgstr "资产组"
+
+#: assets/models.py:15 assets/templates/assets/idc_list.html:12
+msgid "Bandwidth"
+msgstr "带宽"
+
+#: assets/models.py:16 assets/templates/assets/idc_list.html:13
+msgid "Contact"
+msgstr "联系人"
+
+#: assets/models.py:17 assets/templates/assets/idc_list.html:14
+#: users/models.py:73 users/templates/users/user_detail.html:67
+msgid "Phone"
+msgstr "手机"
+
+#: assets/models.py:18 assets/templates/assets/idc_list.html:15
+msgid "Address"
+msgstr "地址"
+
+#: assets/models.py:19
+msgid "Network"
+msgstr "网络"
+
+#: assets/models.py:20 assets/models.py:225 assets/models.py:286
+msgid "Date added"
+msgstr "加入日期"
+
+#: assets/models.py:21
+msgid "Operator"
+msgstr "运营商"
+
+#: assets/models.py:22 assets/models.py:59 assets/models.py:96
+#: assets/models.py:167 assets/models.py:224 assets/models.py:284
+#: assets/models.py:323 assets/templates/assets/admin_user_detail.html:62
+#: assets/templates/assets/asset_group_detail.html:54
+#: assets/templates/assets/system_user_detail.html:105 perms/models.py:28
+#: perms/templates/perms/asset_permission_detail.html:96 users/models.py:82
+#: users/templates/users/user_detail.html:86
+msgid "Created by"
+msgstr "创建者"
+
+#: assets/models.py:23 assets/models.py:61 assets/models.py:94
+#: assets/models.py:168 assets/models.py:226 assets/models.py:287
+#: assets/models.py:325 assets/templates/assets/admin_user_detail.html:66
+#: assets/templates/assets/admin_user_list.html:14
+#: assets/templates/assets/asset_group_detail.html:58
+#: assets/templates/assets/asset_group_list.html:14
+#: assets/templates/assets/system_user_asset_group.html:56
+#: assets/templates/assets/system_user_detail.html:109
+#: assets/templates/assets/system_user_list.html:15 perms/models.py:30
+#: perms/templates/perms/asset_permission_detail.html:100 users/models.py:21
+#: users/models.py:78 users/templates/users/user_detail.html:98
+msgid "Comment"
+msgstr "备注"
+
+#: assets/models.py:57 assets/models.py:320
+msgid "KEY"
+msgstr "KEY"
+
+#: assets/models.py:58 assets/models.py:321
+msgid "VALUE"
+msgstr "VALUE"
+
+#: assets/models.py:69 assets/models.py:70
+msgid "status"
+msgstr "状态"
+
+#: assets/models.py:69
+#, fuzzy
+#| msgid "Admin user"
+msgid "In use"
+msgstr "管理用户"
+
+#: assets/models.py:70
+#, fuzzy
+#| msgid "Auto push"
+msgid "Out of use"
+msgstr "自动推送"
+
+#: assets/models.py:71 assets/models.py:72 assets/models.py:73
+#: assets/models.py:74 assets/models.py:75 assets/models.py:76
+msgid "type"
+msgstr ""
+
+#: assets/models.py:71
+msgid "Server"
+msgstr ""
+
+#: assets/models.py:72
+msgid "VM"
+msgstr ""
+
+#: assets/models.py:73
+msgid "Switch"
+msgstr ""
+
+#: assets/models.py:74
+#, fuzzy
+#| msgid "Role"
+msgid "Router"
+msgstr "角色"
+
+#: assets/models.py:75
+msgid "Firewall"
+msgstr ""
+
+#: assets/models.py:76
+msgid "Storage"
+msgstr ""
+
+#: assets/models.py:77 assets/models.py:78 assets/models.py:79
+msgid "env"
+msgstr ""
+
+#: assets/models.py:77
+msgid "Production"
+msgstr ""
+
+#: assets/models.py:78
+msgid "Development"
+msgstr ""
+
+#: assets/models.py:79
+#, fuzzy
+msgid "Setting"
+msgstr "设置"
+
+#: assets/models.py:90 assets/models.py:155 users/forms.py:15
+#: users/templates/users/login.html:56
+#: users/templates/users/reset_password.html:52
+#: users/templates/users/user_create.html:8
+#: users/templates/users/user_create.html:10
+#: users/templates/users/user_update.html:13
+#: users/templates/users/user_update.html:15
+msgid "Password"
+msgstr "密码"
+
+#: assets/models.py:91 assets/models.py:157
+msgid "SSH private key"
+msgstr "ssh密钥"
+
+#: assets/models.py:92 assets/models.py:158
+msgid "SSH public key"
+msgstr "ssh公钥"
+
+#: assets/models.py:93 assets/models.py:159
+#: assets/templates/assets/admin_user_create_update.html:43
+#: assets/templates/assets/system_user_create_update.html:44
+#: assets/templates/assets/system_user_detail.html:75
+msgid "As default"
+msgstr "默认使用"
+
+#: assets/models.py:156 assets/templates/assets/system_user_detail.html:63
+msgid "Protocol"
+msgstr "协议"
+
+#: assets/models.py:160
+#: assets/templates/assets/system_user_create_update.html:50
+#: assets/templates/assets/system_user_detail.html:67
+msgid "Auto push"
+msgstr "自动推送"
+
+#: assets/models.py:161
+msgid "Auto update pass/key"
+msgstr "自动更新密码/密钥"
+
+#: assets/models.py:162 assets/templates/assets/system_user_detail.html:79
+msgid "Sudo"
+msgstr "Sudo"
+
+#: assets/models.py:163 assets/templates/assets/system_user_detail.html:84
+msgid "Shell"
+msgstr "Shell"
+
+#: assets/models.py:164 assets/templates/assets/system_user_detail.html:90
+#: templates/_header_bar.html:41 templates/_nav.html:4
+msgid "Home"
+msgstr "仪表盘"
+
+#: assets/models.py:165 assets/templates/assets/system_user_detail.html:96
+msgid "Uid"
+msgstr "Uid"
+
+#: assets/models.py:236
+#, fuzzy
+#| msgid "As default"
+msgid "Default"
+msgstr "默认使用"
+
+#: assets/models.py:236
+#, fuzzy
+#| msgid "Create asset group"
+msgid "Default asset group"
+msgstr "创建资产组"
+
+#: assets/models.py:259 assets/templates/assets/admin_user_detail.html:100
+#: assets/templates/assets/asset_group_detail.html:88
+#: assets/templates/assets/system_user_asset.html:53
+#: perms/templates/perms/asset_permission_asset_list.html:67
+msgid "IP"
+msgstr "IP"
+
+#: assets/models.py:260
+msgid "Other IP"
+msgstr "其它IP"
+
+#: assets/models.py:261
+msgid "Remote card IP"
+msgstr "远控卡IP"
+
+#: assets/models.py:262 assets/templates/assets/admin_user_detail.html:99
+#: assets/templates/assets/asset_group_detail.html:87
+#: assets/templates/assets/system_user_asset.html:52
+#: perms/templates/perms/asset_permission_asset_list.html:66
+msgid "Hostname"
+msgstr "主机名"
+
+#: assets/models.py:263 assets/templates/assets/admin_user_detail.html:101
+#: assets/templates/assets/asset_group_detail.html:89
+#: assets/templates/assets/system_user_asset.html:54
+#: perms/templates/perms/asset_permission_asset_list.html:68
+msgid "Port"
+msgstr "端口"
+
+#: assets/models.py:264
+msgid "Asset groups"
+msgstr "用户组"
+
+#: assets/models.py:265 assets/models.py:268 templates/_nav.html:24
+msgid "Admin user"
+msgstr "管理用户"
+
+#: assets/models.py:266
+msgid "Admin password"
+msgstr "管理员密码"
+
+#: assets/models.py:269
+msgid "System User"
+msgstr "系统用户"
+
+#: assets/models.py:270 templates/_nav.html:23
+msgid "IDC"
+msgstr "机房"
+
+#: assets/models.py:271
+msgid "Mac address"
+msgstr "Mac地址"
+
+#: assets/models.py:272
+msgid "Brand"
+msgstr "品牌"
+
+#: assets/models.py:273
+msgid "CPU"
+msgstr "CPU"
+
+#: assets/models.py:274
+msgid "Memory"
+msgstr "内存"
+
+#: assets/models.py:275
+msgid "Disk"
+msgstr "硬盘"
+
+#: assets/models.py:276
+msgid "OS"
+msgstr "操作系统"
+
+#: assets/models.py:277
+msgid "Cabinet number"
+msgstr "机柜编号"
+
+#: assets/models.py:278
+msgid "Cabinet position"
+msgstr "机柜层号"
+
+#: assets/models.py:279
+msgid "Asset number"
+msgstr "资产编号"
+
+#: assets/models.py:280
+msgid "Asset status"
+msgstr "资产状态"
+
+#: assets/models.py:281
+msgid "Asset type"
+msgstr "系统类型"
+
+#: assets/models.py:282
+msgid "Asset environment"
+msgstr "资产环境"
+
+#: assets/models.py:283
+msgid "Serial number"
+msgstr "序列号"
+
+#: assets/models.py:285 perms/templates/perms/asset_permission_detail.html:84
+msgid "Is active"
+msgstr "是否激活"
+
+#: assets/templates/assets/admin_user_create_update.html:16
+#: assets/templates/assets/admin_user_list.html:5
+#, fuzzy
+#| msgid "Create user"
+msgid "Create admin user"
+msgstr "创建用户"
+
+#: assets/templates/assets/admin_user_create_update.html:35
+#: assets/templates/assets/system_user_create_update.html:36
+#, fuzzy
+#| msgid "Auto update pass/key"
+msgid "Auto generate key"
+msgstr "自动更新密码/密钥"
+
+#: assets/templates/assets/admin_user_create_update.html:53
+#: assets/templates/assets/admin_user_detail.html:152
+#: assets/templates/assets/asset_group_create.html:38
+#: assets/templates/assets/idc_create_update.html:44
+#: assets/templates/assets/system_user_create_update.html:71
+#: assets/templates/assets/system_user_detail.html:148
+#: perms/templates/perms/asset_permission_create_update.html:69
#: users/templates/users/_user.html:70
-#: users/templates/users/user_detail.html:162
-#: users/templates/users/user_detail.html:170
+#: users/templates/users/user_detail.html:147
+#: users/templates/users/user_detail.html:155
msgid "Reset"
msgstr "重置"
-#: assets/templates/assets/assetgroup_add.html:50
-#: assets/templates/assets/assetgroup_list.html:51
+#: assets/templates/assets/admin_user_create_update.html:54
+#: assets/templates/assets/asset_group_create.html:39
+#: assets/templates/assets/asset_group_list.html:51
+#: assets/templates/assets/idc_create_update.html:45
+#: assets/templates/assets/system_user_create_update.html:72
+#: perms/templates/perms/asset_permission_create_update.html:70
+#: perms/templates/perms/asset_permission_list.html:65
+#: perms/templates/perms/perm_user_asset_list.html:58
#: users/templates/users/_user.html:71
-#: users/templates/users/forget_password.html:44
-#: users/templates/users/user_list.html:63
+#: users/templates/users/forgot_password.html:44
+#: users/templates/users/user_list.html:64
msgid "Submit"
msgstr "提交"
-#: assets/templates/assets/assetgroup_list.html:13
+#: assets/templates/assets/admin_user_detail.html:18
+#: assets/templates/assets/asset_group_detail.html:18
+#: assets/templates/assets/system_user_asset.html:19
+#: assets/templates/assets/system_user_asset_group.html:19
+#: assets/templates/assets/system_user_detail.html:19
+#: perms/templates/perms/asset_permission_asset_list.html:20
+#: perms/templates/perms/asset_permission_detail.html:20
+#: perms/templates/perms/asset_permission_user_list.html:20
+msgid "Detail"
+msgstr ""
+
+#: assets/templates/assets/admin_user_detail.html:20
+#: assets/templates/assets/system_user_asset.html:22
+#: assets/templates/assets/system_user_asset_group.html:22
+#: assets/templates/assets/system_user_detail.html:23
+#, fuzzy
+#| msgid "User assets"
+msgid "Associate assets"
+msgstr "用户资产"
+
+#: assets/templates/assets/admin_user_detail.html:58
+#: assets/templates/assets/asset_group_detail.html:50
+#: assets/templates/assets/system_user_detail.html:101 perms/models.py:29
+#: perms/templates/perms/asset_permission_detail.html:92
+#, fuzzy
+#| msgid "Date added"
+msgid "Date created"
+msgstr "加入日期"
+
+#: assets/templates/assets/admin_user_detail.html:76
+#: assets/templates/assets/asset_group_detail.html:68
+#: assets/templates/assets/system_user_asset.html:33
+#: assets/templates/assets/system_user_asset_group.html:34
+#: perms/templates/perms/asset_permission_asset_list.html:47
+#, fuzzy
+#| msgid "Asset group list"
+msgid "Asset list of "
+msgstr "资产组列表"
+
+#: assets/templates/assets/admin_user_detail.html:102
+#: assets/templates/assets/asset_group_detail.html:90
+#: assets/templates/assets/system_user_asset.html:55
+#, fuzzy
+msgid "Alive"
+msgstr "激活"
+
+#: assets/templates/assets/admin_user_detail.html:125
+#: assets/templates/assets/system_user_detail.html:121
+#: perms/templates/perms/asset_permission_detail.html:112
+msgid "Quick update"
+msgstr ""
+
+#: assets/templates/assets/admin_user_detail.html:131
+msgid "Get install script"
+msgstr ""
+
+#: assets/templates/assets/admin_user_detail.html:134
+#: assets/templates/assets/system_user_detail.html:130
+msgid "Get"
+msgstr ""
+
+#: assets/templates/assets/admin_user_detail.html:140
+#: assets/templates/assets/system_user_detail.html:136
+#: perms/templates/perms/asset_permission_detail.html:132
+msgid "Retest asset connectivity"
+msgstr ""
+
+#: assets/templates/assets/admin_user_detail.html:143
+#: assets/templates/assets/system_user_detail.html:139
+#: perms/templates/perms/asset_permission_detail.html:135
+msgid "Start"
+msgstr ""
+
+#: assets/templates/assets/admin_user_detail.html:149
+#: assets/templates/assets/system_user_detail.html:145
+#, fuzzy
+#| msgid "ssh private key"
+msgid "Reset private key"
+msgstr "ssh密钥"
+
+#: assets/templates/assets/admin_user_detail.html:163
+msgid "Replace asset admin user with this"
+msgstr ""
+
+#: assets/templates/assets/admin_user_detail.html:171
+#: assets/templates/assets/system_user_asset.html:86
+#, fuzzy
+#| msgid "Select assets"
+msgid "Select asset"
+msgstr "选择资产"
+
+#: assets/templates/assets/admin_user_detail.html:180
+msgid "Replace"
+msgstr ""
+
+#: assets/templates/assets/admin_user_list.html:9
+#: assets/templates/assets/idc_list.html:9
+#: assets/templates/assets/system_user_list.html:9
+#, fuzzy
+#| msgid "IDC"
+msgid "ID"
+msgstr "机房"
+
+#: assets/templates/assets/admin_user_list.html:12
+#: assets/templates/assets/asset_group_list.html:13
+#: assets/templates/assets/idc_list.html:11
+#: assets/templates/assets/system_user_asset_group.html:54
+#: assets/templates/assets/system_user_list.html:12
+#: perms/templates/perms/perm_user_asset_list.html:15
#: users/templates/users/user_list.html:16
msgid "Asset num"
msgstr "资产数量"
-#: assets/templates/assets/assetgroup_list.html:32
-#: users/templates/users/user_list.html:44
-msgid "Edit"
-msgstr "编辑"
+#: assets/templates/assets/admin_user_list.html:13
+msgid "Lost connection"
+msgstr ""
-#: assets/templates/assets/assetgroup_list.html:33
+#: assets/templates/assets/admin_user_list.html:33
+#: assets/templates/assets/system_user_list.html:35
+msgid "Script"
+msgstr ""
+
+#: assets/templates/assets/admin_user_list.html:35
+#: assets/templates/assets/system_user_list.html:37
+msgid "Refresh"
+msgstr ""
+
+#: assets/templates/assets/admin_user_list.html:36
+#: assets/templates/assets/asset_group_list.html:32
+#: assets/templates/assets/idc_list.html:30
+#: assets/templates/assets/system_user_list.html:38
+#: perms/templates/perms/asset_permission_list.html:46
+#: users/templates/users/user_list.html:44
+msgid "Update"
+msgstr "更新"
+
+#: assets/templates/assets/admin_user_list.html:37
+#: assets/templates/assets/asset_group_list.html:33
+#: assets/templates/assets/idc_list.html:31
+#: assets/templates/assets/system_user_list.html:39
+#: perms/templates/perms/asset_permission_list.html:47
#: users/templates/users/user_list.html:45
+#: users/templates/users/user_list.html:46
msgid "Delete"
msgstr "删除"
-#: assets/templates/assets/assetgroup_list.html:43
-#: users/templates/users/user_list.html:55
+#: assets/templates/assets/asset_group_create.html:16
+#: assets/templates/assets/asset_group_list.html:5 assets/views.py:61
+#: assets/views.py:131
+msgid "Create asset group"
+msgstr "创建资产组"
+
+#: assets/templates/assets/asset_group_detail.html:20
+#, fuzzy
+#| msgid "Asset group"
+msgid "Asset group perm"
+msgstr "资产组"
+
+#: assets/templates/assets/asset_group_detail.html:113
+#, fuzzy
+#| msgid "System user"
+msgid "Associate system user"
+msgstr "系统"
+
+#: assets/templates/assets/asset_group_detail.html:119
+#, fuzzy
+#| msgid "System user"
+msgid "repush system user"
+msgstr "系统"
+
+#: assets/templates/assets/asset_group_detail.html:129
+#, fuzzy
+#| msgid "System user"
+msgid "Select system user"
+msgstr "系统"
+
+#: assets/templates/assets/asset_group_detail.html:138
+msgid "Associate"
+msgstr ""
+
+#: assets/templates/assets/asset_group_detail.html:157
+#, fuzzy
+#| msgid "Asset group"
+msgid "Add asset to this group"
+msgstr "资产组"
+
+#: assets/templates/assets/asset_group_detail.html:165
+#, fuzzy
+#| msgid "Select assets"
+msgid "Select asset user"
+msgstr "选择资产"
+
+#: assets/templates/assets/asset_group_detail.html:174
+#: assets/templates/assets/system_user_asset.html:95
+#: assets/templates/assets/system_user_asset_group.html:96
+#: perms/templates/perms/asset_permission_asset_list.html:120
+#: perms/templates/perms/asset_permission_user_list.html:120
+#, fuzzy
+#| msgid "Address"
+msgid "Add"
+msgstr "地址"
+
+#: assets/templates/assets/asset_group_list.html:43
+#: perms/templates/perms/asset_permission_list.html:57
+#: perms/templates/perms/perm_user_asset_list.html:50
+#: users/templates/users/user_list.html:56
msgid "Delete selected"
msgstr "批量删除"
-#: assets/templates/assets/assetgroup_list.html:44
-#: users/templates/users/user_list.html:56
+#: assets/templates/assets/asset_group_list.html:44
+#: perms/templates/perms/asset_permission_list.html:58
+#: perms/templates/perms/perm_user_asset_list.html:51
+#: users/templates/users/user_list.html:57
msgid "Update selected"
msgstr "批量更新"
-#: assets/templates/assets/assetgroup_list.html:45
-#: users/templates/users/user_list.html:57
+#: assets/templates/assets/asset_group_list.html:45
+#: perms/templates/perms/asset_permission_list.html:59
+#: perms/templates/perms/perm_user_asset_list.html:52
+#: users/templates/users/user_list.html:58
msgid "Deactive selected"
msgstr "禁用所选"
-#: assets/templates/assets/assetgroup_list.html:46
-#: users/templates/users/user_list.html:58
+#: assets/templates/assets/asset_group_list.html:46
+#: perms/templates/perms/asset_permission_list.html:60
+#: perms/templates/perms/perm_user_asset_list.html:53
+#: users/templates/users/user_list.html:59
msgid "Export selected"
msgstr "批量导出"
-#: assets/views.py:59 assets/views.py:74 templates/_nav.html:18
+#: assets/templates/assets/asset_list.html:27
+msgid "Create asset"
+msgstr "创建资产"
+
+#: assets/templates/assets/delete_confirm.html:6
+#: perms/templates/perms/delete_confirm.html:6
+#: users/templates/users/user_delete_confirm.html:6
+msgid "Confirm delete"
+msgstr "确认删除"
+
+#: assets/templates/assets/idc_create_update.html:16
+#, fuzzy
+#| msgid "Created by"
+msgid "Create idc"
+msgstr "创建者"
+
+#: assets/templates/assets/idc_list.html:5
+#, fuzzy
+#| msgid "Created by"
+msgid "Create IDC"
+msgstr "创建者"
+
+#: assets/templates/assets/system_user_asset.html:25
+#: assets/templates/assets/system_user_asset_group.html:26
+#: assets/templates/assets/system_user_detail.html:28
+#, fuzzy
+#| msgid "Create asset group"
+msgid "Associate asset groups"
+msgstr "创建资产组"
+
+#: assets/templates/assets/system_user_asset.html:78
+msgid "Add asset to this system user"
+msgstr ""
+
+#: assets/templates/assets/system_user_asset_group.html:55
+msgid "Unavailable num"
+msgstr ""
+
+#: assets/templates/assets/system_user_asset_group.html:79
+#, fuzzy
+#| msgid "Asset group list"
+msgid "Add asset group to this system user"
+msgstr "资产组列表"
+
+#: assets/templates/assets/system_user_asset_group.html:87
+#, fuzzy
+#| msgid "Select asset groups"
+msgid "Select asset group"
+msgstr "添加到资产组"
+
+#: assets/templates/assets/system_user_create_update.html:16
+#: assets/templates/assets/system_user_list.html:5 assets/views.py:349
+#, fuzzy
+#| msgid "Create user"
+msgid "Create system user"
+msgstr "创建用户"
+
+#: assets/templates/assets/system_user_create_update.html:56
+#: assets/templates/assets/system_user_detail.html:71
+#, fuzzy
+#| msgid "Auto update pass/key"
+msgid "Auto update"
+msgstr "自动更新密码/密钥"
+
+#: assets/templates/assets/system_user_detail.html:127
+msgid "Get mannual install script"
+msgstr ""
+
+#: assets/templates/assets/system_user_list.html:13
+#, fuzzy
+#| msgid "Asset group"
+msgid "Asset group num"
+msgstr "资产组"
+
+#: assets/templates/assets/system_user_list.html:14
+msgid "Unavailable"
+msgstr ""
+
+#: assets/views.py:60 assets/views.py:80 assets/views.py:114
+#: assets/views.py:130 assets/views.py:152 assets/views.py:219
+#: assets/views.py:318 assets/views.py:348 assets/views.py:372
+#: assets/views.py:390 templates/_nav.html:18
msgid "Assets"
msgstr "资产管理"
-#: assets/views.py:75
+#: assets/views.py:81
msgid "Asset group list"
msgstr "资产组列表"
-#: templates/_header_bar.html:8 users/templates/users/user_detail.html:29
+#: assets/views.py:115
+#, fuzzy
+#| msgid "Asset group list"
+msgid "Asset group detail"
+msgstr "资产组列表"
+
+#: assets/views.py:153
+msgid "IDC list"
+msgstr ""
+
+#: assets/views.py:220
+#, fuzzy
+#| msgid "Admin user"
+msgid "Admin user list"
+msgstr "管理用户"
+
+#: assets/views.py:256
+#, fuzzy, python-format
+#| msgid "Create user %s success."
+msgid "Create admin user %s successfully."
+msgstr "创建用户 %s 成功"
+
+#: assets/views.py:319
+#, fuzzy
+#| msgid "System user"
+msgid "System user list"
+msgstr "系统"
+
+#: assets/views.py:355
+#, fuzzy, python-format
+#| msgid "Create user %s success."
+msgid "Create system user %s successfully."
+msgstr "创建用户 %s 成功"
+
+#: assets/views.py:368
+#, fuzzy, python-format
+#| msgid "Create user %s success."
+msgid "Update system user %s successfully."
+msgstr "创建用户 %s 成功"
+
+#: assets/views.py:373
+#, fuzzy
+#| msgid "Update user"
+msgid "Update system user"
+msgstr "编辑用户"
+
+#: assets/views.py:391
+#, fuzzy
+#| msgid "System user"
+msgid "System user detail"
+msgstr "系统"
+
+#: perms/forms.py:21
+#, fuzzy
+#| msgid "Select assets"
+msgid "Select users"
+msgstr "选择资产"
+
+#: perms/forms.py:23 perms/templates/perms/asset_permission_user_list.html:139
+#, fuzzy
+#| msgid "Select asset groups"
+msgid "Select user groups"
+msgstr "添加到资产组"
+
+#: perms/forms.py:29 perms/templates/perms/asset_permission_detail.html:163
+#, fuzzy
+#| msgid "System user"
+msgid "Select system users"
+msgstr "系统"
+
+#: perms/models.py:26
+#: perms/templates/perms/asset_permission_create_update.html:49
+#: perms/templates/perms/perm_user_asset_list.html:18
+#: users/templates/users/user_detail.html:115
+#: users/templates/users/user_list.html:17
+#, fuzzy
+msgid "Active"
+msgstr "激活"
+
+#: perms/models.py:27 perms/templates/perms/asset_permission_detail.html:88
+#: users/models.py:81 users/templates/users/user_detail.html:82
+msgid "Date expired"
+msgstr "失效日期"
+
+#: perms/templates/perms/asset_permission_asset_list.html:24
+#: perms/templates/perms/asset_permission_detail.html:24
+#: perms/templates/perms/asset_permission_user_list.html:24
+#, fuzzy
+#| msgid "Join user groups"
+msgid "Users and user groups"
+msgstr "添加到用户组"
+
+#: perms/templates/perms/asset_permission_asset_list.html:29
+#: perms/templates/perms/asset_permission_detail.html:29
+#: perms/templates/perms/asset_permission_user_list.html:29
+#, fuzzy
+#| msgid "Select asset groups"
+msgid "Assets and asset gruops"
+msgstr "添加到资产组"
+
+#: perms/templates/perms/asset_permission_asset_list.html:69
+#: perms/templates/perms/asset_permission_list.html:18
+#: perms/templates/perms/asset_permission_user_list.html:69
+msgid "Is valid"
+msgstr ""
+
+#: perms/templates/perms/asset_permission_asset_list.html:103
+msgid "Add asset to this permission"
+msgstr ""
+
+#: perms/templates/perms/asset_permission_asset_list.html:111
+#, fuzzy
+#| msgid "Select assets"
+msgid "Select asset "
+msgstr "选择资产"
+
+#: perms/templates/perms/asset_permission_asset_list.html:131
+msgid "Add asset group to this permission"
+msgstr ""
+
+#: perms/templates/perms/asset_permission_asset_list.html:148
+#: perms/templates/perms/asset_permission_detail.html:172
+#: perms/templates/perms/asset_permission_user_list.html:148
+#: users/templates/users/user_detail.html:183
+msgid "Join"
+msgstr "加入"
+
+#: perms/templates/perms/asset_permission_create_update.html:17
+#, fuzzy
+#| msgid "Create asset group"
+msgid "Create asset permission "
+msgstr "创建资产组"
+
+#: perms/templates/perms/asset_permission_create_update.html:36
+#: templates/_nav.html:12 templates/_user_profile.html:14 users/models.py:63
+msgid "User"
+msgstr "用户"
+
+#: perms/templates/perms/asset_permission_create_update.html:45
+#, fuzzy
+#| msgid "Other IP"
+msgid "Other"
+msgstr "其它IP"
+
+#: perms/templates/perms/asset_permission_detail.html:60
+#: perms/templates/perms/asset_permission_list.html:13
+#, fuzzy
+#| msgid "User group"
+msgid "User count"
+msgstr "用户组"
+
+#: perms/templates/perms/asset_permission_detail.html:64
+#: perms/templates/perms/asset_permission_list.html:14
+#, fuzzy
+#| msgid "User group list"
+msgid "User group count"
+msgstr "用户组列表"
+
+#: perms/templates/perms/asset_permission_detail.html:68
+#: perms/templates/perms/asset_permission_list.html:15
+#, fuzzy
+#| msgid "Asset group"
+msgid "Asset count"
+msgstr "资产组"
+
+#: perms/templates/perms/asset_permission_detail.html:72
+#: perms/templates/perms/asset_permission_list.html:16
+#, fuzzy
+#| msgid "Asset group list"
+msgid "Asset group count"
+msgstr "资产组列表"
+
+#: perms/templates/perms/asset_permission_detail.html:76
+#: perms/templates/perms/asset_permission_list.html:17
+#, fuzzy
+#| msgid "System user"
+msgid "System user count"
+msgstr "系统"
+
+#: perms/templates/perms/asset_permission_detail.html:80
+#, fuzzy
+msgid "Action"
+msgstr "激活"
+
+#: perms/templates/perms/asset_permission_detail.html:141
+#, fuzzy
+#| msgid "System user"
+msgid "Repush system user"
+msgstr "系统"
+
+#: perms/templates/perms/asset_permission_detail.html:144
+msgid "Push"
+msgstr ""
+
+#: perms/templates/perms/asset_permission_detail.html:155
+#: perms/templates/perms/perm_user_asset_list.html:17 templates/_nav.html:25
+msgid "System user"
+msgstr "系统"
+
+#: perms/templates/perms/asset_permission_list.html:5
+#, fuzzy
+#| msgid "Create perm"
+msgid "Create permission"
+msgstr "创建权限"
+
+#: perms/templates/perms/asset_permission_user_list.html:47
+#, fuzzy
+#| msgid "User list"
+msgid "User list of "
+msgstr "用户列表"
+
+#: perms/templates/perms/asset_permission_user_list.html:68 users/models.py:68
+#: users/templates/users/user_detail.html:62
+msgid "Email"
+msgstr "邮件"
+
+#: perms/templates/perms/asset_permission_user_list.html:103
+msgid "Add user to asset permission"
+msgstr ""
+
+#: perms/templates/perms/asset_permission_user_list.html:111
+#, fuzzy
+#| msgid "Select assets"
+msgid "Select user"
+msgstr "选择资产"
+
+#: perms/templates/perms/asset_permission_user_list.html:131
+#, fuzzy
+#| msgid "Asset group list"
+msgid "Add user group to asset permission"
+msgstr "资产组列表"
+
+#: perms/templates/perms/perm_user_asset_list.html:5
+#, fuzzy
+#| msgid "Create perm"
+msgid "Create perm "
+msgstr "创建权限"
+
+#: perms/templates/perms/perm_user_asset_list.html:14 users/models.py:70
+#: users/templates/users/user_detail.html:78
+#: users/templates/users/user_list.html:14
+msgid "Role"
+msgstr "角色"
+
+#: perms/templates/perms/perm_user_asset_list.html:39
+msgid "Create perm"
+msgstr "创建权限"
+
+#: perms/templates/perms/perm_user_asset_list.html:40
+msgid "Flush"
+msgstr ""
+
+#: perms/views.py:29 perms/views.py:66 perms/views.py:89 perms/views.py:107
+#: perms/views.py:146 perms/views.py:181 templates/_nav.html:30
+msgid "Perms"
+msgstr "权限管理"
+
+#: perms/views.py:30
+#, fuzzy
+#| msgid "Asset group list"
+msgid "Asset permission list"
+msgstr "资产组列表"
+
+#: perms/views.py:67
+#, fuzzy
+#| msgid "Create asset group"
+msgid "Create asset permission"
+msgstr "创建资产组"
+
+#: perms/views.py:73
+#, fuzzy, python-format
+#| msgid "Create user %s success."
+msgid "Create asset permission %s successfully."
+msgstr "创建用户 %s 成功"
+
+#: perms/views.py:85
+#, fuzzy, python-format
+#| msgid "Create user %s success."
+msgid "Update asset permission %s successfully."
+msgstr "创建用户 %s 成功"
+
+#: perms/views.py:90
+msgid "Update asset permission"
+msgstr ""
+
+#: perms/views.py:108
+#, fuzzy
+#| msgid "Asset environment"
+msgid "Asset permission detail"
+msgstr "资产环境"
+
+#: perms/views.py:147
+#, fuzzy
+#| msgid "Asset group list"
+msgid "Asset permission user list"
+msgstr "资产组列表"
+
+#: perms/views.py:182
+#, fuzzy
+#| msgid "Asset group list"
+msgid "Asset permission asset list"
+msgstr "资产组列表"
+
+#: templates/_foot_js.html:24
+msgid "Are you sure delete ?"
+msgstr ""
+
+#: templates/_foot_js.html:28
+msgid "Cancel"
+msgstr ""
+
+#: templates/_foot_js.html:30
+msgid "Yes, delete it!"
+msgstr ""
+
+#: templates/_foot_js.html:40
+# msgid "Deleted!"
+# msgstr "删除"
+
+#: templates/_foot_js.html:40
+msgid "has been deleted."
+msgstr "已被删除"
+
+#: templates/_header_bar.html:8
msgid "Search"
msgstr "搜索"
@@ -314,42 +1070,40 @@ msgstr "欢迎使用Jumpserver开源跳板机系统"
msgid "Help"
msgstr "帮助"
-#: templates/_nav.html:9 users/views.py:100 users/views.py:113
-#: users/views.py:153 users/views.py:170 users/views.py:195 users/views.py:208
+#: templates/_header_bar.html:24 templates/_user_profile.html:21
+msgid "Logout"
+msgstr "注销登录"
+
+#: templates/_header_bar.html:28 users/templates/users/login.html:42
+#: users/templates/users/login.html:61
+msgid "Login"
+msgstr "登录"
+
+#: templates/_modal.html:15
+msgid "Close"
+msgstr ""
+
+#: templates/_nav.html:9 users/views.py:107 users/views.py:120
+#: users/views.py:160 users/views.py:191 users/views.py:216 users/views.py:229
+#: users/views.py:345
msgid "Users"
msgstr "用户管理"
-#: templates/_nav.html:12 users/models.py:103
-msgid "User"
-msgstr "用户"
-
-#: templates/_nav.html:13
+#: templates/_nav.html:13 users/models.py:69
+#: users/templates/users/user_detail.html:166
+#: users/templates/users/user_list.html:15
msgid "User group"
msgstr "用户组"
-#: templates/_nav.html:22
-msgid "Asset group"
-msgstr "资产组"
-
-#: templates/_nav.html:25
-msgid "System user"
-msgstr "系统"
-
#: templates/_nav.html:26
msgid "Label"
msgstr "标签"
-#: templates/_nav.html:30
-msgid "Perms"
-msgstr "权限管理"
-
#: templates/_nav.html:33
-msgid "Perm"
-msgstr "权限"
-
-#: templates/_nav.html:36
-msgid "Create perm"
-msgstr "创建权限"
+#, fuzzy
+#| msgid "Asset type"
+msgid "Asset permission"
+msgstr "系统类型"
#: templates/_nav.html:42
msgid "Audits"
@@ -379,10 +1133,6 @@ msgstr "访问官网"
msgid "Profile"
msgstr "个人信息"
-#: templates/_user_profile.html:21
-msgid "Logout"
-msgstr "注销登录"
-
#: templates/captcha/image.html:3
msgid "Play CAPTCHA as audio file"
msgstr ""
@@ -391,62 +1141,93 @@ msgstr ""
msgid "Captcha"
msgstr "验证码"
-#: users/forms.py:31 users/forms.py:50
+#: templates/rest_framework/base.html:128
+#, fuzzy
+msgid "Filters"
+msgstr "过滤"
+
+#: users/forms.py:35 users/forms.py:55
+#: users/templates/users/user_detail.html:174
msgid "Join user groups"
msgstr "添加到用户组"
-#: users/models.py:102 users/models.py:225
+#: users/forms.py:74
+#, fuzzy
+#| msgid "Name"
+msgid "name"
+msgstr "名称"
+
+#: users/forms.py:75
+#, fuzzy
+#| msgid "Avatar"
+msgid "avatar"
+msgstr "头像"
+
+#: users/forms.py:76
+#, fuzzy
+#| msgid "Wechat"
+msgid "wechat"
+msgstr "微信"
+
+#: users/forms.py:77
+#, fuzzy
+#| msgid "Phone"
+msgid "phone"
+msgstr "手机"
+
+#: users/forms.py:78
+#, fuzzy
+#| msgid "Enable OTP"
+msgid "enable otp"
+msgstr "二次验证"
+
+#: users/forms.py:82
+#, fuzzy
+#| msgid "SSH private key"
+msgid "private key"
+msgstr "ssh密钥"
+
+#: users/forms.py:89 users/serializers.py:55
+#, fuzzy
+#| msgid "ssh private key"
+msgid "Not a valid ssh private key."
+msgstr "ssh密钥"
+
+#: users/models.py:62 users/models.py:206
msgid "Administrator"
msgstr "管理员"
-#: users/models.py:108 users/templates/users/user_detail.html:77
-msgid "Email"
-msgstr "邮件"
-
-#: users/models.py:109 users/templates/users/user_detail.html:181
-#: users/templates/users/user_list.html:15
-msgid "Usergroup"
-msgstr "用户组"
-
-#: users/models.py:110 users/templates/users/user_detail.html:93
-#: users/templates/users/user_list.html:14
-msgid "Role"
-msgstr "角色"
-
-#: users/models.py:111
+#: users/models.py:71
msgid "Avatar"
msgstr "头像"
-#: users/models.py:112 users/templates/users/user_detail.html:88
+#: users/models.py:72 users/templates/users/user_detail.html:73
msgid "Wechat"
msgstr "微信"
-#: users/models.py:114 users/templates/users/_user.html:57
+#: users/models.py:74 users/templates/users/_user.html:57
+#: users/templates/users/user_detail.html:129
msgid "Enable OTP"
msgstr "二次验证"
-#: users/models.py:116
+#: users/models.py:76
msgid "ssh private key"
msgstr "ssh密钥"
-#: users/models.py:117
+#: users/models.py:77
msgid "ssh public key"
msgstr "ssh公钥"
-#: users/models.py:121 users/templates/users/user_detail.html:97
-msgid "Date expired"
-msgstr "失效日期"
-
-#: users/models.py:228
+#: users/models.py:209
msgid "Administrator is the super user of system"
msgstr "Administrator是初始的超级管理员"
-#: users/models.py:229
+#: users/models.py:210
msgid "System"
msgstr "系统"
#: users/templates/users/_user.html:17 users/templates/users/user_list.html:5
-#: users/views.py:113
+#: users/views.py:120
msgid "Create user"
msgstr "创建用户"
@@ -458,24 +1239,53 @@ msgstr "账户"
msgid "Security and Role"
msgstr "角色安全"
-#: users/templates/users/forget_password.html:26
-msgid "Forget password"
+#: users/templates/users/_user_reset_pk_modal.html:4
+#, fuzzy
+#| msgid "SSH private key"
+msgid "Reset User SSH Private Key"
+msgstr "ssh密钥"
+
+#: users/templates/users/first_login.html:16 users/views.py:345
+#, fuzzy
+#| msgid "Last login"
+msgid "First Login"
+msgstr "最后登录"
+
+#: users/templates/users/first_login.html:33
+#, fuzzy
+#| msgid "System"
+msgid "Step"
+msgstr "系统"
+
+#: users/templates/users/first_login.html:55
+msgid "first step"
+msgstr ""
+
+#: users/templates/users/first_login.html:56
+msgid "prev step"
+msgstr ""
+
+#: users/templates/users/first_login.html:58
+#, fuzzy
+#| msgid "Submit"
+msgid "submit"
+msgstr "提交"
+
+#: users/templates/users/forgot_password.html:26
+#: users/templates/users/login.html:64
+msgid "Forgot password"
msgstr "忘记密码"
-#: users/templates/users/forget_password.html:33
+#: users/templates/users/forgot_password.html:33
msgid "Input your email, that will send a mail to your"
msgstr "输入您的邮箱, 将会发一封重置短信邮件到您的邮箱中"
-#: users/templates/users/login.html:42 users/templates/users/login.html:62
-msgid "Login"
-msgstr "登录"
-
#: users/templates/users/login.html:47
msgid "Captcha invalid"
msgstr "验证码错误"
#: users/templates/users/reset_password.html:45
-#: users/templates/users/user_detail.html:159 users/utils.py:98
+#: users/templates/users/user_detail.html:144 users/utils.py:99
msgid "Reset password"
msgstr "重置密码"
@@ -483,75 +1293,107 @@ msgstr "重置密码"
msgid "Password again"
msgstr "再次输入密码"
-#: users/templates/users/reset_password.html:57
-msgid "Setting"
-msgstr "设置"
-
-#: users/templates/users/user_add.html:12
+#: users/templates/users/user_create.html:12
msgid "Reset link will be generated and sent to the user. "
msgstr "生成重置密码连接,通过邮件发送给用户"
-#: users/templates/users/user_delete_confirm.html:6
-msgid "Confirm delete"
-msgstr "确认删除"
-
-#: users/templates/users/user_detail.html:18 users/views.py:170
+#: users/templates/users/user_detail.html:20 users/views.py:191
msgid "User detail"
msgstr "用户详情"
-#: users/templates/users/user_detail.html:20
+#: users/templates/users/user_detail.html:22
msgid "User assets"
msgstr "用户资产"
-#: users/templates/users/user_detail.html:21
+#: users/templates/users/user_detail.html:23
msgid "User log"
msgstr "登录日志"
-#: users/templates/users/user_detail.html:105
+#: users/templates/users/user_detail.html:90
msgid "Date joined"
msgstr "创建日期"
-#: users/templates/users/user_detail.html:109
+#: users/templates/users/user_detail.html:94
msgid "Last login"
msgstr "最后登录"
-#: users/templates/users/user_detail.html:124
+#: users/templates/users/user_detail.html:109
msgid "Quick modify"
msgstr "快速修改"
-#: users/templates/users/user_detail.html:167
+#: users/templates/users/user_detail.html:152
msgid "Reset ssh key"
msgstr "重置密钥"
-#: users/templates/users/user_detail.html:189
-msgid "Select usergroups"
-msgstr "选择用户组"
+#: users/templates/users/user_detail.html:233
+msgid "UserGroup Update Success!"
+msgstr ""
-#: users/templates/users/user_detail.html:198
-msgid "Add"
-msgstr "添加"
+#: users/templates/users/user_detail.html:251
+#: users/templates/users/user_detail.html:257
+#, fuzzy
+#| msgid "Create account successfully"
+msgid "Update Successfully!"
+msgstr "创建账户成功"
-#: users/templates/users/user_list.html:17
-msgid "Active"
-msgstr "激活"
+#: users/templates/users/user_detail.html:290
+msgid "E-mail sent successfully. An e-mail has been sent to the user\\"
+msgstr ""
-#: users/utils.py:47
+#: users/templates/users/user_detail.html:291
+#, fuzzy
+#| msgid "Password"
+msgid "Password-Reset"
+msgstr "密码"
+
+#: users/templates/users/user_detail.html:296
+msgid "Are you sure?"
+msgstr ""
+
+#: users/templates/users/user_detail.html:297
+msgid "This will reset the user\\"
+msgstr ""
+
+#: users/templates/users/user_detail.html:315
+msgid "Successfully updated the SSH private key."
+msgstr ""
+
+#: users/templates/users/user_detail.html:316
+#: users/templates/users/user_detail.html:321
+#, fuzzy
+#| msgid "SSH private key"
+msgid "User SSH Private Key Reset"
+msgstr "ssh密钥"
+
+#: users/templates/users/user_detail.html:319
+msgid "Failed to update the user\\"
+msgstr ""
+
+#: users/templates/users/user_group_create.html:16 users/views.py:229
+msgid "Create user group"
+msgstr "创建用户组"
+
+#: users/templates/users/user_update.html:3 users/views.py:160
+msgid "Update user"
+msgstr "编辑用户"
+
+#: users/utils.py:48
msgid "Begin to generate ssh private key ..."
msgstr "开始生成ssh密钥"
-#: users/utils.py:59
+#: users/utils.py:60
msgid "Finish to generate ssh private key ..."
msgstr "生成ssh密钥成功"
-#: users/utils.py:63
+#: users/utils.py:64
msgid "These is error when generate ssh key."
msgstr "创建密钥失败"
-#: users/utils.py:67
+#: users/utils.py:68
msgid "Create account successfully"
msgstr "创建账户成功"
-#: users/utils.py:69
+#: users/utils.py:70
#, python-format
msgid ""
"\n"
@@ -562,8 +1404,8 @@ msgid ""
" click "
"here to set your password\n"
" \n"
-" This link is valid for 1 hour. After it expires, request new one\n"
+" This link is valid for 1 hour. After it expires, request new one\n"
"\n"
" \n"
" ---\n"
@@ -592,7 +1434,7 @@ msgstr ""
" \n"
" "
-#: users/utils.py:100
+#: users/utils.py:101
#, python-format
msgid ""
"\n"
@@ -604,8 +1446,8 @@ msgid ""
" Click "
"here reset password\n"
" \n"
-" This link is valid for 1 hour. After it expires, request new one<\n"
+" This link is valid for 1 hour. After it expires, request new one<\n"
"\n"
" \n"
" ---\n"
@@ -636,69 +1478,64 @@ msgstr ""
" \n"
" "
-#: users/views.py:53
-msgid "Username or password invalid"
-msgstr "用户名或密码错误"
-
-#: users/views.py:70
+#: users/views.py:78
msgid "Logout success"
msgstr "退出登录成功"
-#: users/views.py:71
+#: users/views.py:79
msgid "Logout success, return login page"
msgstr "退出登录成功,返回到登录页面"
-#: users/views.py:100
+#: users/views.py:107
msgid "User list"
msgstr "用户列表"
-#: users/views.py:109
-#, python-format
-msgid "Create user%s success."
-msgstr "创建用户%s 成功"
+#: users/views.py:116
+#, fuzzy, python-format
+#| msgid "Create user %s success."
+msgid "Create user %s successfully."
+msgstr "创建用户 %s 成功"
-#: users/views.py:153
-msgid "Edit user"
-msgstr "编辑用户"
-
-#: users/views.py:195
-msgid "Usergroup list"
+#: users/views.py:216
+msgid "User group list"
msgstr "用户组列表"
-#: users/views.py:208
-msgid "Create usergroup"
-msgstr "创建用户组"
-
-#: users/views.py:240
+#: users/views.py:261
msgid "Email address invalid, input again"
msgstr "邮箱地址错误,重新输入"
-#: users/views.py:251
+#: users/views.py:272
msgid "Send reset password message"
msgstr "发送重置密码邮件"
-#: users/views.py:252
+#: users/views.py:273
msgid "Send reset password mail success, login your mail box and follow it "
msgstr ""
"发送重置邮件成功, 请登录邮箱查看, 按照提示操作 (如果没收到,请等待3-5分钟)"
-#: users/views.py:264
+#: users/views.py:285
msgid "Reset password success"
msgstr "重置密码成功"
-#: users/views.py:265
+#: users/views.py:286
msgid "Reset password success, return to login page"
msgstr "重置密码成功,返回到登录页面"
-#: users/views.py:281 users/views.py:294
+#: users/views.py:302 users/views.py:315
msgid "Token invalid or expired"
msgstr "Token错误或失效"
-#: users/views.py:290
+#: users/views.py:311
msgid "Password not same"
msgstr "密码不一致"
#, fuzzy
-#~| msgid "Asset groups"
-#~ msgid "Assetgroup"
-#~ msgstr "用户组"
+#~| msgid "Create user %s success."
+#~ msgid "Update admin user %s successfully."
+#~ msgstr "创建用户 %s 成功"
+
+#~ msgid "Perm"
+#~ msgstr "权限"
+
+#~ msgid "Username or password invalid"
+#~ msgstr "用户名或密码错误"
diff --git a/apps/perms/forms.py b/apps/perms/forms.py
new file mode 100644
index 000000000..1826b4c29
--- /dev/null
+++ b/apps/perms/forms.py
@@ -0,0 +1,36 @@
+# ~*~ coding: utf-8 ~*~
+
+from __future__ import absolute_import, unicode_literals
+from django import forms
+from django.utils.translation import ugettext_lazy as _
+
+# from .hands import User, UserGroup, Asset, AssetGroup, SystemUser
+from .models import AssetPermission
+
+
+class AssetPermissionForm(forms.ModelForm):
+
+ class Meta:
+ model = AssetPermission
+ fields = [
+ 'name', 'users', 'user_groups', 'assets', 'asset_groups',
+ 'system_users', 'action', 'is_active', 'date_expired', 'comment',
+ ]
+ widgets = {
+ 'users': forms.SelectMultiple(attrs={'class': 'select2',
+ 'data-placeholder': _('Select users')}),
+ 'user_groups': forms.SelectMultiple(attrs={'class': 'select2',
+ 'data-placeholder': _('Select user groups')}),
+ 'assets': forms.SelectMultiple(attrs={'class': 'select2',
+ 'data-placeholder': _('Select assets')}),
+ 'asset_groups': forms.SelectMultiple(attrs={'class': 'select2',
+ 'data-placeholder': _('Select asset groups')}),
+ 'system_users': forms.SelectMultiple(attrs={'class': 'select2',
+ 'data-placeholder': _('Select system users')}),
+ }
+ help_texts = {
+ 'name': '* required',
+ 'user_groups': '* User or user group at least one required',
+ 'asset_groups': '* Asset or Asset group at least one required',
+ 'system_users': '* required',
+ }
diff --git a/apps/perms/hands.py b/apps/perms/hands.py
new file mode 100644
index 000000000..2a0f5b43f
--- /dev/null
+++ b/apps/perms/hands.py
@@ -0,0 +1,12 @@
+# ~*~ coding: utf-8 ~*~
+#
+
+from django.db import models
+from django.utils.translation import ugettext_lazy as _
+
+
+from users.utils import AdminUserRequiredMixin
+from users.models import User, UserGroup
+from assets.models import Asset, AssetGroup, SystemUser
+
+
diff --git a/apps/perms/models.py b/apps/perms/models.py
index bd4b2abe9..60e150672 100644
--- a/apps/perms/models.py
+++ b/apps/perms/models.py
@@ -1,5 +1,70 @@
-from __future__ import unicode_literals
+from __future__ import unicode_literals, absolute_import
+import functools
from django.db import models
+from django.utils.translation import ugettext_lazy as _
+from django.utils import timezone
+
+from users.models import User, UserGroup
+from assets.models import Asset, AssetGroup, SystemUser
+from common.utils import date_expired_default, combine_seq
+
+
+class AssetPermission(models.Model):
+ ACTION_CHOICE = (
+ ('1', 'Allow'),
+ ('0', 'Deny'),
+ )
+
+ name = models.CharField(max_length=128, verbose_name=_('Name'))
+ users = models.ManyToManyField(User, related_name='asset_permissions', blank=True)
+ user_groups = models.ManyToManyField(UserGroup, related_name='asset_permissions', blank=True)
+ assets = models.ManyToManyField(Asset, related_name='granted_by_permissions', blank=True)
+ asset_groups = models.ManyToManyField(AssetGroup, related_name='granted_by_permissions', blank=True)
+ system_users = models.ManyToManyField(SystemUser, related_name='granted_by_permissions')
+ action = models.CharField(choices=ACTION_CHOICE, max_length=8, default='1')
+ is_active = models.BooleanField(default=True, verbose_name=_('Active'))
+ date_expired = models.DateTimeField(default=date_expired_default, verbose_name=_('Date expired'))
+ created_by = models.CharField(max_length=128, blank=True, verbose_name=_('Created by'))
+ date_created = models.DateTimeField(auto_now=True, verbose_name=_('Date created'))
+ comment = models.TextField(verbose_name=_('Comment'), blank=True)
+
+ def __unicode__(self):
+ return '%(name)s: %(action)s' % {'name': self.name, 'action': self.action}
+
+ @property
+ def is_valid(self):
+ if self.date_expired < timezone.now() and self.is_active:
+ return True
+ return True
+
+ @staticmethod
+ def set_inherit(obj):
+ setattr(obj, 'inherited', True)
+ return obj
+
+ def get_granted_users(self):
+ return list(set(self.users.all() or []) | set(self.get_granted_user_groups_member()))
+
+ def get_granted_user_groups_member(self):
+ combine_users = functools.partial(combine_seq, callback=AssetPermission.set_inherit)
+ try:
+ return functools.reduce(combine_users, [user_group.users.all()
+ for user_group in self.user_groups.iterator()])
+ except TypeError:
+ return []
+
+ def get_granted_assets(self):
+ return list(set(self.assets.all() or []) | set(self.get_granted_asset_groups_member()))
+
+ def get_granted_asset_groups_member(self):
+ combine_assets = functools.partial(combine_seq, callback=AssetPermission.set_inherit)
+ try:
+ return functools.reduce(combine_assets, [asset_group.users.all()
+ for asset_group in self.asset_groups.iterator()])
+ except TypeError:
+ return []
+
+ class Meta:
+ db_table = 'asset_permission'
-# Create your models here.
diff --git a/apps/perms/templates/perms/asset_permission_asset_list.html b/apps/perms/templates/perms/asset_permission_asset_list.html
new file mode 100644
index 000000000..baad101d1
--- /dev/null
+++ b/apps/perms/templates/perms/asset_permission_asset_list.html
@@ -0,0 +1,196 @@
+{% extends 'base.html' %}
+{% load common_tags %}
+{% load users_tags %}
+{% load static %}
+{% load i18n %}
+
+{% block custom_head_css_js %}
+
+
+{% endblock %}
+{% block content %}
+
+
+
+
+
+
+
+
+
+
{% trans 'Asset list of ' %} {{ asset_permission.name }}
+
+
+
+
+
+
+ {% trans 'Hostname' %} |
+ {% trans 'IP' %} |
+ {% trans 'Port' %} |
+ {% trans 'Is valid' %} |
+ |
+
+
+
+ {% for asset in page_obj %}
+
+ {{ asset.hostname }} |
+ {{ asset.ip }} |
+ {{ user.port }} |
+
+ {% if asset.is_active %}
+
+ {% else %}
+
+ {% endif %}
+ |
+
+
+
+ |
+
+ {% endfor %}
+
+
+
+ {% include '_pagination.html' %}
+
+
+
+
+
+
+
+ {% trans 'Add asset to this permission' %}
+
+
+
+
+
+
+
+
+
+
+
+
+ {% trans 'Add asset group to this permission' %}
+
+
+
+
+
+
+ {% for asset_group in asset_groups %}
+
+ {{ asset_group.name }} |
+
+
+ |
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/perms/templates/perms/asset_permission_create_update.html b/apps/perms/templates/perms/asset_permission_create_update.html
new file mode 100644
index 000000000..68c023d59
--- /dev/null
+++ b/apps/perms/templates/perms/asset_permission_create_update.html
@@ -0,0 +1,96 @@
+{% extends 'base.html' %}
+{% load i18n %}
+{% load static %}
+{% load bootstrap %}
+{% block custom_head_css_js %}
+
+
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
{% trans 'Create asset permission ' %}
+
+
+
+
+
+
+
+
+
+{% endblock %}
+{% block custom_foot_js %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/perms/templates/perms/asset_permission_detail.html b/apps/perms/templates/perms/asset_permission_detail.html
new file mode 100644
index 000000000..ee4d1fab3
--- /dev/null
+++ b/apps/perms/templates/perms/asset_permission_detail.html
@@ -0,0 +1,220 @@
+{% extends 'base.html' %}
+{% load common_tags %}
+{% load users_tags %}
+{% load static %}
+{% load i18n %}
+
+{% block custom_head_css_js %}
+
+
+{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+
+
+
+
{{ asset_permission.name }}
+
+
+
+
+
+
+ {% trans 'Name' %}: |
+ {{ asset_permission.name }} |
+
+
+ {% trans 'User count' %}: |
+ {{ asset_permission.users.count }} |
+
+
+ {% trans 'User group count' %}: |
+ {{ asset_permission.users.count }} |
+
+
+ {% trans 'Asset count' %}: |
+ {{ asset_permission.assets.count }} |
+
+
+ {% trans 'Asset group count' %}: |
+ {{ asset_permission.asset_groups.count }} |
+
+
+ {% trans 'System user count' %}: |
+ {{ asset_permission.system_users.count }} |
+
+
+ {% trans 'Action' %}: |
+ {{ asset_permission.get_action_display }} |
+
+
+ {% trans 'Is active' %}: |
+ {{ asset_permission.is_active|yesno:'Yes, No, Unkown' }} |
+
+
+ {% trans 'Date expired' %}: |
+ {{ asset_permission.date_expired }} |
+
+
+ {% trans 'Date created' %}: |
+ {{ asset_permission.date_created }} |
+
+
+ {% trans 'Created by' %}: |
+ {{ asset_permission.created_by }} |
+
+
+ {% trans 'Comment' %}: |
+ {{ asset_permission.comment }} |
+
+
+
+
+
+
+
+
+
+
+ {% trans 'Quick update' %}
+
+
+
+
+
+ Active: |
+
+
+ |
+
+
+ {% trans 'Retest asset connectivity' %}: |
+
+
+
+
+ |
+
+
+
+ {% trans 'Repush system user' %}: |
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+ {% trans 'System user' %}
+
+
+
+
+
+
+ {% for system_user in system_users %}
+
+ {{ system_user.name }} |
+
+
+ |
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/perms/templates/perms/asset_permission_list.html b/apps/perms/templates/perms/asset_permission_list.html
new file mode 100644
index 000000000..d6e30a35b
--- /dev/null
+++ b/apps/perms/templates/perms/asset_permission_list.html
@@ -0,0 +1,73 @@
+{% extends '_list_base.html' %}
+{% load i18n %}
+{% load common_tags %}
+{% block content_left_head %}
+ {% trans "Create permission" %}
+{% endblock %}
+
+{% block table_head %}
+
+
+ |
+ {% trans 'Name' %} |
+ {% trans 'User count' %} |
+ {% trans 'User group count' %} |
+ {% trans 'Asset count' %} |
+ {% trans 'Asset group count' %} |
+ {% trans 'System user count' %} |
+ {% trans 'Is valid' %} |
+ |
+{% endblock %}
+
+{% block table_body %}
+ {% for asset_permission in asset_permission_list %}
+
+
+
+ |
+
+
+ {{ asset_permission.name }}
+
+ |
+ {{ asset_permission.users.count}} |
+ {{ asset_permission.user_groups.count}} |
+ {{ asset_permission.assets.count }} |
+ {{ asset_permission.asset_groups.count }} |
+ {{ asset_permission.system_users.count }} |
+
+ {% if asset_permission.is_valid %}
+
+ {% else %}
+
+ {% endif %}
+ |
+
+ {% trans 'Update' %}
+ {% trans 'Delete' %}
+ |
+
+ {% endfor %}
+{% endblock %}
+
+{% block content_bottom_left %}
+
+{% endblock %}
+
+
diff --git a/apps/perms/templates/perms/asset_permission_user_list.html b/apps/perms/templates/perms/asset_permission_user_list.html
new file mode 100644
index 000000000..886127dd0
--- /dev/null
+++ b/apps/perms/templates/perms/asset_permission_user_list.html
@@ -0,0 +1,196 @@
+{% extends 'base.html' %}
+{% load common_tags %}
+{% load users_tags %}
+{% load static %}
+{% load i18n %}
+
+{% block custom_head_css_js %}
+
+
+{% endblock %}
+{% block content %}
+
+
+
+
+
+
+
+
+
+
{% trans 'User list of ' %} {{ asset_permission.name }}
+
+
+
+
+
+
+ {% trans 'Name' %} |
+ {% trans 'Username' %} |
+ {% trans 'Email' %} |
+ {% trans 'Is valid' %} |
+ |
+
+
+
+ {% for user in page_obj %}
+
+ {{ user.name }} |
+ {{ user.username }} |
+ {{ user.email }} |
+
+ {% if user.is_expired and user.is_active %}
+
+ {% else %}
+
+ {% endif %}
+ |
+
+
+
+ |
+
+ {% endfor %}
+
+
+
+ {% include '_pagination.html' %}
+
+
+
+
+
+
+
+ {% trans 'Add user to asset permission' %}
+
+
+
+
+
+
+
+
+
+
+
+
+ {% trans 'Add user group to asset permission' %}
+
+
+
+
+
+
+ {% for user_group in user_groups %}
+
+ {{ user_group.name }} |
+
+
+ |
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+{% block custom_foot_js %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/perms/templates/perms/delete_confirm.html b/apps/perms/templates/perms/delete_confirm.html
new file mode 100644
index 000000000..777d1dbf9
--- /dev/null
+++ b/apps/perms/templates/perms/delete_confirm.html
@@ -0,0 +1,15 @@
+{% load i18n %}
+
+
+
+
+ {% trans 'Confirm delete' %}
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/perms/templates/perms/example.html b/apps/perms/templates/perms/example.html
deleted file mode 100644
index e69de29bb..000000000
diff --git a/apps/perms/templates/perms/perm_user_asset_list.html b/apps/perms/templates/perms/perm_user_asset_list.html
new file mode 100644
index 000000000..792716f0b
--- /dev/null
+++ b/apps/perms/templates/perms/perm_user_asset_list.html
@@ -0,0 +1,66 @@
+{% extends '_list_base.html' %}
+{% load i18n %}
+{% load common_tags %}
+{% block content_left_head %}
+ {% trans "Create perm " %}
+{% endblock %}
+
+{% block table_head %}
+
+
+ |
+ {% trans 'Name' %} |
+ {% trans 'Username' %} |
+ {% trans 'Role' %} |
+ {% trans 'Asset num' %} |
+ {% trans 'Asset group' %} |
+ {% trans 'System user' %} |
+ {% trans 'Active' %} |
+ |
+{% endblock %}
+
+{% block table_body %}
+ {% for perm in page_obj %}
+
+
+
+ |
+
+
+ {{ user.name }}
+
+ |
+ {{ user.username }} |
+ {{ user.get_role_display }} |
+ 35/40 |
+ 20 |
+ 3 |
+
+ {% trans 'Create perm' %}
+ {% trans 'Flush' %}
+ |
+
+ {% endfor %}
+{% endblock %}
+
+{% block content_bottom_left %}
+
+{% endblock %}
+
+
diff --git a/apps/perms/urls.py b/apps/perms/urls.py
index 39b3350fb..2749ff36c 100644
--- a/apps/perms/urls.py
+++ b/apps/perms/urls.py
@@ -1 +1,22 @@
+# coding:utf-8
+
from django.conf.urls import url
+import views
+
+app_name = 'perms'
+
+urlpatterns = [
+ url(r'^asset-permission$', views.AssetPermissionListView.as_view(), name='asset-permission-list'),
+ url(r'^asset-permission/create$', views.AssetPermissionCreateView.as_view(), name='asset-permission-create'),
+ url(r'^asset-permission/(?P[0-9]+)/update$', views.AssetPermissionUpdateView.as_view(),
+ name='asset-permission-update'),
+ url(r'^asset-permission/(?P[0-9]+)$', views.AssetPermissionDetailView.as_view(),
+ name='asset-permission-detail'),
+ url(r'^asset-permission/(?P[0-9]+)/delete$', views.AssetPermissionDeleteView.as_view(),
+ name='asset-permission-delete'),
+ url(r'^asset-permission/(?P[0-9]+)/user$', views.AssetPermissionUserListView.as_view(),
+ name='asset-permission-user-list'),
+ url(r'^asset-permission/(?P[0-9]+)/asset$', views.AssetPermissionAssetListView.as_view(),
+ name='asset-permission-asset-list'),
+]
+
diff --git a/apps/perms/views.py b/apps/perms/views.py
index 91ea44a21..e30a94774 100644
--- a/apps/perms/views.py
+++ b/apps/perms/views.py
@@ -1,3 +1,190 @@
-from django.shortcuts import render
+# ~*~ coding: utf-8 ~*~
-# Create your views here.
+from __future__ import unicode_literals, absolute_import
+import functools
+
+from django.utils.translation import ugettext as _
+from django.conf import settings
+from django.db.models import Q
+from django.views.generic import TemplateView, ListView
+from django.views.generic.edit import CreateView, DeleteView, FormView, UpdateView
+from django.urls import reverse_lazy
+from django.contrib.messages.views import SuccessMessageMixin
+from django.views.generic.detail import DetailView, SingleObjectMixin
+
+from common.utils import search_object_attr
+from .hands import AdminUserRequiredMixin, User, UserGroup, SystemUser, Asset, AssetGroup
+from .models import AssetPermission
+from .forms import AssetPermissionForm
+
+
+class AssetPermissionListView(AdminUserRequiredMixin, ListView):
+ model = AssetPermission
+ paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
+ context_object_name = 'asset_permission_list'
+ template_name = 'perms/asset_permission_list.html'
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': _('Perms'),
+ 'action': _('Asset permission list'),
+ 'keyword': self.keyword,
+ }
+ kwargs.update(context)
+ return super(AssetPermissionListView, self).get_context_data(**kwargs)
+
+ def get_queryset(self):
+ # Todo: Default order by lose asset connection num
+ self.queryset = super(AssetPermissionListView, self).get_queryset()
+ self.keyword = keyword = self.request.GET.get('keyword', '')
+ self.sort = sort = self.request.GET.get('sort', '-date_created')
+
+ if keyword:
+ self.queryset = self.queryset.filter(Q(users__name__contains=keyword) |
+ Q(users__username__contains=keyword) |
+ Q(user_groups__name__contains=keyword) |
+ Q(assets__ip__contains=keyword) |
+ Q(assets__hostname__contains=keyword) |
+ Q(system_users__username__icontains=keyword) |
+ Q(system_users__name__icontains=keyword) |
+ Q(asset_groups__name__icontains=keyword) |
+ Q(comment__icontains=keyword) |
+ Q(name__icontains=keyword)).distinct()
+ if sort:
+ self.queryset = self.queryset.order_by(sort)
+ return self.queryset
+
+
+class AssetPermissionCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView):
+ model = AssetPermission
+ form_class = AssetPermissionForm
+ template_name = 'perms/asset_permission_create_update.html'
+ success_url = reverse_lazy('perms:asset-permission-list')
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': _('Perms'),
+ 'action': _('Create asset permission'),
+ }
+ kwargs.update(context)
+ return super(AssetPermissionCreateView, self).get_context_data(**kwargs)
+
+ def get_success_message(self, cleaned_data):
+ success_message = _('Create asset permission %s successfully.' %
+ (
+ reverse_lazy('perms:asset-permission-detail', kwargs={'pk': self.object.pk}),
+ self.object.name,
+ ))
+ return success_message
+
+
+class AssetPermissionUpdateView(AdminUserRequiredMixin, UpdateView):
+ model = AssetPermission
+ form_class = AssetPermissionForm
+ template_name = 'perms/asset_permission_create_update.html'
+ success_message = _('Update asset permission %s successfully.')
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': _('Perms'),
+ 'action': _('Update asset permission')
+ }
+ kwargs.update(context)
+ return super(AssetPermissionUpdateView, self).get_context_data(**kwargs)
+
+ def get_success_url(self):
+ success_url = reverse_lazy('perms:asset-permission-detail', kwargs={'pk': self.object.pk})
+ return success_url
+
+
+class AssetPermissionDetailView(AdminUserRequiredMixin, DetailView):
+ template_name = 'perms/asset_permission_detail.html'
+ context_object_name = 'asset_permission'
+ model = AssetPermission
+
+ def get_context_data(self, **kwargs):
+ context = {
+ 'app': _('Perms'),
+ 'action': _('Asset permission detail'),
+ 'system_users_remain': [system_user for system_user in SystemUser.objects.all()
+ if system_user not in self.object.system_users.all()],
+ 'system_users': self.object.system_users.all(),
+ }
+ kwargs.update(context)
+ return super(AssetPermissionDetailView, self).get_context_data(**kwargs)
+
+
+class AssetPermissionDeleteView(AdminUserRequiredMixin, DeleteView):
+ model = AssetPermission
+ template_name = 'perms/delete_confirm.html'
+ success_url = reverse_lazy('perms:asset-permission-list')
+
+
+class AssetPermissionUserListView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
+ template_name = 'perms/asset_permission_user_list.html'
+ context_object_name = 'asset_permission'
+ paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
+
+ def get(self, request, *args, **kwargs):
+ self.object = self.get_object(queryset=AssetPermission.objects.all())
+ self.keyword = self.request.GET.get('keyword', '')
+ return super(AssetPermissionUserListView, self).get(request, *args, **kwargs)
+
+ def get_queryset(self):
+ queryset = self.object.get_granted_users()
+ if self.keyword:
+ search_func = functools.partial(search_object_attr, value=self.keyword,
+ attr_list=['username', 'name', 'email'],
+ ignore_case=True)
+ queryset = filter(search_func, queryset)
+ return queryset
+
+ def get_context_data(self, **kwargs):
+ users_granted = self.get_queryset()
+ user_groups_granted = self.object.user_groups.all()
+ context = {
+ 'app': _('Perms'),
+ 'action': _('Asset permission user list'),
+ 'users_remain': [user for user in User.objects.all() if user not in users_granted],
+ 'user_groups': self.object.user_groups.all(),
+ 'user_groups_remain': [user_group for user_group in UserGroup.objects.all()
+ if user_group not in user_groups_granted],
+ 'keyword': self.keyword,
+ }
+ kwargs.update(context)
+ return super(AssetPermissionUserListView, self).get_context_data(**kwargs)
+
+
+class AssetPermissionAssetListView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
+ template_name = 'perms/asset_permission_asset_list.html'
+ context_object_name = 'asset_permission'
+ paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
+
+ def get(self, request, *args, **kwargs):
+ self.object = self.get_object(queryset=AssetPermission.objects.all())
+ self.keyword = self.request.GET.get('keyword', '')
+ return super(AssetPermissionAssetListView, self).get(request, *args, **kwargs)
+
+ def get_queryset(self):
+ queryset = self.object.get_granted_assets()
+ if self.keyword:
+ search_func = functools.partial(search_object_attr, value=self.keyword,
+ attr_list=['hostname', 'ip'],
+ ignore_case=True)
+ queryset = filter(search_func, queryset)
+ return queryset
+
+ def get_context_data(self, **kwargs):
+ assets_granted = self.get_queryset()
+ asset_groups_granted = self.object.user_groups.all()
+ context = {
+ 'app': _('Perms'),
+ 'action': _('Asset permission asset list'),
+ 'assets_remain': (asset for asset in Asset.objects.all() if asset not in assets_granted),
+ 'asset_groups': self.object.asset_groups.all(),
+ 'asset_groups_remain': [asset_group for asset_group in AssetGroup.objects.all()
+ if asset_group not in asset_groups_granted],
+ 'keyword': self.keyword,
+ }
+ kwargs.update(context)
+ return super(AssetPermissionAssetListView, self).get_context_data(**kwargs)
diff --git a/apps/static/css/images/jbox-button1.png b/apps/static/css/images/jbox-button1.png
new file mode 100644
index 000000000..7d8a6a4b2
Binary files /dev/null and b/apps/static/css/images/jbox-button1.png differ
diff --git a/apps/static/css/images/jbox-close.gif b/apps/static/css/images/jbox-close.gif
new file mode 100644
index 000000000..83ffe0b6c
Binary files /dev/null and b/apps/static/css/images/jbox-close.gif differ
diff --git a/apps/static/css/images/jbox-icons.png b/apps/static/css/images/jbox-icons.png
new file mode 100644
index 000000000..c35abcffc
Binary files /dev/null and b/apps/static/css/images/jbox-icons.png differ
diff --git a/apps/static/css/jumpserver.css b/apps/static/css/jumpserver.css
index e293dc860..7948a33df 100644
--- a/apps/static/css/jumpserver.css
+++ b/apps/static/css/jumpserver.css
@@ -38,6 +38,7 @@ th a {
color: white;
}
+.select2-selection--single,
.select2-selection--multiple {
border: 1px solid #e5e6e7 !important;
cursor: text !important;
diff --git a/apps/static/css/plugins/sweetalert/sweetalert.css b/apps/static/css/plugins/sweetalert/sweetalert.css
new file mode 100644
index 000000000..4469aea6b
--- /dev/null
+++ b/apps/static/css/plugins/sweetalert/sweetalert.css
@@ -0,0 +1,715 @@
+body.stop-scrolling {
+ height: 100%;
+ overflow: hidden; }
+
+.sweet-overlay {
+ background-color: black;
+ /* IE8 */
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
+ /* IE8 */
+ background-color: rgba(0, 0, 0, 0.4);
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ display: none;
+ z-index: 10000; }
+
+.sweet-alert {
+ background-color: white;
+ font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ width: 478px;
+ padding: 17px;
+ border-radius: 5px;
+ text-align: center;
+ position: fixed;
+ left: 50%;
+ top: 50%;
+ margin-left: -256px;
+ margin-top: -200px;
+ overflow: hidden;
+ display: none;
+ z-index: 99999; }
+ @media all and (max-width: 540px) {
+ .sweet-alert {
+ width: auto;
+ margin-left: 0;
+ margin-right: 0;
+ left: 15px;
+ right: 15px; } }
+ .sweet-alert h2 {
+ color: #575757;
+ font-size: 30px;
+ text-align: center;
+ font-weight: 600;
+ text-transform: none;
+ position: relative;
+ margin: 25px 0;
+ padding: 0;
+ line-height: 40px;
+ display: block; }
+ .sweet-alert p {
+ color: #797979;
+ font-size: 16px;
+ text-align: center;
+ font-weight: 300;
+ position: relative;
+ text-align: inherit;
+ float: none;
+ margin: 0;
+ padding: 0;
+ line-height: normal; }
+ .sweet-alert fieldset {
+ border: none;
+ position: relative; }
+ .sweet-alert .sa-error-container {
+ background-color: #f1f1f1;
+ margin-left: -17px;
+ margin-right: -17px;
+ overflow: hidden;
+ padding: 0 10px;
+ max-height: 0;
+ webkit-transition: padding 0.15s, max-height 0.15s;
+ transition: padding 0.15s, max-height 0.15s; }
+ .sweet-alert .sa-error-container.show {
+ padding: 10px 0;
+ max-height: 100px;
+ webkit-transition: padding 0.2s, max-height 0.2s;
+ transition: padding 0.25s, max-height 0.25s; }
+ .sweet-alert .sa-error-container .icon {
+ display: inline-block;
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ background-color: #ea7d7d;
+ color: white;
+ line-height: 24px;
+ text-align: center;
+ margin-right: 3px; }
+ .sweet-alert .sa-error-container p {
+ display: inline-block; }
+ .sweet-alert .sa-input-error {
+ position: absolute;
+ top: 29px;
+ right: 26px;
+ width: 20px;
+ height: 20px;
+ opacity: 0;
+ -webkit-transform: scale(0.5);
+ transform: scale(0.5);
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-transition: all 0.1s;
+ transition: all 0.1s; }
+ .sweet-alert .sa-input-error::before, .sweet-alert .sa-input-error::after {
+ content: "";
+ width: 20px;
+ height: 6px;
+ background-color: #f06e57;
+ border-radius: 3px;
+ position: absolute;
+ top: 50%;
+ margin-top: -4px;
+ left: 50%;
+ margin-left: -9px; }
+ .sweet-alert .sa-input-error::before {
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg); }
+ .sweet-alert .sa-input-error::after {
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg); }
+ .sweet-alert .sa-input-error.show {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1); }
+ .sweet-alert input {
+ width: 100%;
+ box-sizing: border-box;
+ border-radius: 3px;
+ border: 1px solid #d7d7d7;
+ height: 43px;
+ margin-top: 10px;
+ margin-bottom: 17px;
+ font-size: 18px;
+ box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.06);
+ padding: 0 12px;
+ display: none;
+ -webkit-transition: all 0.3s;
+ transition: all 0.3s; }
+ .sweet-alert input:focus {
+ outline: none;
+ box-shadow: 0px 0px 3px #c4e6f5;
+ border: 1px solid #b4dbed; }
+ .sweet-alert input:focus::-moz-placeholder {
+ transition: opacity 0.3s 0.03s ease;
+ opacity: 0.5; }
+ .sweet-alert input:focus:-ms-input-placeholder {
+ transition: opacity 0.3s 0.03s ease;
+ opacity: 0.5; }
+ .sweet-alert input:focus::-webkit-input-placeholder {
+ transition: opacity 0.3s 0.03s ease;
+ opacity: 0.5; }
+ .sweet-alert input::-moz-placeholder {
+ color: #bdbdbd; }
+ .sweet-alert input:-ms-input-placeholder {
+ color: #bdbdbd; }
+ .sweet-alert input::-webkit-input-placeholder {
+ color: #bdbdbd; }
+ .sweet-alert.show-input input {
+ display: block; }
+ .sweet-alert button {
+ background-color: #AEDEF4;
+ color: white;
+ border: none;
+ box-shadow: none;
+ font-size: 17px;
+ font-weight: 500;
+ -webkit-border-radius: 4px;
+ border-radius: 5px;
+ padding: 10px 32px;
+ margin: 26px 5px 0 5px;
+ cursor: pointer; }
+ .sweet-alert button:focus {
+ outline: none;
+ box-shadow: 0 0 2px rgba(128, 179, 235, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.05); }
+ .sweet-alert button:hover {
+ background-color: #a1d9f2; }
+ .sweet-alert button:active {
+ background-color: #81ccee; }
+ .sweet-alert button.cancel {
+ background-color: #D0D0D0; }
+ .sweet-alert button.cancel:hover {
+ background-color: #c8c8c8; }
+ .sweet-alert button.cancel:active {
+ background-color: #b6b6b6; }
+ .sweet-alert button.cancel:focus {
+ box-shadow: rgba(197, 205, 211, 0.8) 0px 0px 2px, rgba(0, 0, 0, 0.0470588) 0px 0px 0px 1px inset !important; }
+ .sweet-alert button::-moz-focus-inner {
+ border: 0; }
+ .sweet-alert[data-has-cancel-button=false] button {
+ box-shadow: none !important; }
+ .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] {
+ padding-bottom: 40px; }
+ .sweet-alert .sa-icon {
+ width: 80px;
+ height: 80px;
+ border: 4px solid gray;
+ -webkit-border-radius: 40px;
+ border-radius: 40px;
+ border-radius: 50%;
+ margin: 20px auto;
+ padding: 0;
+ position: relative;
+ box-sizing: content-box; }
+ .sweet-alert .sa-icon.sa-error {
+ border-color: #F27474; }
+ .sweet-alert .sa-icon.sa-error .sa-x-mark {
+ position: relative;
+ display: block; }
+ .sweet-alert .sa-icon.sa-error .sa-line {
+ position: absolute;
+ height: 5px;
+ width: 47px;
+ background-color: #F27474;
+ display: block;
+ top: 37px;
+ border-radius: 2px; }
+ .sweet-alert .sa-icon.sa-error .sa-line.sa-left {
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg);
+ left: 17px; }
+ .sweet-alert .sa-icon.sa-error .sa-line.sa-right {
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ right: 16px; }
+ .sweet-alert .sa-icon.sa-warning {
+ border-color: #F8BB86; }
+ .sweet-alert .sa-icon.sa-warning .sa-body {
+ position: absolute;
+ width: 5px;
+ height: 47px;
+ left: 50%;
+ top: 10px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+ margin-left: -2px;
+ background-color: #F8BB86; }
+ .sweet-alert .sa-icon.sa-warning .sa-dot {
+ position: absolute;
+ width: 7px;
+ height: 7px;
+ -webkit-border-radius: 50%;
+ border-radius: 50%;
+ margin-left: -3px;
+ left: 50%;
+ bottom: 10px;
+ background-color: #F8BB86; }
+ .sweet-alert .sa-icon.sa-info {
+ border-color: #C9DAE1; }
+ .sweet-alert .sa-icon.sa-info::before {
+ content: "";
+ position: absolute;
+ width: 5px;
+ height: 29px;
+ left: 50%;
+ bottom: 17px;
+ border-radius: 2px;
+ margin-left: -2px;
+ background-color: #C9DAE1; }
+ .sweet-alert .sa-icon.sa-info::after {
+ content: "";
+ position: absolute;
+ width: 7px;
+ height: 7px;
+ border-radius: 50%;
+ margin-left: -3px;
+ top: 19px;
+ background-color: #C9DAE1; }
+ .sweet-alert .sa-icon.sa-success {
+ border-color: #A5DC86; }
+ .sweet-alert .sa-icon.sa-success::before, .sweet-alert .sa-icon.sa-success::after {
+ content: '';
+ -webkit-border-radius: 40px;
+ border-radius: 40px;
+ border-radius: 50%;
+ position: absolute;
+ width: 60px;
+ height: 120px;
+ background: white;
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg); }
+ .sweet-alert .sa-icon.sa-success::before {
+ -webkit-border-radius: 120px 0 0 120px;
+ border-radius: 120px 0 0 120px;
+ top: -7px;
+ left: -33px;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ -webkit-transform-origin: 60px 60px;
+ transform-origin: 60px 60px; }
+ .sweet-alert .sa-icon.sa-success::after {
+ -webkit-border-radius: 0 120px 120px 0;
+ border-radius: 0 120px 120px 0;
+ top: -11px;
+ left: 30px;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ -webkit-transform-origin: 0px 60px;
+ transform-origin: 0px 60px; }
+ .sweet-alert .sa-icon.sa-success .sa-placeholder {
+ width: 80px;
+ height: 80px;
+ border: 4px solid rgba(165, 220, 134, 0.2);
+ -webkit-border-radius: 40px;
+ border-radius: 40px;
+ border-radius: 50%;
+ box-sizing: content-box;
+ position: absolute;
+ left: -4px;
+ top: -4px;
+ z-index: 2; }
+ .sweet-alert .sa-icon.sa-success .sa-fix {
+ width: 5px;
+ height: 90px;
+ background-color: white;
+ position: absolute;
+ left: 28px;
+ top: 8px;
+ z-index: 1;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg); }
+ .sweet-alert .sa-icon.sa-success .sa-line {
+ height: 5px;
+ background-color: #A5DC86;
+ display: block;
+ border-radius: 2px;
+ position: absolute;
+ z-index: 2; }
+ .sweet-alert .sa-icon.sa-success .sa-line.sa-tip {
+ width: 25px;
+ left: 14px;
+ top: 46px;
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg); }
+ .sweet-alert .sa-icon.sa-success .sa-line.sa-long {
+ width: 47px;
+ right: 8px;
+ top: 38px;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg); }
+ .sweet-alert .sa-icon.sa-custom {
+ background-size: contain;
+ border-radius: 0;
+ border: none;
+ background-position: center center;
+ background-repeat: no-repeat; }
+
+/*
+ * Animations
+ */
+@-webkit-keyframes showSweetAlert {
+ 0% {
+ transform: scale(0.7);
+ -webkit-transform: scale(0.7); }
+ 45% {
+ transform: scale(1.05);
+ -webkit-transform: scale(1.05); }
+ 80% {
+ transform: scale(0.95);
+ -webkit-transform: scale(0.95); }
+ 100% {
+ transform: scale(1);
+ -webkit-transform: scale(1); } }
+
+@keyframes showSweetAlert {
+ 0% {
+ transform: scale(0.7);
+ -webkit-transform: scale(0.7); }
+ 45% {
+ transform: scale(1.05);
+ -webkit-transform: scale(1.05); }
+ 80% {
+ transform: scale(0.95);
+ -webkit-transform: scale(0.95); }
+ 100% {
+ transform: scale(1);
+ -webkit-transform: scale(1); } }
+
+@-webkit-keyframes hideSweetAlert {
+ 0% {
+ transform: scale(1);
+ -webkit-transform: scale(1); }
+ 100% {
+ transform: scale(0.5);
+ -webkit-transform: scale(0.5); } }
+
+@keyframes hideSweetAlert {
+ 0% {
+ transform: scale(1);
+ -webkit-transform: scale(1); }
+ 100% {
+ transform: scale(0.5);
+ -webkit-transform: scale(0.5); } }
+
+@-webkit-keyframes slideFromTop {
+ 0% {
+ top: 0%; }
+ 100% {
+ top: 50%; } }
+
+@keyframes slideFromTop {
+ 0% {
+ top: 0%; }
+ 100% {
+ top: 50%; } }
+
+@-webkit-keyframes slideToTop {
+ 0% {
+ top: 50%; }
+ 100% {
+ top: 0%; } }
+
+@keyframes slideToTop {
+ 0% {
+ top: 50%; }
+ 100% {
+ top: 0%; } }
+
+@-webkit-keyframes slideFromBottom {
+ 0% {
+ top: 70%; }
+ 100% {
+ top: 50%; } }
+
+@keyframes slideFromBottom {
+ 0% {
+ top: 70%; }
+ 100% {
+ top: 50%; } }
+
+@-webkit-keyframes slideToBottom {
+ 0% {
+ top: 50%; }
+ 100% {
+ top: 70%; } }
+
+@keyframes slideToBottom {
+ 0% {
+ top: 50%; }
+ 100% {
+ top: 70%; } }
+
+.showSweetAlert[data-animation=pop] {
+ -webkit-animation: showSweetAlert 0.3s;
+ animation: showSweetAlert 0.3s; }
+
+.showSweetAlert[data-animation=none] {
+ -webkit-animation: none;
+ animation: none; }
+
+.showSweetAlert[data-animation=slide-from-top] {
+ -webkit-animation: slideFromTop 0.3s;
+ animation: slideFromTop 0.3s; }
+
+.showSweetAlert[data-animation=slide-from-bottom] {
+ -webkit-animation: slideFromBottom 0.3s;
+ animation: slideFromBottom 0.3s; }
+
+.hideSweetAlert[data-animation=pop] {
+ -webkit-animation: hideSweetAlert 0.2s;
+ animation: hideSweetAlert 0.2s; }
+
+.hideSweetAlert[data-animation=none] {
+ -webkit-animation: none;
+ animation: none; }
+
+.hideSweetAlert[data-animation=slide-from-top] {
+ -webkit-animation: slideToTop 0.4s;
+ animation: slideToTop 0.4s; }
+
+.hideSweetAlert[data-animation=slide-from-bottom] {
+ -webkit-animation: slideToBottom 0.3s;
+ animation: slideToBottom 0.3s; }
+
+@-webkit-keyframes animateSuccessTip {
+ 0% {
+ width: 0;
+ left: 1px;
+ top: 19px; }
+ 54% {
+ width: 0;
+ left: 1px;
+ top: 19px; }
+ 70% {
+ width: 50px;
+ left: -8px;
+ top: 37px; }
+ 84% {
+ width: 17px;
+ left: 21px;
+ top: 48px; }
+ 100% {
+ width: 25px;
+ left: 14px;
+ top: 45px; } }
+
+@keyframes animateSuccessTip {
+ 0% {
+ width: 0;
+ left: 1px;
+ top: 19px; }
+ 54% {
+ width: 0;
+ left: 1px;
+ top: 19px; }
+ 70% {
+ width: 50px;
+ left: -8px;
+ top: 37px; }
+ 84% {
+ width: 17px;
+ left: 21px;
+ top: 48px; }
+ 100% {
+ width: 25px;
+ left: 14px;
+ top: 45px; } }
+
+@-webkit-keyframes animateSuccessLong {
+ 0% {
+ width: 0;
+ right: 46px;
+ top: 54px; }
+ 65% {
+ width: 0;
+ right: 46px;
+ top: 54px; }
+ 84% {
+ width: 55px;
+ right: 0px;
+ top: 35px; }
+ 100% {
+ width: 47px;
+ right: 8px;
+ top: 38px; } }
+
+@keyframes animateSuccessLong {
+ 0% {
+ width: 0;
+ right: 46px;
+ top: 54px; }
+ 65% {
+ width: 0;
+ right: 46px;
+ top: 54px; }
+ 84% {
+ width: 55px;
+ right: 0px;
+ top: 35px; }
+ 100% {
+ width: 47px;
+ right: 8px;
+ top: 38px; } }
+
+@-webkit-keyframes rotatePlaceholder {
+ 0% {
+ transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg); }
+ 5% {
+ transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg); }
+ 12% {
+ transform: rotate(-405deg);
+ -webkit-transform: rotate(-405deg); }
+ 100% {
+ transform: rotate(-405deg);
+ -webkit-transform: rotate(-405deg); } }
+
+@keyframes rotatePlaceholder {
+ 0% {
+ transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg); }
+ 5% {
+ transform: rotate(-45deg);
+ -webkit-transform: rotate(-45deg); }
+ 12% {
+ transform: rotate(-405deg);
+ -webkit-transform: rotate(-405deg); }
+ 100% {
+ transform: rotate(-405deg);
+ -webkit-transform: rotate(-405deg); } }
+
+.animateSuccessTip {
+ -webkit-animation: animateSuccessTip 0.75s;
+ animation: animateSuccessTip 0.75s; }
+
+.animateSuccessLong {
+ -webkit-animation: animateSuccessLong 0.75s;
+ animation: animateSuccessLong 0.75s; }
+
+.sa-icon.sa-success.animate::after {
+ -webkit-animation: rotatePlaceholder 4.25s ease-in;
+ animation: rotatePlaceholder 4.25s ease-in; }
+
+@-webkit-keyframes animateErrorIcon {
+ 0% {
+ transform: rotateX(100deg);
+ -webkit-transform: rotateX(100deg);
+ opacity: 0; }
+ 100% {
+ transform: rotateX(0deg);
+ -webkit-transform: rotateX(0deg);
+ opacity: 1; } }
+
+@keyframes animateErrorIcon {
+ 0% {
+ transform: rotateX(100deg);
+ -webkit-transform: rotateX(100deg);
+ opacity: 0; }
+ 100% {
+ transform: rotateX(0deg);
+ -webkit-transform: rotateX(0deg);
+ opacity: 1; } }
+
+.animateErrorIcon {
+ -webkit-animation: animateErrorIcon 0.5s;
+ animation: animateErrorIcon 0.5s; }
+
+@-webkit-keyframes animateXMark {
+ 0% {
+ transform: scale(0.4);
+ -webkit-transform: scale(0.4);
+ margin-top: 26px;
+ opacity: 0; }
+ 50% {
+ transform: scale(0.4);
+ -webkit-transform: scale(0.4);
+ margin-top: 26px;
+ opacity: 0; }
+ 80% {
+ transform: scale(1.15);
+ -webkit-transform: scale(1.15);
+ margin-top: -6px; }
+ 100% {
+ transform: scale(1);
+ -webkit-transform: scale(1);
+ margin-top: 0;
+ opacity: 1; } }
+
+@keyframes animateXMark {
+ 0% {
+ transform: scale(0.4);
+ -webkit-transform: scale(0.4);
+ margin-top: 26px;
+ opacity: 0; }
+ 50% {
+ transform: scale(0.4);
+ -webkit-transform: scale(0.4);
+ margin-top: 26px;
+ opacity: 0; }
+ 80% {
+ transform: scale(1.15);
+ -webkit-transform: scale(1.15);
+ margin-top: -6px; }
+ 100% {
+ transform: scale(1);
+ -webkit-transform: scale(1);
+ margin-top: 0;
+ opacity: 1; } }
+
+.animateXMark {
+ -webkit-animation: animateXMark 0.5s;
+ animation: animateXMark 0.5s; }
+
+@-webkit-keyframes pulseWarning {
+ 0% {
+ border-color: #F8D486; }
+ 100% {
+ border-color: #F8BB86; } }
+
+@keyframes pulseWarning {
+ 0% {
+ border-color: #F8D486; }
+ 100% {
+ border-color: #F8BB86; } }
+
+.pulseWarning {
+ -webkit-animation: pulseWarning 0.75s infinite alternate;
+ animation: pulseWarning 0.75s infinite alternate; }
+
+@-webkit-keyframes pulseWarningIns {
+ 0% {
+ background-color: #F8D486; }
+ 100% {
+ background-color: #F8BB86; } }
+
+@keyframes pulseWarningIns {
+ 0% {
+ background-color: #F8D486; }
+ 100% {
+ background-color: #F8BB86; } }
+
+.pulseWarningIns {
+ -webkit-animation: pulseWarningIns 0.75s infinite alternate;
+ animation: pulseWarningIns 0.75s infinite alternate; }
+
+/* Internet Explorer 9 has some special quirks that are fixed here */
+/* The icons are not animated. */
+/* This file is automatically merged into sweet-alert.min.js through Gulp */
+/* Error icon */
+.sweet-alert .sa-icon.sa-error .sa-line.sa-left {
+ -ms-transform: rotate(45deg) \9; }
+
+.sweet-alert .sa-icon.sa-error .sa-line.sa-right {
+ -ms-transform: rotate(-45deg) \9; }
+
+/* Success icon */
+.sweet-alert .sa-icon.sa-success {
+ border-color: transparent\9; }
+
+.sweet-alert .sa-icon.sa-success .sa-line.sa-tip {
+ -ms-transform: rotate(45deg) \9; }
+
+.sweet-alert .sa-icon.sa-success .sa-line.sa-long {
+ -ms-transform: rotate(-45deg) \9; }
diff --git a/apps/static/css/plugins/toastr/toastr.min.css b/apps/static/css/plugins/toastr/toastr.min.css
new file mode 100644
index 000000000..567716ea2
--- /dev/null
+++ b/apps/static/css/plugins/toastr/toastr.min.css
@@ -0,0 +1,222 @@
+.toast-title {
+ font-weight: 700
+}
+
+.toast-message {
+ -ms-word-wrap: break-word;
+ word-wrap: break-word
+}
+
+.toast-message a, .toast-message label {
+ color: #fff
+}
+
+.toast-message a:hover {
+ color: #ccc;
+ text-decoration: none
+}
+
+.toast-close-button {
+ position: relative;
+ right: -.3em;
+ top: -.3em;
+ float: right;
+ font-size: 20px;
+ font-weight: 700;
+ color: #fff;
+ -webkit-text-shadow: 0 1px 0 #fff;
+ text-shadow: 0 1px 0 #fff;
+ opacity: .8;
+ -ms-filter: alpha(Opacity=80);
+ filter: alpha(opacity=80)
+}
+
+.toast-close-button:focus, .toast-close-button:hover {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: .4;
+ -ms-filter: alpha(Opacity=40);
+ filter: alpha(opacity=40)
+}
+
+button.toast-close-button {
+ padding: 0;
+ cursor: pointer;
+ background: 0 0;
+ border: 0;
+ -webkit-appearance: none
+}
+
+.toast-top-center {
+ top: 0;
+ right: 0;
+ width: 100%
+}
+
+.toast-bottom-center {
+ bottom: 0;
+ right: 0;
+ width: 100%
+}
+
+.toast-top-full-width {
+ top: 0;
+ right: 0;
+ width: 100%
+}
+
+.toast-bottom-full-width {
+ bottom: 0;
+ right: 0;
+ width: 100%
+}
+
+.toast-top-left {
+ top: 12px;
+ left: 12px
+}
+
+.toast-top-right {
+ top: 12px;
+ right: 12px
+}
+
+.toast-bottom-right {
+ right: 12px;
+ bottom: 12px
+}
+
+.toast-bottom-left {
+ bottom: 12px;
+ left: 12px
+}
+
+#toast-container {
+ position: fixed;
+ z-index: 999999
+}
+
+#toast-container * {
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box
+}
+
+#toast-container > div {
+ position: relative;
+ overflow: hidden;
+ margin: 0 0 6px;
+ padding: 15px 15px 15px 50px;
+ width: 300px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ background-position: 15px center;
+ background-repeat: no-repeat;
+ -moz-box-shadow: 0 0 12px #999;
+ -webkit-box-shadow: 0 0 12px #999;
+ box-shadow: 0 0 12px #999;
+ color: #fff;
+ opacity: .8;
+ -ms-filter: alpha(Opacity=80);
+ filter: alpha(opacity=80)
+}
+
+#toast-container > :hover {
+ -moz-box-shadow: 0 0 12px #000;
+ -webkit-box-shadow: 0 0 12px #000;
+ box-shadow: 0 0 12px #000;
+ opacity: 1;
+ -ms-filter: alpha(Opacity=100);
+ filter: alpha(opacity=100);
+ cursor: pointer
+}
+
+#toast-container > .toast-info {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=) !important
+}
+
+#toast-container > .toast-error {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=) !important
+}
+
+#toast-container > .toast-success {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==) !important
+}
+
+#toast-container > .toast-warning {
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=) !important
+}
+
+#toast-container.toast-bottom-center > div, #toast-container.toast-top-center > div {
+ width: 300px;
+ margin: auto
+}
+
+#toast-container.toast-bottom-full-width > div, #toast-container.toast-top-full-width > div {
+ width: 96%;
+ margin: auto
+}
+
+.toast {
+ background-color: #030303
+}
+
+.toast-success {
+ background-color: #51a351
+}
+
+.toast-error {
+ background-color: #bd362f
+}
+
+.toast-info {
+ background-color: #2f96b4
+}
+
+.toast-warning {
+ background-color: #f89406
+}
+
+.toast-progress {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ height: 4px;
+ background-color: #000;
+ opacity: .4;
+ -ms-filter: alpha(Opacity=40);
+ filter: alpha(opacity=40)
+}
+
+@media all and (max-width: 240px) {
+ #toast-container > div {
+ padding: 8px 8px 8px 50px;
+ width: 11em
+ }
+
+ #toast-container .toast-close-button {
+ right: -.2em;
+ top: -.2em
+ }
+}
+
+@media all and (min-width: 241px) and (max-width: 480px) {
+ #toast-container > div {
+ padding: 8px 8px 8px 50px;
+ width: 18em
+ }
+
+ #toast-container .toast-close-button {
+ right: -.2em;
+ top: -.2em
+ }
+}
+
+@media all and (min-width: 481px) and (max-width: 768px) {
+ #toast-container > div {
+ padding: 15px 15px 15px 50px;
+ width: 25em
+ }
+}
\ No newline at end of file
diff --git a/apps/static/jbox/Skins/jumpserver/Desktop.ini b/apps/static/jbox/Skins/jumpserver/Desktop.ini
new file mode 100644
index 000000000..09485b11b
--- /dev/null
+++ b/apps/static/jbox/Skins/jumpserver/Desktop.ini
@@ -0,0 +1,3 @@
+[.ShellClassInfo]
+IconFile=%SystemRoot%\system32\SHELL32.dll
+IconIndex=161
diff --git a/apps/static/jbox/Skins/jumpserver/images/Thumbs.db b/apps/static/jbox/Skins/jumpserver/images/Thumbs.db
new file mode 100644
index 000000000..37d2c8e06
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/Thumbs.db differ
diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-button1.png b/apps/static/jbox/Skins/jumpserver/images/jbox-button1.png
new file mode 100644
index 000000000..7d8a6a4b2
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/jbox-button1.png differ
diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-button2.png b/apps/static/jbox/Skins/jumpserver/images/jbox-button2.png
new file mode 100644
index 000000000..456a48100
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/jbox-button2.png differ
diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-close1.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-close1.gif
new file mode 100644
index 000000000..a87057e89
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/jbox-close1.gif differ
diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-close2.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-close2.gif
new file mode 100644
index 000000000..dd2dde900
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/jbox-close2.gif differ
diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-content-loading.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-content-loading.gif
new file mode 100644
index 000000000..f3e165009
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/jbox-content-loading.gif differ
diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-icons-ie6.gif
new file mode 100644
index 000000000..201b912e0
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/jbox-icons-ie6.gif differ
diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-icons.png b/apps/static/jbox/Skins/jumpserver/images/jbox-icons.png
new file mode 100644
index 000000000..c35abcffc
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/jbox-icons.png differ
diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-loading1.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-loading1.gif
new file mode 100644
index 000000000..684c59dbe
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/jbox-loading1.gif differ
diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-loading2.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-loading2.gif
new file mode 100644
index 000000000..60f007036
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/jbox-loading2.gif differ
diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-loading3.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-loading3.gif
new file mode 100644
index 000000000..5e0e6c17b
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/jbox-loading3.gif differ
diff --git a/apps/static/jbox/Skins/jumpserver/images/jbox-title-icon.gif b/apps/static/jbox/Skins/jumpserver/images/jbox-title-icon.gif
new file mode 100644
index 000000000..b9c772fb5
Binary files /dev/null and b/apps/static/jbox/Skins/jumpserver/images/jbox-title-icon.gif differ
diff --git a/apps/static/jbox/Skins/jumpserver/jbox.css b/apps/static/jbox/Skins/jumpserver/jbox.css
new file mode 100644
index 000000000..e34a7b3d8
--- /dev/null
+++ b/apps/static/jbox/Skins/jumpserver/jbox.css
@@ -0,0 +1,43 @@
+@charset "utf-8";
+/*
+ ʾCSS ʽֻɫԣͼƬĵַͼƬСҪĬϵһ£border:dotted solid double dashed
+*/
+*:focus {outline: none;}
+/* fade */
+.jbox-fade{background-color:#000000;}
+/* drag */
+.jbox-drag{border:1px dashed #003870;}
+/* jbox */
+div.jbox {padding:0px;border:none;font-size:12px;}
+/* border */
+div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;}
+/* container */
+div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;}
+/* title-panel */
+div.jbox .jbox-title-panel{background:#2f4050;border-bottom:1px solid #CCCCCC;}
+div.jbox .jbox-title{font-weight:bold;color:#ffffff;}
+div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;}
+div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;}
+div.jbox .jbox-close-hover{background-position:-16px 0;}
+/* content */
+div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;}
+div.jbox .jbox-content-loading{background-color:#E6E6E6;}
+div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;}
+/* button-panel */
+div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;}
+div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;}
+div.jbox .jbox-button{background:url(images/jbox-button2.png) repeat-x transparent;border:#AAAAAA 1px solid;color:#888888;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;}
+div.jbox .jbox-button-hover{background-position:0px -20px;color:#666666;}
+div.jbox .jbox-button-active{background-position:0px -40px;}
+div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;}
+/* tip-color */
+div.jbox .jbox-tip-color{background-color:#003870;border-color:#003870;border-radius:3px 3px 3px 3px;color:#ffffff;}
+/* icons */
+div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;}
+div.jbox span.jbox-icon-info {background-position:0 0;}
+div.jbox span.jbox-icon-question {background-position:-36px 0;}
+div.jbox span.jbox-icon-success {background-position:-72px 0;}
+div.jbox span.jbox-icon-warning {background-position:-108px 0;}
+div.jbox span.jbox-icon-error {background-position:-144px 0;}
+div.jbox span.jbox-icon-none {display: none; overflow:hidden;}
+div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;}
\ No newline at end of file
diff --git a/apps/static/jbox/Skins2/jumpserver/Desktop.ini b/apps/static/jbox/Skins2/jumpserver/Desktop.ini
new file mode 100644
index 000000000..09485b11b
--- /dev/null
+++ b/apps/static/jbox/Skins2/jumpserver/Desktop.ini
@@ -0,0 +1,3 @@
+[.ShellClassInfo]
+IconFile=%SystemRoot%\system32\SHELL32.dll
+IconIndex=161
diff --git a/apps/static/jbox/Skins2/jumpserver/images/Thumbs.db b/apps/static/jbox/Skins2/jumpserver/images/Thumbs.db
new file mode 100644
index 000000000..c9e4ec7f9
Binary files /dev/null and b/apps/static/jbox/Skins2/jumpserver/images/Thumbs.db differ
diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-close1.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-close1.gif
new file mode 100644
index 000000000..a87057e89
Binary files /dev/null and b/apps/static/jbox/Skins2/jumpserver/images/jbox-close1.gif differ
diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-close2.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-close2.gif
new file mode 100644
index 000000000..dd2dde900
Binary files /dev/null and b/apps/static/jbox/Skins2/jumpserver/images/jbox-close2.gif differ
diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-content-loading.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-content-loading.gif
new file mode 100644
index 000000000..f04301a94
Binary files /dev/null and b/apps/static/jbox/Skins2/jumpserver/images/jbox-content-loading.gif differ
diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-icons-ie6.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-icons-ie6.gif
new file mode 100644
index 000000000..201b912e0
Binary files /dev/null and b/apps/static/jbox/Skins2/jumpserver/images/jbox-icons-ie6.gif differ
diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-icons.png b/apps/static/jbox/Skins2/jumpserver/images/jbox-icons.png
new file mode 100644
index 000000000..f72f29240
Binary files /dev/null and b/apps/static/jbox/Skins2/jumpserver/images/jbox-icons.png differ
diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-loading1.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-loading1.gif
new file mode 100644
index 000000000..5e0834f1d
Binary files /dev/null and b/apps/static/jbox/Skins2/jumpserver/images/jbox-loading1.gif differ
diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-loading2.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-loading2.gif
new file mode 100644
index 000000000..209124ab6
Binary files /dev/null and b/apps/static/jbox/Skins2/jumpserver/images/jbox-loading2.gif differ
diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-loading3.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-loading3.gif
new file mode 100644
index 000000000..770540141
Binary files /dev/null and b/apps/static/jbox/Skins2/jumpserver/images/jbox-loading3.gif differ
diff --git a/apps/static/jbox/Skins2/jumpserver/images/jbox-title-icon.gif b/apps/static/jbox/Skins2/jumpserver/images/jbox-title-icon.gif
new file mode 100644
index 000000000..b9c772fb5
Binary files /dev/null and b/apps/static/jbox/Skins2/jumpserver/images/jbox-title-icon.gif differ
diff --git a/apps/static/jbox/Skins2/jumpserver/jbox.css b/apps/static/jbox/Skins2/jumpserver/jbox.css
new file mode 100644
index 000000000..81ba8cc10
--- /dev/null
+++ b/apps/static/jbox/Skins2/jumpserver/jbox.css
@@ -0,0 +1,41 @@
+@charset "utf-8";
+
+*:focus {outline: none;}
+/* fade */
+.jbox-fade{background-color:#000000;}
+/* drag */
+.jbox-drag{border:1px dashed #0097d4;}
+/* jbox */
+div.jbox {padding:0px;border:none;font-size:12px;}
+/* border */
+div.jbox .jbox-border{background: none repeat scroll 0 0 #000000;filter:alpha(opacity=20);-moz-opacity:0.2;opacity:0.2;}
+/* container */
+div.jbox .jbox-container{background-color:#ffffff;border:1px solid #999999;}
+/* title-panel */
+div.jbox .jbox-title-panel{background: #2f4050;background: -webkit-gradient(linear, left top, left bottom, from(#2f4050), to(#2f4050));background: -moz-linear-gradient(top, #2f4050, #2f4050);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2f4050', endColorstr='#2f4050');border-bottom:1px solid #999999;}
+div.jbox .jbox-title{font-weight:bold;color:#ffffff;}
+div.jbox .jbox-title-icon{background:url(images/jbox-title-icon.gif) no-repeat scroll 3px 5px transparent;}
+div.jbox .jbox-close,div.jbox .jbox-close-hover{background:url(images/jbox-close1.gif) no-repeat scroll 0px 0px transparent;}
+div.jbox .jbox-close-hover{background-position:-16px 0;}
+/* content */
+div.jbox .jbox-content{min-height:24px;line-height:18px;color:#444444;}
+div.jbox .jbox-content-loading{background-color:#E6E6E6;}
+div.jbox .jbox-content-loading-image{background:url(images/jbox-content-loading.gif) no-repeat bottom center;}
+/* button-panel */
+div.jbox .jbox-button-panel{border-top:1px solid #CCCCCC;background-color: #EEEEEE;}
+div.jbox .jbox-bottom-text{text-indent:10px;color:#444444;}
+div.jbox .jbox-button{background: #0097d4;background: -webkit-gradient(linear, left top, left bottom, from(#2f4050), to(#2f4050));background: -moz-linear-gradient(top, #2f4050, #2f4050);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2f4050', endColorstr='#2f4050');border:#004b6a 1px solid;color:#fff;border-radius:3px 3px 3px 3px;margin:1px 7px 0px 0px;height:22px;cursor:default;}
+div.jbox .jbox-button-hover{background: #0097d4;background: -webkit-gradient(linear, left top, left bottom, from(#0097d4), to(#005b7f));background: -moz-linear-gradient(top, #0097d4, #005b7f);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0097d4', endColorstr='#005b7f');}
+div.jbox .jbox-button-active{background: -webkit-gradient(linear, left top, left bottom, from(#005b7f), to(#0097d4));background: -moz-linear-gradient(top, #005b7f, #0097d4);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#005b7f', endColorstr='#0097d4');}
+div.jbox-warning .jbox .jbox-button-panel{background-color: #FFFFFF;}
+/* tip-color */
+div.jbox .jbox-tip-color{background: #0097d4;background: -webkit-gradient(linear, left top, left bottom, from(#0097d4), to(#005b7f));background: -moz-linear-gradient(top, #0097d4, #005b7f);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0097d4', endColorstr='#005b7f');border-color:#004b6a;border-radius:3px 3px 3px 3px;color:#fff;}
+/* icons */
+div.jbox span.jbox-icon{background:url(images/jbox-icons.png) no-repeat scroll 0 0 transparent;_background:url(images/jbox-icons-ie6.gif) no-repeat scroll 0 0 transparent;}
+div.jbox span.jbox-icon-info {background-position:0 0;}
+div.jbox span.jbox-icon-question {background-position:-36px 0;}
+div.jbox span.jbox-icon-success {background-position:-72px 0;}
+div.jbox span.jbox-icon-warning {background-position:-108px 0;}
+div.jbox span.jbox-icon-error {background-position:-144px 0;}
+div.jbox span.jbox-icon-none {display: none; overflow:hidden;}
+div.jbox span.jbox-icon-loading {background:url(images/jbox-loading1.gif) no-repeat scroll 0 0 transparent;}
\ No newline at end of file
diff --git a/apps/static/jbox/i18n/jquery.jBox-zh-CN.js b/apps/static/jbox/i18n/jquery.jBox-zh-CN.js
new file mode 100644
index 000000000..7783f954a
--- /dev/null
+++ b/apps/static/jbox/i18n/jquery.jBox-zh-CN.js
@@ -0,0 +1,77 @@
+
+/* jBox 全局设置 */
+var jBoxConfig = {};
+
+jBoxConfig.defaults = {
+ id: null, /* 在页面中的唯一id,如果为null则自动生成随机id,一个id只会显示一个jBox */
+ top: '15%', /* 窗口离顶部的距离,可以是百分比或像素(如 '100px') */
+ border: 5, /* 窗口的外边框像素大小,必须是0以上的整数 */
+ opacity: 0.1, /* 窗口隔离层的透明度,如果设置为0,则不显示隔离层 */
+ timeout: 0, /* 窗口显示多少毫秒后自动关闭,如果设置为0,则不自动关闭 */
+ showType: 'fade', /* 窗口显示的类型,可选值有:show、fade、slide */
+ showSpeed: 'fast', /* 窗口显示的速度,可选值有:'slow'、'fast'、表示毫秒的整数 */
+ showIcon: true, /* 是否显示窗口标题的图标,true显示,false不显示,或自定义的CSS样式类名(以为图标为背景) */
+ showClose: true, /* 是否显示窗口右上角的关闭按钮 */
+ draggable: true, /* 是否可以拖动窗口 */
+ dragLimit: true, /* 在可以拖动窗口的情况下,是否限制在可视范围 */
+ dragClone: false, /* 在可以拖动窗口的情况下,鼠标按下时窗口是否克隆窗口 */
+ persistent: true, /* 在显示隔离层的情况下,点击隔离层时,是否坚持窗口不关闭 */
+ showScrolling: true, /* 是否显示浏览的滚动条 */
+ ajaxData: {}, /* 在窗口内容使用get:或post:前缀标识的情况下,ajax post的数据,例如:{ id: 1 } 或 "id=1" */
+ iframeScrolling: 'auto', /* 在窗口内容使用iframe:前缀标识的情况下,iframe的scrolling属性值,可选值有:'auto'、'yes'、'no' */
+
+ title: 'jBox', /* 窗口的标题 */
+ width: 350, /* 窗口的宽度,值为'auto'或表示像素的整数 */
+ height: 'auto', /* 窗口的高度,值为'auto'或表示像素的整数 */
+ bottomText: '', /* 窗口的按钮左边的内容,当没有按钮时此设置无效 */
+ buttons: { '确定': 'ok' }, /* 窗口的按钮 */
+ buttonsFocus: 0, /* 表示第几个按钮为默认按钮,索引从0开始 */
+ loaded: function (h) { }, /* 窗口加载完成后执行的函数,需要注意的是,如果是ajax或iframe也是要等加载完http请求才算窗口加载完成,参数h表示窗口内容的jQuery对象 */
+ submit: function (v, h, f) { return true; }, /* 点击窗口按钮后的回调函数,返回true时表示关闭窗口,参数有三个,v表示所点的按钮的返回值,h表示窗口内容的jQuery对象,f表示窗口内容里的form表单键值 */
+ closed: function () { } /* 窗口关闭后执行的函数 */
+};
+
+jBoxConfig.stateDefaults = {
+ content: '', /* 状态的内容,不支持前缀标识 */
+ buttons: { '确定': 'ok' }, /* 状态的按钮 */
+ buttonsFocus: 0, /* 表示第几个按钮为默认按钮,索引从0开始 */
+ submit: function (v, h, f) { return true; } /* 点击状态按钮后的回调函数,返回true时表示关闭窗口,参数有三个,v表示所点的按钮的返回值,h表示窗口内容的jQuery对象,f表示窗口内容里的form表单键值 */
+};
+
+jBoxConfig.tipDefaults = {
+ content: '', /* 提示的内容,不支持前缀标识 */
+ icon: 'info', /* 提示的图标,可选值有'info'、'success'、'warning'、'error'、'loading',默认值为'info',当为'loading'时,timeout值会被设置为0,表示不会自动关闭。 */
+ top: '40%', /* 提示离顶部的距离,可以是百分比或像素(如 '100px') */
+ width: 'auto', /* 提示的高度,值为'auto'或表示像素的整数 */
+ height: 'auto', /* 提示的高度,值为'auto'或表示像素的整数 */
+ opacity: 0, /* 窗口隔离层的透明度,如果设置为0,则不显示隔离层 */
+ timeout: 3000, /* 提示显示多少毫秒后自动关闭,必须是大于0的整数 */
+ closed: function () { } /* 提示关闭后执行的函数 */
+};
+
+jBoxConfig.messagerDefaults = {
+ content: '', /* 信息的内容,不支持前缀标识 */
+ title: 'jBox', /* 信息的标题 */
+ icon: 'none', /* 信息图标,值为'none'时为不显示图标,可选值有'none'、'info'、'question'、'success'、'warning'、'error' */
+ width: 350, /* 信息的高度,值为'auto'或表示像素的整数 */
+ height: 'auto', /* 信息的高度,值为'auto'或表示像素的整数 */
+ timeout: 3000, /* 信息显示多少毫秒后自动关闭,如果设置为0,则不自动关闭 */
+ showType: 'slide', /* 信息显示的类型,可选值有:show、fade、slide */
+ showSpeed: 600, /* 信息显示的速度,可选值有:'slow'、'fast'、表示毫秒的整数 */
+ border: 0, /* 信息的外边框像素大小,必须是0以上的整数 */
+ buttons: {}, /* 信息的按钮 */
+ buttonsFocus: 0, /* 表示第几个按钮为默认按钮,索引从0开始 */
+ loaded: function (h) { }, /* 窗口加载完成后执行的函数,参数h表示窗口内容的jQuery对象 */
+ submit: function (v, h, f) { return true; }, /* 点击信息按钮后的回调函数,返回true时表示关闭窗口,参数有三个,v表示所点的按钮的返回值,h表示窗口内容的jQuery对象,f表示窗口内容里的form表单键值 */
+ closed: function () { } /* 信息关闭后执行的函数 */
+};
+
+jBoxConfig.languageDefaults = {
+ close: '关闭', /* 窗口右上角关闭按钮提示 */
+ ok: '确定', /* $.jBox.prompt() 系列方法的“确定”按钮文字 */
+ yes: '是', /* $.jBox.warning() 方法的“是”按钮文字 */
+ no: '否', /* $.jBox.warning() 方法的“否”按钮文字 */
+ cancel: '取消' /* $.jBox.confirm() 和 $.jBox.warning() 方法的“取消”按钮文字 */
+};
+
+$.jBox.setDefaults(jBoxConfig);
diff --git a/apps/static/jbox/jquery-migrate-1.1.1.min.js b/apps/static/jbox/jquery-migrate-1.1.1.min.js
new file mode 100644
index 000000000..7aa623713
--- /dev/null
+++ b/apps/static/jbox/jquery-migrate-1.1.1.min.js
@@ -0,0 +1,9 @@
+/*!
+ * jQuery Migrate - v1.1.1 - 2013-02-16
+ * https://github.com/jquery/jquery-migrate
+ * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT
+ */
+(function(s,p,i){var D={};s.migrateWarnings=[];if(!s.migrateMute&&p.console&&console.log){console.log("JQMIGRATE: Logging is active")}if(s.migrateTrace===i){s.migrateTrace=true}s.migrateReset=function(){D={};s.migrateWarnings.length=0};function h(G){if(!D[G]){D[G]=true;s.migrateWarnings.push(G);if(p.console&&console.warn&&!s.migrateMute){console.warn("JQMIGRATE: "+G);if(s.migrateTrace&&console.trace){console.trace()}}}}function a(I,K,H,J){if(Object.defineProperty){try{Object.defineProperty(I,K,{configurable:true,enumerable:true,get:function(){h(J);return H},set:function(L){h(J);H=L}});return}catch(G){}}s._definePropertyBroken=true;I[K]=H}if(document.compatMode==="BackCompat"){h("jQuery is not compatible with Quirks Mode")}var f=s("",{size:1}).attr("size")&&s.attrFn,x=s.attr,w=s.attrHooks.value&&s.attrHooks.value.get||function(){return null},j=s.attrHooks.value&&s.attrHooks.value.set||function(){return i},t=/^(?:input|button)$/i,y=/^[238]$/,B=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,k=/^(?:checked|selected)$/i;a(s,"attrFn",f||{},"jQuery.attrFn is deprecated");s.attr=function(K,I,L,J){var H=I.toLowerCase(),G=K&&K.nodeType;if(J){if(x.length<4){h("jQuery.fn.attr( props, pass ) is deprecated")}if(K&&!y.test(G)&&(f?I in f:s.isFunction(s.fn[I]))){return s(K)[I](L)}}if(I==="type"&&L!==i&&t.test(K.nodeName)&&K.parentNode){h("Can't change the 'type' of an input or button in IE 6/7/8")}if(!s.attrHooks[H]&&B.test(H)){s.attrHooks[H]={get:function(N,M){var P,O=s.prop(N,M);return O===true||typeof O!=="boolean"&&(P=N.getAttributeNode(M))&&P.nodeValue!==false?M.toLowerCase():i},set:function(N,P,M){var O;if(P===false){s.removeAttr(N,M)}else{O=s.propFix[M]||M;if(O in N){N[O]=true}N.setAttribute(M,M.toLowerCase())}return M}};if(k.test(H)){h("jQuery.fn.attr('"+H+"') may use property instead of attribute")
+}}return x.call(s,K,I,L)};s.attrHooks.value={get:function(H,G){var I=(H.nodeName||"").toLowerCase();if(I==="button"){return w.apply(this,arguments)}if(I!=="input"&&I!=="option"){h("jQuery.fn.attr('value') no longer gets properties")}return G in H?H.value:null},set:function(G,H){var I=(G.nodeName||"").toLowerCase();if(I==="button"){return j.apply(this,arguments)}if(I!=="input"&&I!=="option"){h("jQuery.fn.attr('value', val) no longer sets properties")}G.value=H}};var q,E,z=s.fn.init,A=s.parseJSON,v=/^(?:[^<]*(<[\w\W]+>)[^>]*|#([\w\-]*))$/;s.fn.init=function(G,J,I){var H;if(G&&typeof G==="string"&&!s.isPlainObject(J)&&(H=v.exec(G))&&H[1]){if(G.charAt(0)!=="<"){h("$(html) HTML strings must start with '<' character")}if(J&&J.context){J=J.context}if(s.parseHTML){return z.call(this,s.parseHTML(s.trim(G),J,true),J,I)}}return z.apply(this,arguments)};s.fn.init.prototype=s.fn;s.parseJSON=function(G){if(!G&&G!==null){h("jQuery.parseJSON requires a valid JSON string");return null}return A.apply(this,arguments)};s.uaMatch=function(H){H=H.toLowerCase();var G=/(chrome)[ \/]([\w.]+)/.exec(H)||/(webkit)[ \/]([\w.]+)/.exec(H)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(H)||/(msie) ([\w.]+)/.exec(H)||H.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(H)||[];return{browser:G[1]||"",version:G[2]||"0"}};if(!s.browser){q=s.uaMatch(navigator.userAgent);E={};if(q.browser){E[q.browser]=true;E.version=q.version}if(E.chrome){E.webkit=true}else{if(E.webkit){E.safari=true}}s.browser=E}a(s,"browser",s.browser,"jQuery.browser is deprecated");s.sub=function(){function G(J,K){return new G.fn.init(J,K)}s.extend(true,G,this);G.superclass=this;G.fn=G.prototype=this();G.fn.constructor=G;G.sub=this.sub;G.fn.init=function I(J,K){if(K&&K instanceof s&&!(K instanceof G)){K=G(K)}return s.fn.init.call(this,J,K,H)};G.fn.init.prototype=G.fn;var H=G(document);h("jQuery.sub() is deprecated");return G};s.ajaxSetup({converters:{"text json":s.parseJSON}});var n=s.fn.data;s.fn.data=function(I){var H,G,J=this[0];if(J&&I==="events"&&arguments.length===1){H=s.data(J,I);
+G=s._data(J,I);if((H===i||H===G)&&G!==i){h("Use of jQuery.fn.data('events') is deprecated");return G}}return n.apply(this,arguments)};var o=/\/(java|ecma)script/i,u=s.fn.andSelf||s.fn.addBack;s.fn.andSelf=function(){h("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()");return u.apply(this,arguments)};if(!s.clean){s.clean=function(G,H,N,J){H=H||document;H=!H.nodeType&&H[0]||H;H=H.ownerDocument||H;h("jQuery.clean() is deprecated");var K,I,L,O,M=[];s.merge(M,s.buildFragment(G,H).childNodes);if(N){L=function(P){if(!P.type||o.test(P.type)){return J?J.push(P.parentNode?P.parentNode.removeChild(P):P):N.appendChild(P)}};for(K=0;(I=M[K])!=null;K++){if(!(s.nodeName(I,"script")&&L(I))){N.appendChild(I);if(typeof I.getElementsByTagName!=="undefined"){O=s.grep(s.merge([],I.getElementsByTagName("script")),L);M.splice.apply(M,[K+1,0].concat(O));K+=O.length}}}}return M}}var c=s.event.add,b=s.event.remove,g=s.event.trigger,r=s.fn.toggle,d=s.fn.live,m=s.fn.die,C="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",e=new RegExp("\\b(?:"+C+")\\b"),F=/(?:^|\s)hover(\.\S+|)\b/,l=function(G){if(typeof(G)!=="string"||s.event.special.hover){return G}if(F.test(G)){h("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'")}return G&&G.replace(F,"mouseenter$1 mouseleave$1")};if(s.event.props&&s.event.props[0]!=="attrChange"){s.event.props.unshift("attrChange","attrName","relatedNode","srcElement")}if(s.event.dispatch){a(s.event,"handle",s.event.dispatch,"jQuery.event.handle is undocumented and deprecated")}s.event.add=function(J,H,I,K,G){if(J!==document&&e.test(H)){h("AJAX events should be attached to document: "+H)}c.call(this,J,l(H||""),I,K,G)};s.event.remove=function(K,I,J,G,H){b.call(this,K,l(I)||"",J,G,H)};s.fn.error=function(){var G=Array.prototype.slice.call(arguments,0);h("jQuery.fn.error() is deprecated");G.splice(0,0,"error");if(arguments.length){return this.bind.apply(this,G)}this.triggerHandler.apply(this,G);return this};s.fn.toggle=function(K,I){if(!s.isFunction(K)||!s.isFunction(I)){return r.apply(this,arguments)
+}h("jQuery.fn.toggle(handler, handler...) is deprecated");var H=arguments,G=K.guid||s.guid++,J=0,L=function(M){var N=(s._data(this,"lastToggle"+K.guid)||0)%J;s._data(this,"lastToggle"+K.guid,N+1);M.preventDefault();return H[N].apply(this,arguments)||false};L.guid=G;while(J35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('(8(a){a.7=8(b,c){c=a.1n({},a.7.17,c);c.1M=c.1V>9;c.1p=c.1p||1q;c.1A=c.1A||1q;5(b==1y){b=\'\'};5(c.W<9){c.W=9};5(c.1t==1y){c.1t=\'51\'+2U.52(2U.3i()*4Z)};6 d=(a.1U.2e&&3u(a.1U.3a)<3r);6 e=a(\'#\'+c.1t);5(e.1I>9){c.1k=a.7.17.1k++;e.16({1k:c.1k});e.10(\'#4\').16({1k:c.1k+1h});1j e};6 f={2g:\'\',1x:\'\',1e:\'\',2j:b.50==53};5(!f.2j){b=b+\'\';6 N=b.56();5(N.1X(\'1t:\')==9)f.1x=\'4t\';1b 5(N.1X(\'4C:\')==9)f.1x=\'35\';1b 5(N.1X(\'57:\')==9)f.1x=\'30\';1b 5(N.1X(\'1F:\')==9)f.1x=\'2w\';1b 5(N.1X(\'1e:\')==9)f.1x=\'3h\';1b{b=\'1e:\'+b;f.1x=\'3h\'};b=b.54(b.1X(":")+1h,b.1I)};5(!c.1p&&!c.1A&&!c.4s){a(a.1U.2e?\'1e\':\'1z\').3c(\'11\',\'2a:2l;1f-27:55;\')};6 g=!c.1p&&!(c.1o==1y);6 h=f.1x==\'35\'||f.1x==\'30\'||f.1x==\'2w\';6 i=1L c.14==\'36\'?(c.14-4Y)+\'19\':"4R%";6 j=[];j.X(\'\');5(c.1M){5((d&&a(\'1F\').1I>9)||a(\'4S, 4P\').1I>9){j.X(\'<1F 1t="4-24" 1a="4-24" 3y="3M:3X" 11="1D:2R;1s:1B;z-3t:-1;">1F>\')}1b{5(d){a(\'3Z\').16(\'3L\',\'2l\')};j.X(\'\')}};j.X(\'\');5(c.1Y){j.X(\'\')};j.X(\'\');j.X(\'\');j.X(\'\');j.X(\'<4p W="0" 4X="0" 4U="0" 11="1E:1c;1f:1c;W:1d;">\');5(c.W>9){j.X(\'<2n>\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;W-3d:\'+c.W+\'19 0 0 0;14:\'+c.W+\'19;Y:\'+c.W+\'19;">1u>\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;Y:\'+c.W+\'19;2a: 2l;">1u>\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;W-3d:0 \'+c.W+\'19 0 0;14:\'+c.W+\'19;Y:\'+c.W+\'19;">1u>\');j.X(\'2n>\')};j.X(\'<2n>\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;">1u>\');j.X(\'<1u 4V="18" 11="1E:1c;1f:1c;W:1d;">\');j.X(\'\');j.X(\'\');5(g){j.X(\'\');j.X(\'\'+(c.1o==\'\'?\'&5p;\':c.1o)+\'\');j.X(\'\')};j.X(\'\');j.X(\'\');j.X(\'1u>\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;">1u>\');j.X(\'2n>\');5(c.W>9){j.X(\'<2n>\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;W-3d:0 0 0 \'+c.W+\'19; 14:\'+c.W+\'19; Y:\'+c.W+\'19;">1u>\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;Y:\'+c.W+\'19;2a: 2l;">1u>\');j.X(\'<1u 1a="4-W" 11="1E:1c;1f:1c;W:1d;W-3d:0 0 \'+c.W+\'19 0; 14:\'+c.W+\'19; Y:\'+c.W+\'19;">1u>\');j.X(\'2n>\')};j.X(\'4p>\');j.X(\'\');j.X(\'\');6 k=\'<1F 2h="4-1F" 1t="4-1F" 14="2v%" Y="2v%" 5i="0" 5b="0" 5c="0" 59="\'+c.4r+\'">1F>\';6 l=a(2f);6 m=a(1H.1z);6 n=a(j.2m(\'\')).5a(m);6 o=n.2r(\'#4\');6 p=n.2r(\'#4-24\');6 q=n.2r(\'#4-3m\');5(!f.2j){3H(f.1x){1R"4t":f.1e=a(\'#\'+b).1e();1K;1R"35":1R"30":f.1e=\'\';f.2g=b;1K;1R"3h":f.1e=b;1K;1R"2w":f.1e=k;5(b.1X(\'#\')==-1h){f.2g=b+(b.1X(\'?\')==-1h?\'?39\':\'&39\')+2U.3i()}1b{6 N=b.5d(\'#\');f.2g=N[9]+(N[9].1X(\'?\')==-1h?\'?39\':\'&39\')+2U.3i()+\'#\'+N[1h]};1K};b={5g:{13:f.1e,1C:c.1C,2o:c.2o,1W:c.1W}}};6 r=[];6 s=o.10(\'.4-2W-1o\').3N(1i);6 t=o.10(\'.4-2W-1l\').3N(1i);6 u=a.1U.2e?\'3j-Y:3V;1f:1c 3O 1c 3O;\':\'1f:1c 2N 1c 2N;\';a.2C(b,8(N,O){5(f.2j){O=a.1n({},a.7.2O,O)};b[N]=O;5(O.1C==1y){O.1C={}};6 P=1q;a.2C(O.1C,8(T,U){P=1i});6 Q=\'1m\';5(1L c.Y==\'36\'){Q=c.Y;5(g){Q=Q-s};5(P){Q=Q-t};Q=(Q-1h)+\'19\'};6 R=\'\';6 S=\'2s\';5(!f.2j&&h){6 T=c.Y;5(1L c.Y==\'36\'){5(g){T=T-s};5(P){T=T-t};S=((T/2X)*1N)+\'19\';T=(T-1h)+\'19\'};R=[\'\',\'\',\'\'].2m(\'\')};r.X(\'\');r.X(\'\'+R+\'\'+O.13+\'\');r.X(\'\');5(!c.1p){r.X(\'<26 1a="4-29-1T" 11="3W:1g;1D:2R;3j-Y:2s;">26>\')};a.2C(O.1C,8(T,U){r.X(\'<1l 1a="4-1l" 31="\'+U+\'" 11="\'+u+\'">\'+T+\'1l>\')});r.X(\'\')});o.10(\'#4-2T\').1e(r.2m(\'\')).2r(\'.4-1G:3k\').16(\'1D\',\'2R\');5(h){6 N=o.10(\'#4-13\').16({1s:(d)?"1B":"32",1g:-4H})};a.2C(b,8(N,O){6 P=o.10(\'#4-1G-\'+N);P.2r(\'.4-1l-23\').2r(\'1l\').2c(8(){6 Q=P.10(\'#4-13\');6 R=O.1C[a(21).1T()];6 S={};a.2C(o.10(\'#4-2T :4h\').4M(),8(U,V){5(S[V.2h]===1y){S[V.2h]=V.31}1b 5(1L S[V.2h]==4L){S[V.2h].X(V.31)}1b{S[V.2h]=[S[V.2h],V.31]}});6 T=O.1W(R,Q,S);5(T===1y||T){I()}}).1P(\'2t\',8(){a(21).2x(\'4-1l-3x\')}).1P(\'4A\',8(){a(21).2I(\'4-1l-3x\')}).1P(\'4G\',8(){a(21).2x(\'4-1l-2E\')}).1P(\'4O\',8(){a(21).2I(\'4-1l-3x\').2I(\'4-1l-2E\')});P.10(\'.4-1l-23 1l:2V(\'+O.2o+\')\').2x(\'4-1l-1O\')});6 v=8(){n.16({18:l.3e()});5(c.1A){o.16({1s:(d)?"1B":"32",27:1h,29:1h})}};6 w=8(){6 N=l.14();1j 1H.1z.3I1h){4I(O);n.2I(\'4-25\')}},4N)}1b{I()}};6 z=8(N){5(c.1p||c.1A){1j 1q};6 O=(2f.4f)?4f.4g:N.4g;5(O==4F){I()};5(O==5Z){6 P=a(\':4h:5Y:2p\',n);6 Q=!N.4e&&N.1r==P[P.1I-1h];6 R=N.4e&&N.1r==P[9];5(Q||R){38(8(){5(!P)1j;6 S=P[R===1i?P.1I-1h:9];5(S)S.1O()},2G);1j 1q}}};6 A=8(){5(c.1M){p.16({1s:"1B",Y:c.1p?x():l.Y(),14:d?l.14():"2v%",18:9,1g:9,27:9,29:9})}};6 B=8(){5(c.1A){o.16({1s:(d)?"1B":"32",27:1h,29:1h})}1b{q.16({18:c.18});o.16({1s:"1B",18:q.3f().18+(c.1p?l.3e():9),1g:((l.14()-o.3S())/1N)})};5((c.1M&&!c.1p)||(!c.1M&&!c.1p&&!c.1A)){n.16({1s:(d)?"1B":"32",Y:c.1M?l.Y():9,14:"2v%",18:(d)?l.3e():9,1g:9,27:9,29:9})};A()};6 C=8(){c.1k=a.7.17.1k++;n.16({1k:c.1k});o.16({1k:c.1k+1h})};6 D=8(){c.1k=a.7.17.1k++;n.16({1k:c.1k});o.16({1D:"1d",1k:c.1k+1h});5(c.1M){p.16({1D:"1d",1k:c.1k,1V:c.1V})}};6 E=8(N){6 O=N.1w;O.1r.10(\'1F\').2K();5(c.22){O.1r.2u().16({1g:O.1r.16(\'1g\'),18:O.1r.16(\'18\'),61:-1N,60:-1N,14:O.1r.14()+1N,Y:O.1r.Y()+1N}).1Z()};1j 1q};6 F=8(N){6 O=N.1w;6 P=O.49+N.4c-O.43;6 Q=O.4y+N.48-O.4a;5(c.4o){6 R=1h;6 S=1H.46.3C-N.1w.1r.Y()-1h;6 T=1h;6 U=1H.46.3I-N.1w.1r.14()-1h;5(QS)Q=S-(c.22?1N:9);5(PU)P=U-(c.22?1N:9)};5(c.22){O.1r.2u().16({1g:P,18:Q})}1b{O.1r.16({1g:P,18:Q})};1j 1q};6 G=8(N){a(1H).2i(\'.1Y\');5(c.22){6 O=N.1w.1r.2u().2K();N.1w.1r.16({1g:O.16(\'1g\'),18:O.16(\'18\')}).10(\'1F\').1Z()}1b{N.1w.1r.10(\'1F\').1Z()};1j 1q};6 H=8(N){6 O=N.1w.1r.1s();6 P={1r:N.1w.1r,43:N.4c,4a:N.48,49:O.1g,4y:O.18};a(1H).1P(\'2t.1Y\',P,E).1P(\'5V.1Y\',P,F).1P(\'4A.1Y\',P,G)};6 I=8(){5(!c.1p&&!c.1A){5(a(\'.4-1z\').1I==1h){a(a.1U.2e?\'1e\':\'1z\').5U(\'11\')};J()}1b{5(c.1p){6 1v=a(1H.1z).1w(\'1v\');5(1v&&1v.2F==1i){q.16(\'18\',1v.33.18);6 N=q.3f().18+l.3e();5(N==o.3f().18){J()}1b{o.10(\'#4-13\').1e(1v.33.13.5X(2X)).5W().16({1g:((l.14()-o.3S())/1N)}).41({18:N,1V:0.1},3J,J)}}1b{o.41({18:\'-=62\',1V:9},3J,J)}}1b{3H(c.2J){1R\'3D\':o.4b(c.20,J);1K;1R\'24\':o.3P(c.20,J);1K;1R\'1Z\':3R:o.2K(c.20,J);1K}}}};6 J=8(){l.2i(\'3U\',A);5(c.1Y&&!c.1p&&!c.1A){o.10(\'.4-1o-23\').2i(\'2t\',H)};5(f.1x!=\'2w\'){o.10(\'#4-1F\').3c({\'3y\':\'3M:3X\'})};o.1e(\'\').3F();5(d&&!c.1p){m.2i(\'3T\',v)};5(c.1M){p.3P(\'37\',8(){p.2i(\'2c\',y).2i(\'2t\',C).1e(\'\').3F()})};n.2i(\'3Y 3K\',z).1e(\'\').3F();5(d&&c.1M){a(\'3Z\').16(\'3L\',\'2p\')};5(1L c.2H==\'8\'){c.2H()}};6 K=8(){5(c.1Q>9){o.1w(\'3B\',2f.38(I,c.1Q));5(c.1A){o.2E(8(){2f.63(o.1w(\'3B\'))},8(){o.1w(\'3B\',2f.38(I,c.1Q))})}}};6 L=8(){5(1L c.2Y==\'8\'){c.2Y(o.10(\'.4-1G:2p\').10(\'.4-13\'))}};5(!f.2j){3H(f.1x){1R"35":1R"30":a.64({1x:f.1x,2g:f.2g,1w:c.3g==1y?{}:c.3g,5B:\'1e\',5A:1q,2y:8(N,O){o.10(\'#4-13\').16({1s:"3Q"}).1e(N).1Z().2u().2K();L()},2z:8(){o.10(\'#4-13-2B\').1e(\'5z 5C.\')}});1K;1R"2w":o.10(\'#4-1F\').3c({\'3y\':f.2g}).1P("5F",8(N){a(21).5E().16({1s:"3Q"}).1Z().2u().2K();o.10(\'#4-2T .4-1G:3k .4-1l-1O\').1O();L()});1K;3R:o.10(\'#4-13\').1Z();1K}};B();D();5(d&&!c.1p){l.3T(v)};5(c.1M){p.2c(y)};l.3U(A);n.1P(\'3Y 3K\',z);o.10(\'.4-1J\').2c(I);5(c.1M){p.4u(\'37\')};6 M=\'1Z\';5(c.2J==\'3D\'){M=\'44\'}1b 5(c.2J==\'24\'){M=\'4u\'};5(c.1A){o[M](c.20,K)}1b{6 1v=a(1H.1z).1w(\'1v\');5(1v&&1v.2F==1i){a(1H.1z).1w(\'1v\',{2F:1q,33:{}});o.16(\'1D\',\'\')}1b{5(!f.2j&&h){o[M](c.20)}1b{o[M](c.20,L);}}};5(!c.1p){o.10(\'.4-29-1T\').1e(c.4E)}1b{o.10(\'.4-4v,.4-13\').2x(\'4-1v-4x\')};5(f.1x!=\'2w\'){o.10(\'#4-2T .4-1G:3k .4-1l-1O\').1O()}1b{o.1O()};5(!c.1A){K()};n.1P(\'2t\',C);5(c.1Y&&!c.1p&&!c.1A){o.10(\'.4-1o-23\').1P(\'2t\',{1r:o},H).16(\'4w\',\'5D\')};1j n};a.7.3a=2.3;a.7.17={1t:3A,18:"15%",1k:5u,W:2X,1V:0.1,1Q:9,2J:\'24\',20:\'37\',2L:1i,34:1i,1Y:1i,4o:1i,22:1q,4q:1i,4s:1i,3g:{},4r:\'1m\',1o:\'7\',14:3p,Y:\'1m\',4E:\'\',1C:{\'3z\':\'2b\'},2o:9,2Y:8(b){},1W:8(b,c,d){1j 1i},2H:8(){}};a.7.2O={13:\'\',1C:{\'3z\':\'2b\'},2o:9,1W:8(b,c,d){1j 1i}};a.7.2Q={13:\'\',12:\'28\',18:\'40%\',14:\'1m\',Y:\'1m\',1V:9,1Q:4B,2H:8(){}};a.7.2A={13:\'\',1o:\'7\',12:\'1d\',14:3p,Y:\'1m\',1Q:4B,2J:\'3D\',20:5t,W:9,1C:{},2o:9,2Y:8(){},1W:8(b,c,d){1j 1i},2H:8(){}};a.7.1S={1J:\'5s\',2b:\'3z\',3n:\'5v\',3q:\'5y\',2S:\'5x\'};a.7.5w=8(b){a.7.17=a.1n({},a.7.17,b.17);a.7.2O=a.1n({},a.7.2O,b.2O);a.7.2Q=a.1n({},a.7.2Q,b.2Q);a.7.2A=a.1n({},a.7.2A,b.2A);a.7.1S=a.1n({},a.7.1S,b.1S)};a.7.2D=8(){1j a(\'.4-1z\').2V(a(\'.4-1z\').1I-1h)};a.7.5P=8(b){6 c=(1L b==\'3v\')?a(\'#\'+b):a.7.2D();1j c.10(\'#4-1F\').4C(9)};a.7.5O=8(){1j a.7.3b().10(\'.4-13\').1e()};a.7.5N=8(b){1j a.7.3b().10(\'.4-13\').1e(b)};a.7.3b=8(b){5(b==1y){1j a.7.2D().10(\'.4-1G:2p\')}1b{1j a.7.2D().10(\'#4-1G-\'+b)}};a.7.5Q=8(){1j a.7.3b().3c(\'1t\').5T(\'4-1G-\',\'\')};a.7.3w=8(b,c){6 d=a.7.2D();5(d!=1y&&d!=3A){6 e;b=b||1q;d.10(\'.4-1G\').4b(\'37\');5(1L b==\'3v\'){e=d.10(\'#4-1G-\'+b)}1b{e=b?d.10(\'.4-1G:2p\').2F():d.10(\'.4-1G:2p\').2u()};e.44(3p,8(){2f.38(8(){e.10(\'.4-1l-1O\').1O();5(c!=1y){e.10(\'.4-13\').1e(c)}},5S)})}};a.7.5R=8(b){a.7.3w(1i,b)};a.7.5I=8(b){a.7.3w(1q,b)};a.7.1J=8(b,c){b=b||1q;c=c||\'1z\';5(1L b==\'3v\'){a(\'#\'+b).10(\'.4-1J\').2c()}1b{6 d=a(\'.4-\'+c);5(b){5H(6 e=9,l=d.1I;e9){d.2V(d.1I-1h).10(\'.4-1J\').2c()}}}};a.7.5G=8(b,c,d,e,f){6 17={13:b,1o:c,14:d,Y:e};f=a.1n({},17,f);f=a.1n({},a.7.17,f);a.7(f.13,f)};a.7.2d=8(b,c,d,e){6 17={13:b,1o:c,12:d,1C:3s(\'({ "\'+a.7.1S.2b+\'": "2b" })\')};e=a.1n({},17,e);e=a.1n({},a.7.17,e);5(e.W<9){e.W=9};5(e.12!=\'28\'&&e.12!=\'25\'&&e.12!=\'2y\'&&e.12!=\'2z\'&&e.12!=\'3G\'){1f=\'\';e.12=\'1d\'};6 f=e.1o==1y?2G:4j;6 g=e.12==\'1d\'?\'Y:1m;\':\'2P-Y:2M;\'+((a.1U.2e&&3u(a.1U.3a)<3r)?\'Y:1m !4l;Y:2v%;4n:2M;\':\'Y:1m;\');6 h=[];h.X(\'1e:\');h.X(\'\');h.X(\'<26 1a="4-12 4-12-\'+e.12+\'" 11="1s:1B; 18:\'+(f+e.W)+\'19;1g:\'+(2G+e.W)+\'19; 14:2q; Y:2q;">26>\');h.X(e.13);h.X(\'\');e.13=h.2m(\'\');a.7(e.13,e)};a.7.5J=8(b,c,d){a.7.2d(b,c,\'1d\',d)};a.7.28=8(b,c,d){a.7.2d(b,c,\'28\',d)};a.7.2y=8(b,c,d){a.7.2d(b,c,\'2y\',d)};a.7.2z=8(b,c,d){a.7.2d(b,c,\'2z\',d)};a.7.5M=8(b,c,d,e){6 17={1C:3s(\'({ "\'+a.7.1S.2b+\'": "2b", "\'+a.7.1S.2S+\'": "2S" })\')};5(d!=1y&&1L d==\'8\'){17.1W=d}1b{17.1W=8(f,g,h){1j 1i}};e=a.1n({},17,e);a.7.2d(b,c,\'3G\',e)};a.7.25=8(b,c,d,e){6 17={1C:3s(\'({ "\'+a.7.1S.3n+\'": "3n", "\'+a.7.1S.3q+\'": "3q", "\'+a.7.1S.2S+\'": "2S" })\')};5(d!=1y&&1L d==\'8\'){17.1W=d}1b{17.1W=8(f,g,h){1j 1i}};e=a.1n({},17,e);a.7.2d(b,c,\'25\',e)};a.7.1v=8(b,c,d){6 17={13:b,12:c,1V:9,W:9,34:1q,1C:{},1p:1i};5(17.12==\'2B\'){17.1Q=9;17.1V=0.1};d=a.1n({},17,d);d=a.1n({},a.7.2Q,d);d=a.1n({},a.7.17,d);5(d.1Q<9){d.1Q=9};5(d.W<9){d.W=9};5(d.12!=\'28\'&&d.12!=\'25\'&&d.12!=\'2y\'&&d.12!=\'2z\'&&d.12!=\'2B\'){d.12=\'28\'};6 e=[];e.X(\'1e:\');e.X(\'\');e.X(\'<26 1a="4-12 4-12-\'+d.12+\'" 11="1s:1B;18:\'+(4d+d.W)+\'19;1g:\'+(4d+d.W)+\'19; 14:2q; Y:2q;">26>\');e.X(d.13);e.X(\'\');d.13=e.2m(\'\');5(a(\'.4-1v\').1I>9){a(1H.1z).1w(\'1v\',{2F:1i,33:d});a.7.4k()};5(d.3E!=1y){a(\'#\'+d.3E).1O();18.$(\'#\'+d.3E).1O()};a.7(d.13,d)};a.7.4k=8(){a.7.1J(1q,\'1v\')};a.7.3l=8(b,c,d,e){a.7.4i();6 17={13:b,1o:c,1Q:(d==1y?a.7.2A.1Q:d),1V:9,34:1i,1Y:1q,1A:1i};e=a.1n({},17,e);e=a.1n({},a.7.2A,e);6 f=a.1n({},a.7.17,{});f.1o=3A;e=a.1n({},f,e);5(e.W<9){e.W=9};5(e.12!=\'28\'&&e.12!=\'25\'&&e.12!=\'2y\'&&e.12!=\'2z\'&&e.12!=\'3G\'){1f=\'\';e.12=\'1d\'};6 g=e.1o==1y?2G:4j;6 h=e.12==\'1d\'?\'Y:1m;\':\'2P-Y:2M;\'+((a.1U.2e&&3u(a.1U.3a)<3r)?\'Y:1m !4l;Y:2v%;4n:2M;\':\'Y:1m;\');6 i=[];i.X(\'1e:\');i.X(\'\');i.X(\'<26 1a="4-12 4-12-\'+e.12+\'" 11="1s:1B; 18:\'+(g+e.W)+\'19;1g:\'+(2G+e.W)+\'19; 14:2q; Y:2q;">26>\');i.X(e.13);i.X(\'\');e.13=i.2m(\'\');a.7(e.13,e)};a.7.4i=8(){a.7.1J(1q,\'3l\')};2f.7=a.7})(5K);',62,377,'||||jbox|if|var|jBox|function|0x0|||||||||||||||||||||||||||||||||||||||||||||||||border|push|height|div|find|style|icon|content|width||css|defaults|top|px|class|else|0px|none|html|padding|left|0x1|true|return|zIndex|button|auto|extend|title|isTip|false|target|position|id|td|tip|data|type|undefined|body|isMessager|absolute|buttons|display|margin|iframe|state|document|length|close|break|typeof|showFade|0x2|focus|bind|timeout|case|languageDefaults|text|browser|opacity|submit|indexOf|draggable|show|showSpeed|this|dragClone|panel|fade|warning|span|right|info|bottom|overflow|ok|click|prompt|msie|window|url|name|unbind|isObject|align|hidden|join|tr|buttonsFocus|visible|32px|children|25px|mousedown|prev|100|IFRAME|addClass|success|error|messagerDefaults|loading|each|getBox|hover|next|0xa|closed|removeClass|showType|hide|showIcon|30px|10px|stateDefaults|min|tipDefaults|block|cancel|states|Math|eq|help|0x5|loaded|5px|POST|value|fixed|options|showClose|GET|number|fast|setTimeout|___t|version|getState|attr|radius|scrollTop|offset|ajaxData|HTML|random|line|first|messager|temp|yes|50px|0x15e|no|0x7|eval|index|parseInt|string|goToState|active|src|确定|null|autoClosing|clientHeight|slide|focusId|remove|question|switch|clientWidth|0x1f4|keypress|visibility|about|outerHeight|6px|fadeOut|static|default|outerWidth|scroll|resize|19px|float|blank|keydown|select||animate|center|startX|slideDown|1984|documentElement|drag|pageY|startLeft|startY|slideUp|pageX|0x4|shiftKey|event|keyCode|input|closeMessager|0x23|closeTip|important|0x28|_height|dragLimit|table|persistent|iframeScrolling|showScrolling|ID|fadeIn|container|cursor|color|startTop|15px|mouseup|0xbb8|get|0x6|bottomText|0x1b|mouseover|0x2710|clearInterval|toggleClass|setInterval|Array|serializeArray|0x64|mouseout|applet|background|90|object|ff3300|cellspacing|valign|fdisplay|cellpadding|0x32|0xf4240|constructor|jBox_|floor|Object|substring|17px|toLowerCase|post|onmouseover|scrolling|appendTo|marginwidth|frameborder|split|image|220px|state0|70px|marginheight|0x19|0x18|onmouseout|pointer|0x12|all|nbsp|ellipsis|word|关闭|0x258|0x7c0|是|setDefaults|取消|否|Loading|cache|dataType|Error|move|parent|load|open|for|prevState|alert|jQuery|18px|confirm|setContent|getContent|getIframe|getStateName|nextState|0x14|replace|removeAttr|mousemove|end|substr|enabled|0x9|marginTop|marginLeft|200|clearTimeout|ajax'.split('|'),0,{}));
\ No newline at end of file
diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js
index b872558f3..8bd303f2c 100644
--- a/apps/static/js/jumpserver.js
+++ b/apps/static/js/jumpserver.js
@@ -4,10 +4,10 @@
var checked=false;
function check_all(form) {
var checkboxes = document.getElementById(form);
- if (checked == false) {
- checked = true
+ if (checked === false) {
+ checked = true;
} else {
- checked = false
+ checked = false;
}
for (var i = 0; i < checkboxes.elements.length; i++) {
if (checkboxes.elements[i].type == "checkbox") {
@@ -51,13 +51,13 @@ function GetRowData(row){
//此函数用于在多选提交时至少要选择一行
function GetTableDataBox() {
var tabProduct = document.getElementById("editable");
- var tableData = new Array();
- var returnData = new Array();
+ var tableData = [];
+ var returnData = [];
var checkboxes = document.getElementById("contents_form");
- var id_list = new Array();
+ var id_list = [];
len = checkboxes.elements.length;
for (var i=0; i < len; i++) {
- if (checkboxes.elements[i].type == "checkbox" && checkboxes.elements[i].checked == true && checkboxes.elements[i].value != "checkall") {
+ if (checkboxes.elements[i].type == "checkbox" && checkboxes.elements[i].checked === true && checkboxes.elements[i].value != "checkall") {
id_list.push(i);
}
}
@@ -67,7 +67,7 @@ function GetTableDataBox() {
tableData.push(GetRowData(tabProduct.rows[id_list[i]]));
}
- if (id_list.length == 0){
+ if (id_list.length === 0){
alert('请至少选择一行!');
}
returnData.push(tableData);
@@ -77,7 +77,7 @@ function GetTableDataBox() {
function move(from, to, from_o, to_o) {
$("#" + from + " option").each(function () {
- if ($(this).prop("selected") == true) {
+ if ($(this).prop("selected") === true) {
$("#" + to).append(this);
if( typeof from_o !== 'undefined'){
$("#"+to_o).append($("#"+from_o +" option[value='"+this.value+"']"));
@@ -88,7 +88,7 @@ function move(from, to, from_o, to_o) {
function move_left(from, to, from_o, to_o) {
$("#" + from + " option").each(function () {
- if ($(this).prop("selected") == true) {
+ if ($(this).prop("selected") === true) {
$("#" + to).append(this);
if( typeof from_o !== 'undefined'){
$("#"+to_o).append($("#"+from_o +" option[value='"+this.value+"']"));
@@ -124,31 +124,120 @@ function move_left(from, to, from_o, to_o) {
function selectAll(){
- // 选择该页面所有option
+ // Select all check box
$('option').each(function(){
- $(this).attr('selected', true)
- })
+ $(this).attr('selected', true);
+ });
}
-//
-//function move_all(from, to){
-// $("#"+from).children().each(function(){
-// $("#"+to).append(this);
-// });
-//}
+// function getIDall() {
+// var check_array = [];
+// $(".gradeX input:checked").each(function () {
+// var id = $(this).attr("value");
+// check_array.push(id);
+// });
+// return check_array.join(",");
+// }
-//function commit_select(form_array){
-// $('#{0} option'.format(form_array)).each(function(){
-// $(this).prop('selected', true)
-// })
-//}
+function getCookie(name) {
+ var cookieValue = null;
+ if (document.cookie && document.cookie !== '') {
+ var cookies = document.cookie.split(';');
+ for (var i = 0; i < cookies.length; i++) {
+ var cookie = jQuery.trim(cookies[i]);
+ // Does this cookie string begin with the name we want?
+ if (cookie.substring(0, name.length + 1) === (name + '=')) {
+ cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
+ break;
+ }
+ }
+ }
+ return cookieValue;
+}
-function getIDall() {
- var check_array = [];
- $(".gradeX input:checked").each(function () {
- var id = $(this).attr("value");
- check_array.push(id);
+function csrfSafeMethod(method) {
+ // these HTTP methods do not require CSRF protection
+ return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
+}
+
+function setAjaxCSRFToken() {
+ var csrftoken = getCookie('csrftoken');
+ var sessionid = getCookie('sessionid');
+
+ $.ajaxSetup({
+ beforeSend: function(xhr, settings) {
+ if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
+ xhr.setRequestHeader("X-CSRFToken", csrftoken);
+ }
+ }
});
- return check_array.join(",");
-}
\ No newline at end of file
+}
+
+function activeNav() {
+ var url_array = document.location.pathname.split("/");
+ var app = url_array[1];
+ var resource = url_array[2];
+ if (app == ''){
+ $('#index').addClass('active')
+ } else {
+ $("#" + app).addClass('active');
+ $('#' + app + ' #' + resource).addClass('active');
+ }
+}
+
+function APIUpdateAttr(props) {
+ // props = {url: .., body: , success: , error: , method: ,}
+ props = props || {};
+ success_message = props.success_message || 'Update Successfully!';
+ fail_message = props.fail_message || 'Error occurred while updating.';
+
+ $.ajax({
+ url: props.url,
+ type: props.method || "PATCH",
+ data: props.body,
+ contentType: props.content_type || "application/json; charset=utf-8",
+ dataType: props.data_type || "json",
+ }).done(function(data, textStatue, jqXHR) {
+ if (typeof props.success === 'function') {
+ return props.success(data);
+ } else {
+ toastr.success(success_message);
+ }
+ }).fail(function(jqXHR, textStatue, errorThrown) {
+ if (typeof props.error === 'function') {
+ return props.error(errorThrown);
+ } else {
+ toastr.error(fail_message);
+ }
+ });
+ return true;
+}
+
+// Sweet Alert for Delete
+function objectDelete(obj, name, url){
+ swal({
+ title: 'Are you sure delete ?',
+ text: "【" + name + "】",
+ type: "warning",
+ showCancelButton: true,
+ cancelButtonText: 'Cancel',
+ confirmButtonColor: "#DD6B55",
+ confirmButtonText: 'Yes, delete it!',
+ closeOnConfirm: false
+ }, function () {
+ $.ajax({
+ type : "post",
+ url : url,
+ data : {
+ },
+ dataType : "text",
+ success : function(data) {
+ swal('Deleted!' , "【"+name+"】"+"has been deleted.", "success");
+ $(obj).parent().parent().remove();
+ }
+ })
+ });
+}
+
+var jumpserver = {};
diff --git a/apps/static/js/plugins/sweetalert/sweetalert.min.js b/apps/static/js/plugins/sweetalert/sweetalert.min.js
new file mode 100644
index 000000000..3e4e7ff4c
--- /dev/null
+++ b/apps/static/js/plugins/sweetalert/sweetalert.min.js
@@ -0,0 +1 @@
+!function(e,t,n){"use strict";!function o(e,t,n){function a(s,l){if(!t[s]){if(!e[s]){var i="function"==typeof require&&require;if(!l&&i)return i(s,!0);if(r)return r(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=t[s]={exports:{}};e[s][0].call(c.exports,function(t){var n=e[s][1][t];return a(n?n:t)},c,c.exports,o,e,t,n)}return t[s].exports}for(var r="function"==typeof require&&require,s=0;s=0;)n=n.replace(" "+t+" "," ");e.className=n.replace(/^\s+|\s+$/g,"")}},i=function(e){var n=t.createElement("div");return n.appendChild(t.createTextNode(e)),n.innerHTML},u=function(e){e.style.opacity="",e.style.display="block"},c=function(e){if(e&&!e.length)return u(e);for(var t=0;t0?setTimeout(o,t):e.style.display="none"});o()},h=function(n){if("function"==typeof MouseEvent){var o=new MouseEvent("click",{view:e,bubbles:!1,cancelable:!0});n.dispatchEvent(o)}else if(t.createEvent){var a=t.createEvent("MouseEvents");a.initEvent("click",!1,!1),n.dispatchEvent(a)}else t.createEventObject?n.fireEvent("onclick"):"function"==typeof n.onclick&&n.onclick()},g=function(t){"function"==typeof t.stopPropagation?(t.stopPropagation(),t.preventDefault()):e.event&&e.event.hasOwnProperty("cancelBubble")&&(e.event.cancelBubble=!0)};a.hasClass=r,a.addClass=s,a.removeClass=l,a.escapeHtml=i,a._show=u,a.show=c,a._hide=d,a.hide=f,a.isDescendant=p,a.getTopMargin=m,a.fadeIn=v,a.fadeOut=y,a.fireClick=h,a.stopEventPropagation=g},{}],5:[function(t,o,a){Object.defineProperty(a,"__esModule",{value:!0});var r=t("./handle-dom"),s=t("./handle-swal-dom"),l=function(t,o,a){var l=t||e.event,i=l.keyCode||l.which,u=a.querySelector("button.confirm"),c=a.querySelector("button.cancel"),d=a.querySelectorAll("button[tabindex]");if(-1!==[9,13,32,27].indexOf(i)){for(var f=l.target||l.srcElement,p=-1,m=0;m"),i.innerHTML=e.html?e.text:s.escapeHtml(e.text||"").split("\n").join("
"),e.text&&s.show(i),e.customClass)s.addClass(t,e.customClass),t.setAttribute("data-custom-class",e.customClass);else{var d=t.getAttribute("data-custom-class");s.removeClass(t,d),t.setAttribute("data-custom-class","")}if(s.hide(t.querySelectorAll(".sa-icon")),e.type&&!a.isIE8()){var f=function(){for(var o=!1,a=0;ao;o++)n=parseInt(e.substr(2*o,2),16),n=Math.round(Math.min(Math.max(0,n+n*t),255)).toString(16),a+=("00"+n).substr(n.length);return a};o.extend=a,o.hexToRgb=r,o.isIE8=s,o.logStr=l,o.colorLuminance=i},{}]},{},[1]),"function"==typeof define&&define.amd?define(function(){return sweetAlert}):"undefined"!=typeof module&&module.exports&&(module.exports=sweetAlert)}(window,document);
\ No newline at end of file
diff --git a/apps/static/js/plugins/toastr/toastr.min.js b/apps/static/js/plugins/toastr/toastr.min.js
new file mode 100644
index 000000000..cf70cf63d
--- /dev/null
+++ b/apps/static/js/plugins/toastr/toastr.min.js
@@ -0,0 +1,2 @@
+!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return f({type:O.error,iconClass:g().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=g()),v=e("#"+t.containerId),v.length?v:(n&&(v=c(t)),v)}function i(e,t,n){return f({type:O.info,iconClass:g().iconClasses.info,message:e,optionsOverride:n,title:t})}function o(e){w=e}function s(e,t,n){return f({type:O.success,iconClass:g().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return f({type:O.warning,iconClass:g().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e){var t=g();v||n(t),l(e,t)||u(t)}function d(t){var i=g();return v||n(i),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function u(t){for(var n=v.children(),i=n.length-1;i>=0;i--)l(e(n[i]),t)}function l(t,n){return t&&0===e(":focus",t).length?(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0):!1}function c(t){return v=e("").attr("id",t.containerId).addClass(t.positionClass).attr("aria-live","polite").attr("role","alert"),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",target:"body",closeHtml:'',newestOnTop:!0,preventDuplicates:!1,progressBar:!1}}function m(e){w&&w(e)}function f(t){function i(t){return!e(":focus",l).length||t?(clearTimeout(O.intervalId),l[r.hideMethod]({duration:r.hideDuration,easing:r.hideEasing,complete:function(){h(l),r.onHidden&&"hidden"!==b.state&&r.onHidden(),b.state="hidden",b.endTime=new Date,m(b)}})):void 0}function o(){(r.timeOut>0||r.extendedTimeOut>0)&&(u=setTimeout(i,r.extendedTimeOut),O.maxHideTime=parseFloat(r.extendedTimeOut),O.hideEta=(new Date).getTime()+O.maxHideTime)}function s(){clearTimeout(u),O.hideEta=0,l.stop(!0,!0)[r.showMethod]({duration:r.showDuration,easing:r.showEasing})}function a(){var e=(O.hideEta-(new Date).getTime())/O.maxHideTime*100;f.width(e+"%")}var r=g(),d=t.iconClass||r.iconClass;if("undefined"!=typeof t.optionsOverride&&(r=e.extend(r,t.optionsOverride),d=t.optionsOverride.iconClass||d),r.preventDuplicates){if(t.message===C)return;C=t.message}T++,v=n(r,!0);var u=null,l=e(""),c=e(""),p=e(""),f=e(""),w=e(r.closeHtml),O={intervalId:null,hideEta:null,maxHideTime:null},b={toastId:T,state:"visible",startTime:new Date,options:r,map:t};return t.iconClass&&l.addClass(r.toastClass).addClass(d),t.title&&(c.append(t.title).addClass(r.titleClass),l.append(c)),t.message&&(p.append(t.message).addClass(r.messageClass),l.append(p)),r.closeButton&&(w.addClass("toast-close-button").attr("role","button"),l.prepend(w)),r.progressBar&&(f.addClass("toast-progress"),l.prepend(f)),l.hide(),r.newestOnTop?v.prepend(l):v.append(l),l[r.showMethod]({duration:r.showDuration,easing:r.showEasing,complete:r.onShown}),r.timeOut>0&&(u=setTimeout(i,r.timeOut),O.maxHideTime=parseFloat(r.timeOut),O.hideEta=(new Date).getTime()+O.maxHideTime,r.progressBar&&(O.intervalId=setInterval(a,10))),l.hover(s,o),!r.onclick&&r.tapToDismiss&&l.click(i),r.closeButton&&w&&w.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),i(!0)}),r.onclick&&l.click(function(){r.onclick(),i()}),m(b),r.debug&&console&&console.log(b),l}function g(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),C=void 0))}var v,w,C,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:d,error:t,getContainer:n,info:i,options:{},subscribe:o,success:s,version:"2.1.0",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)});
+//# sourceMappingURL=/toastr.js.map
\ No newline at end of file
diff --git a/apps/templates/_foot_js.html b/apps/templates/_foot_js.html
index ca20a0423..04bac17dd 100644
--- a/apps/templates/_foot_js.html
+++ b/apps/templates/_foot_js.html
@@ -1,56 +1,19 @@
+{% load i18n %}
{% load static %}
+
-
\ No newline at end of file
+
diff --git a/apps/templates/_head_css_js.html b/apps/templates/_head_css_js.html
index 08728fbc0..53bfa683b 100644
--- a/apps/templates/_head_css_js.html
+++ b/apps/templates/_head_css_js.html
@@ -3,13 +3,26 @@
+
+
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/templates/_header_bar.html b/apps/templates/_header_bar.html
index 66699be53..419ca717f 100644
--- a/apps/templates/_header_bar.html
+++ b/apps/templates/_header_bar.html
@@ -19,9 +19,15 @@
+ {% if user.is_authenticated %}
- Log out
+ {% trans 'Logout' %}
+ {% else %}
+
+ {% trans 'Login' %}
+
+ {% endif %}
diff --git a/apps/templates/_list_base.html b/apps/templates/_list_base.html
index 11be26259..b0f1524c0 100644
--- a/apps/templates/_list_base.html
+++ b/apps/templates/_list_base.html
@@ -22,7 +22,6 @@
- {# left button add #}
{% block content_left_head %} {% endblock %}