mirror of https://github.com/jumpserver/jumpserver
226 lines
11 KiB
HTML
226 lines
11 KiB
HTML
{% extends 'base.html' %}
|
|
{% load mytags %}
|
|
{% block content %}
|
|
{% include 'nav_cat_bar.html' %}
|
|
|
|
<div class="wrapper wrapper-content animated fadeInRight">
|
|
<div class="row">
|
|
<div class="col-lg-10">
|
|
<div class="ibox float-e-margins">
|
|
<div class="ibox-title">
|
|
<h5> Sudo授权添加</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>
|
|
<ul class="dropdown-menu dropdown-user">
|
|
<li><a href="#">未启用 1</a>
|
|
</li>
|
|
<li><a href="#">未启用 2</a>
|
|
</li>
|
|
</ul>
|
|
<a class="close-link">
|
|
<i class="fa fa-times"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ibox-content">
|
|
<form id="sudoPerm" method="post" 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="row">
|
|
<div class="form-group">
|
|
<label for="name" class="col-sm-2 control-label">授权名<span class="red-fonts">*</span></label>
|
|
<div class="col-sm-8">
|
|
<input id="name" name="name" placeholder="OnlyForEnglish" type="text" class="form-control">
|
|
<span class="help-block m-b-none">取个名字方便辨识,只支持英文</span>
|
|
</div>
|
|
</div>
|
|
<div class="hr-line-dashed"></div>
|
|
|
|
<div class="form-group">
|
|
<label for="runas" class="col-sm-2 control-label">RunAsUser<span class="red-fonts">*</span></label>
|
|
<div class="col-sm-8">
|
|
<input id="runas" name="runas" placeholder="RunAsUser" type="text" class="form-control">
|
|
<span class="help-block m-b-none">
|
|
允许以哪个用户允许sudo,逗号分隔,默认root
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="hr-line-dashed"></div>
|
|
|
|
<div class="form-group">
|
|
<label for="" class="col-sm-2 control-label">用户组<span class="red-fonts">*</span></label>
|
|
<div class="col-sm-4">
|
|
<div>
|
|
<select id="user_groups" name="user_groups" class="form-control" size="5" multiple>
|
|
{% for user_group in user_groups %}
|
|
<option value="{{ user_group.id }}">{{ user_group.name }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="col-sm-1">
|
|
<div class="btn-group" style="margin-top: 12px;">
|
|
<button type="button" class="btn btn-white" onclick="move('user_groups', 'user_groups_select')"><i class="fa fa-chevron-right"></i></button>
|
|
<button type="button" class="btn btn-white" onclick="move('user_groups_select', 'user_groups')"><i class="fa fa-chevron-left"></i> </button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-sm-3">
|
|
<div>
|
|
<select id="user_groups_select" name="user_groups_select" class="form-control m-b" size="5" multiple>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="hr-line-dashed"></div>
|
|
|
|
<div class="form-group">
|
|
<label for="" class="col-sm-2 control-label">主机组<span class="red-fonts">*</span></label>
|
|
<div class="col-sm-4">
|
|
<div>
|
|
<select id="asset_groups" name="asset_groups" class="form-control m-b" size="5" multiple>
|
|
{% for asset_group in asset_groups %}
|
|
<option value="{{ asset_group.id }}">{{ asset_group.name }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-sm-1">
|
|
<div class="btn-group" style="margin-top: 12px;">
|
|
<button type="button" class="btn btn-white" onclick="move('asset_groups', 'asset_groups_select')"><i class="fa fa-chevron-right"></i></button>
|
|
<button type="button" class="btn btn-white" onclick="move('asset_groups_select', 'asset_groups')"><i class="fa fa-chevron-left"></i> </button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-sm-3">
|
|
<div>
|
|
<select id="asset_groups_select" name="asset_groups_select" class="form-control m-b" size="5" multiple>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="hr-line-dashed"></div>
|
|
|
|
<div class="form-group">
|
|
<label for="" class="col-sm-2 control-label">命令组<span class="red-fonts">*</span></label>
|
|
<div class="col-sm-4">
|
|
<div>
|
|
<select id="cmd_groups" name="cmd_groups" class="form-control m-b" size="5" multiple>
|
|
{% for cmd_group in cmd_groups %}
|
|
<option value="{{ cmd_group.id }}">{{ cmd_group.name }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-sm-1">
|
|
<div class="btn-group" style="margin-top: 12px;">
|
|
<button type="button" class="btn btn-white" onclick="move('cmd_groups', 'cmd_groups_select')"><i class="fa fa-chevron-right"></i></button>
|
|
<button type="button" class="btn btn-white" onclick="move('cmd_groups_select', 'cmd_groups')"><i class="fa fa-chevron-left"></i> </button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-sm-3">
|
|
<div>
|
|
<select id="cmd_groups_select" name="cmd_groups_select" class="form-control m-b" size="5" multiple>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="hr-line-dashed"></div>
|
|
<div class="form-group">
|
|
<label for="group_name" class="col-sm-2 control-label">备注</label>
|
|
<div class="col-sm-8">
|
|
<input id="comment" name="comment" placeholder="备注说明" type="text" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="hr-line-dashed"></div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<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>
|
|
</div>
|
|
</form>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script>
|
|
$('#sudoPerm').validator({
|
|
timely: 2,
|
|
theme: "yellow_right_effect",
|
|
fields: {
|
|
"name": {
|
|
rule: "required",
|
|
tip: "输入授权名",
|
|
ok: "",
|
|
msg: {required: "必须填写!"}
|
|
},
|
|
"runas": {
|
|
rule: "required",
|
|
tip: "输入sudoas用户",
|
|
ok: "",
|
|
msg: {required: "必须填写!"}
|
|
},
|
|
"user_groups_select": {
|
|
rule: "required",
|
|
tip: "选择用户组",
|
|
ok: "",
|
|
msg: {checked: "至少选择一个用户组"}
|
|
},
|
|
"asset_groups_select": {
|
|
rule: "required",
|
|
tip: "选择主机组",
|
|
ok: "",
|
|
msg: {checked: "至少选择一个主机组"}
|
|
},
|
|
"cmd_groups_select": {
|
|
rule: "required",
|
|
tip: "选择命令组",
|
|
ok: "",
|
|
msg: {checked: "至少选择一个命令组"}
|
|
}
|
|
|
|
},
|
|
valid: function(form) {
|
|
form.submit();
|
|
}
|
|
});
|
|
|
|
|
|
$(document).ready(function(){
|
|
$("#submit_button").click(function(){
|
|
$('#users_selected option').each(function(){
|
|
$(this).prop('selected', true)
|
|
})
|
|
})
|
|
})
|
|
</script>
|
|
|
|
{% endblock %} |