From 5692e9dc8699357e774e3f3d8d4beb2399395c6a Mon Sep 17 00:00:00 2001 From: ibuler <ibuler@qq.com> 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 | 48 ++++++++++++++++++++++++++---------------- templates/setting.html | 14 +++++++++--- 3 files changed, 42 insertions(+), 21 deletions(-) diff --git a/jumpserver/models.py b/jumpserver/models.py index 5958c5e1..068ce110 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 7df2409b..a233332e 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', '') - - 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) + 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] 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 9d469688..55a49ba7 100644 --- a/templates/setting.html +++ b/templates/setting.html @@ -46,20 +46,28 @@ {% endif %} <div class="form-group"> <label for="username" class="col-sm-2 control-label">默认用户å<span class="red-fonts">*</span></label> + <input name="setting" value="default" style="display: none"> <div class="col-sm-8"> - <input id="username" name="username" placeholder="Username" type="text" value="{{ setting_r.default_user }}" class="form-control"> + <input id="username" name="username" placeholder="Username" type="text" value="{{ setting_default.default_user }}" class="form-control"> </div> </div> <div class="hr-line-dashed"></div> <div class="form-group"> <label for="port" class="col-sm-2 control-label">默认ssh端å£<span class="red-fonts">*</span></label> <div class="col-sm-8"> - <input id="port" name="port" placeholder="Port" type="text" value="{{ setting_r.default_port }}" class="form-control"> + <input id="port" name="port" placeholder="Port" type="text" value="{{ setting_default.default_port }}" class="form-control"> </div> </div> <div class="hr-line-dashed"></div> <div class="form-group"> - <label for="key" class="col-sm-2 control-label">默认密钥<span class="red-fonts">*</span></label> + <label for="key" class="col-sm-2 control-label">默认密ç </label> + <div class="col-sm-8"> + <input id="password" name="password" placeholder="Password" type="password" value="{{ setting_default.default_password }}" class="form-control"> + </div> + </div> + <div class="hr-line-dashed"></div> + <div class="form-group"> + <label for="key" class="col-sm-2 control-label">默认密钥</label> <div class="col-sm-8"> <textarea class="form-control" name="key" placeholder="请å¤åˆ¶ç²˜è´´ç§é’¥(原æ¥çš„å› ä¸ºå®‰å…¨åŽŸå› ä¸è¢«æ˜¾ç¤º)" rows="10" style="font-size: 9px;"></textarea> </div> -- 2.18.0