mirror of https://github.com/jumpserver/jumpserver
add asset ok ,pull
commit
844fe2c250
|
@ -414,4 +414,4 @@ def my_render(template, data, request):
|
||||||
|
|
||||||
CRYPTOR = PyCrypt(KEY)
|
CRYPTOR = PyCrypt(KEY)
|
||||||
logger = set_log(LOG_LEVEL)
|
logger = set_log(LOG_LEVEL)
|
||||||
|
KEY_DIR = os.path.join(BASE_DIR, 'keys')
|
||||||
|
|
|
@ -81,7 +81,10 @@ def index_cu(request):
|
||||||
login_types = {'L': 'LDAP', 'M': 'MAP'}
|
login_types = {'L': 'LDAP', 'M': 'MAP'}
|
||||||
username = user.username
|
username = user.username
|
||||||
# posts = user.get_asset()
|
# posts = user.get_asset()
|
||||||
# host_count = len(posts)
|
|
||||||
|
posts = User.objects.all()
|
||||||
|
host_count = len(posts)
|
||||||
|
|
||||||
new_posts = []
|
new_posts = []
|
||||||
post_five = []
|
post_five = []
|
||||||
# for post in posts:
|
# for post in posts:
|
||||||
|
|
|
@ -119,7 +119,9 @@ def db_del_user(username):
|
||||||
|
|
||||||
|
|
||||||
def gen_ssh_key(username, password='',
|
def gen_ssh_key(username, password='',
|
||||||
|
|
||||||
key_dir=os.path.join(BASE_DIR, 'role_keys/user/'),
|
key_dir=os.path.join(BASE_DIR, 'role_keys/user/'),
|
||||||
|
|
||||||
authorized_keys=True, home="/home", length=2048):
|
authorized_keys=True, home="/home", length=2048):
|
||||||
"""
|
"""
|
||||||
generate a user ssh key in a property dir
|
generate a user ssh key in a property dir
|
||||||
|
|
|
@ -151,14 +151,14 @@ def user_add(request):
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
username = request.POST.get('username', '')
|
username = request.POST.get('username', '')
|
||||||
password = PyCrypt.random_pass(16)
|
password = PyCrypt.gen_rand_pass(16)
|
||||||
name = request.POST.get('name', '')
|
name = request.POST.get('name', '')
|
||||||
email = request.POST.get('email', '')
|
email = request.POST.get('email', '')
|
||||||
groups = request.POST.getlist('groups', [])
|
groups = request.POST.getlist('groups', [])
|
||||||
admin_groups = request.POST.getlist('admin_groups', [])
|
admin_groups = request.POST.getlist('admin_groups', [])
|
||||||
role = request.POST.get('role', 'CU')
|
role = request.POST.get('role', 'CU')
|
||||||
uuid = uuid_r.uuid1()
|
uuid = uuid_r.uuid1()
|
||||||
ssh_key_pwd = PyCrypt.random_pass(16)
|
ssh_key_pwd = PyCrypt.gen_rand_pass(16)
|
||||||
extra = request.POST.getlist('extra', [])
|
extra = request.POST.getlist('extra', [])
|
||||||
is_active = True if '0' in extra else False
|
is_active = True if '0' in extra else False
|
||||||
ssh_key_login_need = True if '1' in extra else False
|
ssh_key_login_need = True if '1' in extra else False
|
||||||
|
@ -191,14 +191,11 @@ def user_add(request):
|
||||||
for user_group_id in groups:
|
for user_group_id in groups:
|
||||||
user_groups.extend(UserGroup.objects.filter(id=user_group_id))
|
user_groups.extend(UserGroup.objects.filter(id=user_group_id))
|
||||||
print user_groups
|
print user_groups
|
||||||
results = _public_perm_api({'type': 'new_user', 'user': user, 'group': user_groups})
|
|
||||||
print results
|
|
||||||
except IndexError, e:
|
except IndexError, e:
|
||||||
error = u'添加用户 %s 失败 %s ' % (username, e)
|
error = u'添加用户 %s 失败 %s ' % (username, e)
|
||||||
try:
|
try:
|
||||||
db_del_user(username)
|
db_del_user(username)
|
||||||
server_del_user(username)
|
server_del_user(username)
|
||||||
_public_perm_api({'type': 'del_user', 'user': user, 'group': user_groups})
|
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
|
@ -463,7 +460,7 @@ def regen_ssh_key(request):
|
||||||
return HttpResponse('没有该用户')
|
return HttpResponse('没有该用户')
|
||||||
|
|
||||||
username = user.username
|
username = user.username
|
||||||
ssh_key_pass = PyCrypt.random_pass(16)
|
ssh_key_pass = PyCrypt.gen_rand_pass(16)
|
||||||
gen_ssh_key(username, ssh_key_pass)
|
gen_ssh_key(username, ssh_key_pass)
|
||||||
return HttpResponse('ssh密钥已生成,密码为 %s, 请到下载页面下载' % ssh_key_pass)
|
return HttpResponse('ssh密钥已生成,密码为 %s, 请到下载页面下载' % ssh_key_pass)
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<form id="assetForm" method="post" class="form-horizontal">
|
<form id="assetForm" method="post" class="form-horizontal">
|
||||||
|
|
||||||
{{ af.ip|bootstrap_horizontal }}
|
{{ af.ip|bootstrap_horizontal }}
|
||||||
|
|
||||||
<div class="hr-line-dashed"></div>
|
<div class="hr-line-dashed"></div>
|
||||||
|
@ -61,12 +62,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group" id="port" style="display: none">
|
|
||||||
<label class="col-sm-2 control-label"> 端口号<span class="red-fonts">*</span> </label>
|
|
||||||
<div class="col-sm-8">
|
|
||||||
<input type="text" placeholder="Port" name="port" class="form-control">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group" id="admin_account" style="display: none">
|
<div class="form-group" id="admin_account" style="display: none">
|
||||||
<label class="col-sm-2 control-label"> 管理用户名<span class="red-fonts">*</span> </label>
|
<label class="col-sm-2 control-label"> 管理用户名<span class="red-fonts">*</span> </label>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
|
@ -126,34 +121,6 @@
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
$('document').ready(function(){
|
|
||||||
$('#use_default').click(function(){
|
|
||||||
if ($(this).is(':checked')){
|
|
||||||
$('#admin_account').css('display', 'none');
|
|
||||||
$('#port').css('display', 'none')
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('#admin_account').css('display', 'block');
|
|
||||||
$('#port').css('display', 'block')
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#assetForm').validator({
|
|
||||||
timely: 2,
|
|
||||||
theme: "yellow_right_effect",
|
|
||||||
rules: {
|
|
||||||
check_ip: [/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$/, 'ip地址不正确'],
|
|
||||||
check_port: [/^\d{1,5}$/, '端口号不正确'],
|
|
||||||
},
|
|
||||||
fields: {
|
|
||||||
"ip": {
|
|
||||||
rule: "required;check_ip",
|
|
||||||
tip: "输入IP",
|
|
||||||
ok: "",
|
|
||||||
msg: {required: "必须填写!"}
|
|
||||||
=======
|
|
||||||
var required_fields = ["id_hostname", "id_ip", "id_port"];
|
var required_fields = ["id_hostname", "id_ip", "id_port"];
|
||||||
required_fields.forEach(function(field) {
|
required_fields.forEach(function(field) {
|
||||||
$('label[for="' + field + '"]').parent().addClass("required");
|
$('label[for="' + field + '"]').parent().addClass("required");
|
||||||
|
@ -182,7 +149,6 @@ $('#assetForm').validator({
|
||||||
},
|
},
|
||||||
valid: function(form) {
|
valid: function(form) {
|
||||||
form.submit();
|
form.submit();
|
||||||
>>>>>>> cmdb
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -36,18 +36,22 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
function sleep(n) { //n表示的毫秒数
|
||||||
|
var start = new Date().getTime();
|
||||||
|
while (true) if (new Date().getTime() - start > n) break;
|
||||||
|
}
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
$('.page').click(function(){
|
$('.page').click(function(){
|
||||||
var searchStr = location.search;
|
var searchStr = location.search;
|
||||||
var old_href = $(this).attr('href').replace('?', '');
|
var old_href = $(this).attr('href').replace('?', '');
|
||||||
var searchArray = searchStr.split('&');
|
var searchArray = searchStr.split('&');
|
||||||
|
|
||||||
if (searchStr.indexOf('page')){
|
if (searchStr.indexOf('page')>=0){
|
||||||
searchArray.pop();
|
searchArray.pop();
|
||||||
}
|
}
|
||||||
searchArray.push(old_href);
|
searchArray.push(old_href);
|
||||||
|
if (searchArray.length > 1){
|
||||||
if (searchArray.length > 2){
|
|
||||||
$(this).attr('href', searchArray.join('&'));
|
$(this).attr('href', searchArray.join('&'));
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue