2015-12-19 09:27:12 +00:00
|
|
|
|
{% extends 'base.html' %}
|
|
|
|
|
{% block self_head_css_js %}
|
|
|
|
|
<link href="/static/css/plugins/datepicker/datepicker3.css" rel="stylesheet">
|
|
|
|
|
<link href="/static/css/plugins/chosen/chosen.css" rel="stylesheet">
|
|
|
|
|
<script src="/static/js/plugins/chosen/chosen.jquery.js"></script>
|
|
|
|
|
{% endblock %}
|
|
|
|
|
{% load mytags %}
|
|
|
|
|
{% block content %}
|
|
|
|
|
{% include 'nav_cat_bar.html' %}
|
|
|
|
|
<div class="wrapper wrapper-content animated fadeInRight">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-sm-10">
|
|
|
|
|
<div class="ibox float-e-margins">
|
|
|
|
|
<div class="ibox-title">
|
|
|
|
|
<h5>填写基本信息</h5>
|
|
|
|
|
<div class="ibox-tools">
|
|
|
|
|
<a class="collapse-link">
|
|
|
|
|
<i class="fa fa-chevron-up"></i>
|
|
|
|
|
</a>
|
|
|
|
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
|
|
|
|
<i class="fa fa-wrench"></i>
|
|
|
|
|
</a>
|
|
|
|
|
<a class="close-link">
|
|
|
|
|
<i class="fa fa-times"></i>
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="ibox-content">
|
|
|
|
|
<form method="post" id="roleForm" class="form-horizontal" action="">
|
|
|
|
|
{% if error %}
|
|
|
|
|
<div class="alert alert-warning text-center">{{ error }}</div>
|
|
|
|
|
{% endif %}
|
|
|
|
|
{% if msg %}
|
|
|
|
|
<div class="alert alert-success text-center">{{ msg }}</div>
|
|
|
|
|
{% endif %}
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label for="role_name" class="col-sm-2 control-label">用户名称<span class="red-fonts">*</span></label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input id="role_name" name="role_name" placeholder="Role Name" type="text" class="form-control">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="hr-line-dashed"></div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label for="role_password" class="col-sm-2 control-label">用户密码</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input id="role_password" name="role_password" placeholder="Role Password" type="password" class="form-control">
|
|
|
|
|
<span class="help-block m-b-none">如果不添加密码,会自动生成</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label for="role_key" class="col-sm-2 control-label">用户密钥</label>
|
|
|
|
|
<div class="col-sm-8">
|
2015-12-22 14:39:59 +00:00
|
|
|
|
<textarea id='role_key' class="form-control" name="role_key" placeholder="请复制粘贴私钥" rows="10" style="font-size: 9px;"></textarea>
|
2015-12-19 09:27:12 +00:00
|
|
|
|
<span class="help-block m-b-none">如果不添加密钥,会自动生成 </span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="hr-line-dashed"></div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label for="sudo" class="col-sm-2 control-label">关联Sudo</label>
|
|
|
|
|
<div class="col-sm-8" id="sudo_name">
|
|
|
|
|
<select name="sudo_name" data-placeholder="请选择Sudo别名" class="chosen-select form-control m-b" multiple tabindex="2">
|
|
|
|
|
{% for sudo in sudos %}
|
|
|
|
|
<option value="{{ sudo.id }}">{{ sudo.name }}</option>
|
|
|
|
|
{% endfor %}
|
|
|
|
|
</select>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="hr-line-dashed"></div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label for="role_comment" class="col-sm-2 control-label">备注</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input id="role_comment" name="role_comment" placeholder="Role Comment" type="text" class="form-control">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="hr-line-dashed"></div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<div class="col-sm-4 col-sm-offset-2">
|
|
|
|
|
<button class="btn btn-white" type="reset">取消</button>
|
|
|
|
|
<button id="submit_button" class="btn btn-primary" type="submit">确认保存</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
{% endblock %}
|
|
|
|
|
{% block self_footer_js %}
|
|
|
|
|
<script>
|
|
|
|
|
$('#roleForm').validator({
|
|
|
|
|
timely: 2,
|
|
|
|
|
theme: "yellow_right_effect",
|
|
|
|
|
rules: {
|
2016-01-18 04:01:39 +00:00
|
|
|
|
check_name: [/(?!^root$)^[\w.]{2,20}$/i, '大小写字母数字和下划线小数点,2-20位,并且非root'],
|
2016-02-22 08:31:33 +00:00
|
|
|
|
check_begin: [/^[\-]+BEGIN R|DSA PRIVATE KEY[\-]+/gm, 'RSA|DSA Key填写有误,请检查']
|
2016-01-04 03:43:17 +00:00
|
|
|
|
|
2015-12-19 09:27:12 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
fields: {
|
|
|
|
|
"role_name": {
|
2016-01-04 05:13:13 +00:00
|
|
|
|
rule: "required;check_name",
|
2015-12-19 09:27:12 +00:00
|
|
|
|
tip: "输入系统用户名称",
|
|
|
|
|
ok: "",
|
|
|
|
|
msg: {required: "系统用户名称必填"}
|
|
|
|
|
},
|
2016-03-21 02:30:29 +00:00
|
|
|
|
"role_password": {
|
|
|
|
|
rule: "length[0~64]",
|
|
|
|
|
tip: "系统密码"
|
|
|
|
|
},
|
2015-12-22 14:39:59 +00:00
|
|
|
|
"role_key": {
|
2015-12-22 15:05:38 +00:00
|
|
|
|
rule: "check_begin",
|
|
|
|
|
ok: "",
|
|
|
|
|
empty: true
|
2016-02-22 08:31:33 +00:00
|
|
|
|
}
|
2016-01-04 03:43:17 +00:00
|
|
|
|
|
2015-12-19 09:27:12 +00:00
|
|
|
|
},
|
|
|
|
|
valid: function(form) {
|
|
|
|
|
form.submit();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var config = {
|
|
|
|
|
'.chosen-select' : {},
|
|
|
|
|
'.chosen-select-deselect' : {allow_single_deselect:true},
|
|
|
|
|
'.chosen-select-no-single' : {disable_search_threshold:10},
|
|
|
|
|
'.chosen-select-no-results': {no_results_text:'Oops, nothing found!'},
|
|
|
|
|
'.chosen-select-width' : {width:"95%"}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
for (var selector in config) {
|
|
|
|
|
$(selector).chosen(config[selector]);
|
|
|
|
|
}
|
|
|
|
|
|
2015-12-22 14:39:59 +00:00
|
|
|
|
|
|
|
|
|
|
2015-12-19 09:27:12 +00:00
|
|
|
|
</script>
|
|
|
|
|
<script src="/static/js/cropper/cropper.min.js"></script>
|
|
|
|
|
<script src="/static/js/datapicker/bootstrap-datepicker.js"></script>
|
|
|
|
|
{% endblock %}
|
|
|
|
|
|