diff --git a/apps/assets/forms.py b/apps/assets/forms.py index c8f846f15..e2a57c284 100644 --- a/apps/assets/forms.py +++ b/apps/assets/forms.py @@ -7,6 +7,7 @@ from common.utils import validate_ssh_private_key, ssh_pubkey_gen class AssetCreateForm(forms.ModelForm): + def __init__(self, *args, **kwargs): instance = kwargs.get('instance', None) if instance: @@ -78,10 +79,10 @@ class AssetGroupForm(forms.ModelForm): class Meta: model = AssetGroup fields = [ - "name", "comment","system_users", + "name", "comment", "system_users", ] widgets = { - 'name' : forms.TextInput(attrs={}), + 'name': forms.TextInput(attrs={}), 'system_users': forms.SelectMultiple(attrs={'class': 'select2-system-user', 'data-placeholder': _('Select asset system user')}), } @@ -113,7 +114,8 @@ class IDCForm(forms.ModelForm): class Meta: model = IDC - fields = ['name', "bandwidth", "operator", 'contact', 'phone', 'address', 'intranet', 'extranet','comment'] + fields = ['name', "bandwidth", "operator", 'contact', + 'phone', 'address', 'intranet', 'extranet', 'comment'] widgets = { 'name': forms.TextInput(attrs={'placeholder': _('Name')}), 'intranet': forms.Textarea( @@ -189,7 +191,8 @@ class AdminUserForm(forms.ModelForm): class Meta: model = AdminUser - fields = ['name', 'username', 'password', 'private_key_file', 'comment'] + fields = ['name', 'username', 'password', + 'private_key_file', 'comment'] widgets = { 'name': forms.TextInput(attrs={'placeholder': _('Name')}), 'username': forms.TextInput(attrs={'placeholder': _('Username')}), @@ -204,7 +207,8 @@ class SystemUserForm(forms.ModelForm): # Admin user assets define, let user select, save it in form not in view auto_generate_key = forms.BooleanField(initial=True, required=False) # Form field name can not start with `_`, so redefine it, - password = forms.CharField(widget=forms.PasswordInput, max_length=100, min_length=8, strip=True) + password = forms.CharField(widget=forms.PasswordInput, max_length=100, + required=False, min_length=8, strip=True) # Need use upload private key file except paste private key content private_key_file = forms.FileField(required=False) @@ -295,7 +299,7 @@ class AssetTagForm(forms.ModelForm): "name", ] widgets = { - 'name' : forms.TextInput(attrs={}), + 'name': forms.TextInput(attrs={}), } help_texts = { diff --git a/apps/assets/models/idc.py b/apps/assets/models/idc.py index 18ccc642d..a8a1e5c9b 100644 --- a/apps/assets/models/idc.py +++ b/apps/assets/models/idc.py @@ -1,11 +1,12 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# +# from __future__ import unicode_literals -from django.db import models import logging + +from django.db import models from django.utils.translation import ugettext_lazy as _ @@ -15,15 +16,22 @@ logger = logging.getLogger(__name__) class IDC(models.Model): name = models.CharField(max_length=32, verbose_name=_('Name')) - bandwidth = models.CharField(max_length=32, blank=True, verbose_name=_('Bandwidth')) - contact = models.CharField(max_length=16, blank=True, verbose_name=_('Contact')) - phone = models.CharField(max_length=32, blank=True, verbose_name=_('Phone')) - address = models.CharField(max_length=128, blank=True, verbose_name=_("Address")) + bandwidth = models.CharField( + max_length=32, blank=True, verbose_name=_('Bandwidth')) + contact = models.CharField( + max_length=128, blank=True, verbose_name=_('Contact')) + phone = models.CharField(max_length=32, blank=True, + verbose_name=_('Phone')) + address = models.CharField( + max_length=128, blank=True, verbose_name=_("Address")) intranet = models.TextField(blank=True, verbose_name=_('Intranet')) extranet = models.TextField(blank=True, verbose_name=_('Extranet')) - date_created = models.DateTimeField(auto_now_add=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')) + date_created = models.DateTimeField( + auto_now_add=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')) def __unicode__(self): @@ -58,4 +66,3 @@ class IDC(models.Model): except IntegrityError: print('Error continue') continue - diff --git a/apps/assets/models/user.py b/apps/assets/models/user.py index 5440d3910..bb5f43af7 100644 --- a/apps/assets/models/user.py +++ b/apps/assets/models/user.py @@ -4,10 +4,11 @@ from __future__ import unicode_literals -from django.db import models import logging -from django.utils.translation import ugettext_lazy as _ + from django.core.exceptions import ValidationError +from django.db import models +from django.utils.translation import ugettext_lazy as _ from common.utils import signer, validate_ssh_private_key @@ -24,15 +25,19 @@ def private_key_validator(value): class AdminUser(models.Model): - name = models.CharField(max_length=128, unique=True, verbose_name=_('Name')) + 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, null=True, verbose_name=_('Password')) + _password = models.CharField( + max_length=256, blank=True, null=True, verbose_name=_('Password')) _private_key = models.CharField(max_length=4096, blank=True, null=True, verbose_name=_('SSH private key'), - validators=[private_key_validator,]) - _public_key = models.CharField(max_length=4096, blank=True, verbose_name=_('SSH public key')) + validators=[private_key_validator, ]) + _public_key = models.CharField( + max_length=4096, blank=True, verbose_name=_('SSH public key')) comment = models.TextField(blank=True, verbose_name=_('Comment')) date_created = models.DateTimeField(auto_now_add=True, null=True) - created_by = models.CharField(max_length=32, null=True, verbose_name=_('Created by')) + created_by = models.CharField( + max_length=32, null=True, verbose_name=_('Created by')) def __unicode__(self): return self.name @@ -99,23 +104,33 @@ class SystemUser(models.Model): ('P', 'Password'), ('K', 'Public key'), ) - name = models.CharField(max_length=128, unique=True, verbose_name=_('Name')) + 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')) + _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=8192, blank=True, verbose_name=_('SSH private key')) + _public_key = models.CharField( + max_length=8192, blank=True, verbose_name=_('SSH public key')) auth_method = models.CharField(choices=AUTH_METHOD_CHOICES, default='K', max_length=1, verbose_name=_('Auth method')) 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, default='/user/bin/whoami', verbose_name=_('Sudo')) - shell = models.CharField(max_length=64, default='/bin/bash', verbose_name=_('Shell')) + auto_update = models.BooleanField( + default=True, verbose_name=_('Auto update pass/key')) + 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_add=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')) + 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 @@ -156,7 +171,8 @@ class SystemUser(models.Model): return assets def get_assets(self): - assets = set(self.assets.all()) | self.get_assets_inherit_from_asset_groups() + assets = set(self.assets.all() + ) | self.get_assets_inherit_from_asset_groups() return list(assets) @property @@ -199,4 +215,3 @@ class SystemUser(models.Model): except IntegrityError: print('Error continue') continue - diff --git a/apps/audits/models.py b/apps/audits/models.py index 25790f8a0..d1d51c97f 100644 --- a/apps/audits/models.py +++ b/apps/audits/models.py @@ -2,7 +2,6 @@ # from __future__ import unicode_literals -import base64 from django.db import models from django.utils.translation import ugettext_lazy as _ @@ -20,9 +19,9 @@ class LoginLog(models.Model): login_type = models.CharField(choices=LOGIN_TYPE_CHOICE, max_length=2, verbose_name=_('Login type')) login_ip = models.GenericIPAddressField(verbose_name=_('Login ip')) - login_city = models.CharField(max_length=100, blank=True, null=True, + login_city = models.CharField(max_length=254, blank=True, null=True, verbose_name=_('Login city')) - user_agent = models.CharField(max_length=100, blank=True, null=True, + user_agent = models.CharField(max_length=254, blank=True, null=True, verbose_name=_('User agent')) date_login = models.DateTimeField(auto_now_add=True, verbose_name=_('Date login'))