From 5692e9dc8699357e774e3f3d8d4beb2399395c6a Mon Sep 17 00:00:00 2001 From: ibuler Date: Mon, 9 Nov 2015 11:56:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B5=84=E4=BA=A7=E7=9A=84?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jumpserver/models.py | 1 + jumpserver/views.py | 46 ++++++++++++++++++++++++++---------------- templates/setting.html | 14 ++++++++++--- 3 files changed, 41 insertions(+), 20 deletions(-) diff --git a/jumpserver/models.py b/jumpserver/models.py index 5958c5e1a..068ce110e 100644 --- a/jumpserver/models.py +++ b/jumpserver/models.py @@ -7,6 +7,7 @@ class Setting(models.Model): name = models.CharField(max_length=100) default_user = models.CharField(max_length=100, null=True, blank=True) default_port = models.IntegerField(max_length=10, null=True, blank=True) + default_password = models.CharField(max_length=100, null=True, blank=True) default_pri_key_path = models.CharField(max_length=100, null=True, blank=True) class Meta: diff --git a/jumpserver/views.py b/jumpserver/views.py index 7df2409b8..a233332e7 100644 --- a/jumpserver/views.py +++ b/jumpserver/views.py @@ -245,27 +245,39 @@ def Logout(request): def setting(request): header_title, path1 = '项目设置', '设置' - setting_r = get_object(Setting, name='default') + setting_default = get_object(Setting, name='default') if request.method == "POST": - username = request.POST.get('username', '') - port = request.POST.get('port', '') - private_key = request.POST.get('key', '') + setting_raw = request.POST.get('setting', '') + if setting_raw == 'default': + username = request.POST.get('username', '') + port = request.POST.get('port', '') + password = request.POST.get('password', '') + private_key = request.POST.get('key', '') - if '' in [username, port, private_key]: - return HttpResponse('所填内容不能为空') - else: - settings = get_object(Setting, id=1) - private_key_path = os.path.join(BASE_DIR, 'keys', 'default', 'default_private_key.pem') - with open(private_key_path, 'w') as f: - f.write(private_key) - os.chmod(private_key_path, 0600) - if settings: - Setting.objects.filter(name='default').update(default_user=username, default_port=port, - default_pri_key_path=private_key_path) + if '' in [username, port] and ('' in password or '' in private_key): + return HttpResponse('所填内容不能为空, 且密码和私钥填一个') else: - setting_r = Setting(name='default', default_user=username, default_port=port, - default_pri_key_path=private_key_path).save() + private_key_path = os.path.join(BASE_DIR, 'keys', 'default', 'default_private_key.pem') + if private_key: + with open(private_key_path, 'w') as f: + f.write(private_key) + os.chmod(private_key_path, 0600) + + if setting_default: + if password != setting_default.default_password: + password_encode = CRYPTOR.encrypt(password) + else: + password_encode = password + Setting.objects.filter(name='default').update(default_user=username, default_port=port, + default_password=password_encode, + default_pri_key_path=private_key_path) + + else: + password_encode = CRYPTOR.encrypt(password) + setting_r = Setting(name='default', default_user=username, default_port=port, + default_password=password_encode, + default_pri_key_path=private_key_path).save() msg = "设置成功" return my_render('setting.html', locals(), request) diff --git a/templates/setting.html b/templates/setting.html index 9d4696887..55a49ba7c 100644 --- a/templates/setting.html +++ b/templates/setting.html @@ -46,20 +46,28 @@ {% endif %}
+
- +
- +
- + +
+ +
+
+
+
+