修改setting字段

pull/26/head
ibuler 2015-11-24 17:38:27 +08:00
parent 1a63d32fe3
commit 32d036c2b0
5 changed files with 30 additions and 24 deletions

View File

@ -412,9 +412,9 @@ def perm_role_push(request):
push_resource = [] push_resource = []
for asset in calc_assets: for asset in calc_assets:
if asset.use_default_auth: if asset.use_default_auth:
username = Setting.default_user username = Setting.field1
password = Setting.default_password port = Setting.field2
port = Setting.default_port password = Setting.field3
else: else:
username = asset.username username = asset.username
password = asset.password password = asset.password

View File

@ -52,15 +52,15 @@ def get_asset_info(asset):
info = {'hostname': asset.hostname, 'ip': asset.ip} info = {'hostname': asset.hostname, 'ip': asset.ip}
if asset.use_default_auth: if asset.use_default_auth:
if default: if default:
info['port'] = default.default_port info['port'] = int(default.field2)
info['username'] = default.default_user info['username'] = default.field1
try: try:
info['password'] = CRYPTOR.decrypt(default.default_password) info['password'] = CRYPTOR.decrypt(default.field3)
except ServerError: except ServerError:
pass pass
info['ssh_key'] = default.default_pri_key_path info['ssh_key'] = default.field4
else: else:
info['port'] = asset.port info['port'] = int(asset.port)
info['username'] = asset.username info['username'] = asset.username
info['password'] = CRYPTOR.decrypt(asset.password) info['password'] = CRYPTOR.decrypt(asset.password)

View File

@ -5,10 +5,14 @@ from django.db import models
class Setting(models.Model): class Setting(models.Model):
name = models.CharField(max_length=100) name = models.CharField(max_length=100)
default_user = models.CharField(max_length=100, null=True, blank=True) field1 = models.CharField(max_length=100, null=True, blank=True)
default_port = models.IntegerField(null=True, blank=True) field2 = models.CharField(max_length=100, null=True, blank=True)
default_password = models.CharField(max_length=100, null=True, blank=True) field3 = models.CharField(max_length=100, null=True, blank=True)
default_pri_key_path = models.CharField(max_length=100, null=True, blank=True) field4 = models.CharField(max_length=100, null=True, blank=True)
field5 = models.CharField(max_length=100, null=True, blank=True)
class Meta: class Meta:
db_table = u'setting' db_table = u'setting'
def __unicode__(self):
return self.name

View File

@ -265,7 +265,7 @@ def setting(request):
password = request.POST.get('password', '') password = request.POST.get('password', '')
private_key = request.POST.get('key', '') private_key = request.POST.get('key', '')
if '' in [username, port] and ('' in password or '' in private_key): if '' in [username, port]:
return HttpResponse('所填内容不能为空, 且密码和私钥填一个') return HttpResponse('所填内容不能为空, 且密码和私钥填一个')
else: else:
private_key_path = os.path.join(BASE_DIR, 'keys/role_keys', 'default', 'default_private_key.pem') private_key_path = os.path.join(BASE_DIR, 'keys/role_keys', 'default', 'default_private_key.pem')
@ -275,19 +275,19 @@ def setting(request):
os.chmod(private_key_path, 0600) os.chmod(private_key_path, 0600)
if setting_default: if setting_default:
if password != setting_default.default_password: if password:
password_encode = CRYPTOR.encrypt(password) password_encode = CRYPTOR.encrypt(password)
else: else:
password_encode = password password_encode = password
Setting.objects.filter(name='default').update(default_user=username, default_port=port, Setting.objects.filter(name='default').update(field1=username, field2=port,
default_password=password_encode, field3=password_encode,
default_pri_key_path=private_key_path) field4=private_key_path)
else: else:
password_encode = CRYPTOR.encrypt(password) password_encode = CRYPTOR.encrypt(password)
setting_r = Setting(name='default', default_user=username, default_port=port, setting_r = Setting(name='default', field1=username, field2=port,
default_password=password_encode, field3=password_encode,
default_pri_key_path=private_key_path).save() field4=private_key_path).save()
msg = "设置成功" msg = "设置成功"
return my_render('setting.html', locals(), request) return my_render('setting.html', locals(), request)

View File

@ -48,28 +48,30 @@
<label for="username" class="col-sm-2 control-label">默认用户名<span class="red-fonts">*</span></label> <label for="username" class="col-sm-2 control-label">默认用户名<span class="red-fonts">*</span></label>
<input name="setting" value="default" style="display: none"> <input name="setting" value="default" style="display: none">
<div class="col-sm-8"> <div class="col-sm-8">
<input id="username" name="username" placeholder="Username" type="text" value="{{ setting_default.default_user }}" class="form-control"> <input id="username" name="username" placeholder="Username" type="text" value="{{ setting_default.field1 }}" class="form-control">
</div> </div>
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<label for="port" class="col-sm-2 control-label">默认ssh端口<span class="red-fonts">*</span></label> <label for="port" class="col-sm-2 control-label">默认ssh端口<span class="red-fonts">*</span></label>
<div class="col-sm-8"> <div class="col-sm-8">
<input id="port" name="port" placeholder="Port" type="text" value="{{ setting_default.default_port }}" class="form-control"> <input id="port" name="port" placeholder="Port" type="text" value="{{ setting_default.field2 }}" class="form-control">
</div> </div>
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<label for="key" class="col-sm-2 control-label">默认密码</label> <label for="key" class="col-sm-2 control-label">默认密码</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input id="password" name="password" placeholder="Password" type="password" value="{{ setting_default.default_password }}" class="form-control"> <input id="password" name="password" placeholder="Password" type="password" class="form-control">
<span class="help-block m-b-none">如果不修改密码,请留空</span>
</div> </div>
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<label for="key" class="col-sm-2 control-label">默认密钥</label> <label for="key" class="col-sm-2 control-label">默认密钥</label>
<div class="col-sm-8"> <div class="col-sm-8">
<textarea class="form-control" name="key" placeholder="请复制粘贴私钥(原来的因为安全原因不被显示)" rows="10" style="font-size: 9px;"></textarea> <textarea class="form-control" name="key" placeholder="请复制粘贴私钥" rows="10" style="font-size: 9px;"></textarea>
<span class="help-block m-b-none">如果不修改密钥,请留空</span>
</div> </div>
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>