显示SSH认证相关集群、节点

This commit is contained in:
GoEdgeLab
2020-10-25 21:27:28 +08:00
parent cccc64a629
commit f15e64960c
40 changed files with 297 additions and 163 deletions

View File

@@ -1,4 +0,0 @@
<first-menu>
<menu-item href="/nodes/grants" code="index">认证列表</menu-item>
<menu-item href="/nodes/grants/create" code="create">创建认证</menu-item>
</first-menu>

View File

@@ -1,58 +0,0 @@
{$layout}
{$template "menu"}
<div class="margin"></div>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table selectable definition">
<tr>
<td>名称 *</td>
<td>
<input type="text" name="name" maxlength="100" ref="focus"/>
</td>
</tr>
<tr>
<td class="title">认证方式</td>
<td>
<select class="ui dropdown" style="width:10em" name="method" v-model="method">
<option v-for="method in methods" :value="method.value">{{method.name}}</option>
</select>
</td>
</tr>
<!-- 用户名/密码 -->
<tbody v-if="method == 'user'">
<tr>
<td>SSH用户名 *</td>
<td>
<input type="text" name="username" maxlength="100"/>
<p class="comment">SSH登录用户名。</p>
</td>
</tr>
<tr>
<td>SSH密码</td>
<td><input type="password" name="password" maxlength="100"/>
<p class="comment">SSH登录用户密码。</p> </td>
</tr>
</tbody>
<!-- 私钥 -->
<tbody v-if="method == 'privateKey'">
<tr>
<td>RSA私钥 *</td>
<td>
<textarea name="privateKey"></textarea>
<p class="comment">用来生成登录SSH公钥的私钥</p>
</td>
</tr>
</tbody>
<tr>
<td>描述</td>
<td>
<textarea name="description" rows="3"></textarea>
</td>
</tr>
</table>
<submit-btn></submit-btn>
</form>

View File

@@ -1,5 +0,0 @@
Tea.context(function () {
this.method = "user";
this.success = NotifySuccess("保存成功", "/nodes/grants");
});

View File

@@ -1,63 +0,0 @@
{$layout "layout_popup"}
<h3>添加新认证</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<table class="ui table selectable definition">
<tr>
<td>名称 *</td>
<td>
<input type="text" name="name" maxlength="100" ref="focus" value=""/>
</td>
</tr>
<tr>
<td class="title">认证方式</td>
<td>
<select class="ui dropdown" style="width:10em" name="method" v-model="method">
<option v-for="method in methods" :value="method.value">{{method.name}}</option>
</select>
</td>
</tr>
<!-- 用户名/密码 -->
<tbody v-if="method == 'user'">
<tr>
<td>SSH用户名 *</td>
<td>
<input type="text" name="username" maxlength="100"/>
<p class="comment">SSH登录用户名。</p>
</td>
</tr>
<tr>
<td>SSH密码</td>
<td><input type="password" name="password" maxlength="100"/>
<p class="comment">SSH登录用户密码。</p> </td>
</tr>
</tbody>
<!-- 私钥 -->
<tbody v-if="method == 'privateKey'">
<tr>
<td>RSA私钥 *</td>
<td>
<textarea name="privateKey"></textarea>
<p class="comment">用来生成登录SSH公钥的私钥</p>
</td>
</tr>
</tbody>
<tr>
<td colspan="2"><more-options-indicator></more-options-indicator></td>
</tr>
<tbody v-if="moreOptionsVisible">
<tr>
<td>描述</td>
<td>
<textarea name="description" rows="3"></textarea>
</td>
</tr>
</tbody>
</table>
<submit-btn></submit-btn>
</form>

View File

@@ -1,5 +0,0 @@
Tea.context(function () {
this.method = "user";
this.success = NotifyPopup;
});

View File

@@ -1,58 +0,0 @@
{$layout}
{$template "menu"}
<second-menu>
<menu-item :href="'/nodes/grants/grant?grantId=' + grant.id" active="true">详情</menu-item>
<menu-item :href="'/nodes/grants/update?grantId=' + grant.id">修改</menu-item>
</second-menu>
<table class="ui table selectable definition">
<tr>
<td>名称</td>
<td>
{{grant.name}}
</td>
</tr>
<tr>
<td class="title">认证方式</td>
<td>
{{grant.methodName}}
</td>
</tr>
<!-- 用户名/密码 -->
<tbody v-if="grant.method == 'user'">
<tr>
<td>SSH用户名</td>
<td>
{{grant.username}}
<p class="comment">SSH登录用户名。</p>
</td>
</tr>
<tr>
<td>SSH密码</td>
<td>{{grant.password}}
<p class="comment">SSH登录用户密码。</p> </td>
</tr>
</tbody>
<!-- 私钥 -->
<tbody v-if="grant.method == 'privateKey'">
<tr>
<td>RSA私钥</td>
<td>
{{grant.privateKey}}
<p class="comment">用来生成登录SSH公钥的私钥</p>
</td>
</tr>
</tbody>
<tr>
<td>描述</td>
<td>
<span v-if="grant.description.length > 0">{{grant.description}}</span>
<span v-if="grant.description.length == 0">-</span>
</td>
</tr>
</table>

View File

@@ -1,25 +0,0 @@
{$layout}
{$template "menu"}
<div class="ui message" v-if="grants.length == 0">暂时还没有认证信息。</div>
<table class="ui table selectable" v-if="grants.length > 0">
<thead>
<tr>
<th>ID</th>
<th>名称</th>
<th>类型</th>
<th class="two op">操作</th>
</tr>
</thead>
<tr v-for="grant in grants">
<td>{{grant.id}}</td>
<td>{{grant.name}}</td>
<td>{{grant.method.name}}</td>
<td>
<a :href="'/nodes/grants/grant?grantId=' + grant.id">详情</a> &nbsp; <a href="" @click.prevent="deleteGrant(grant.id)">删除</a>
</td>
</tr>
</table>
<div class="page" v-html="page"></div>

View File

@@ -1,11 +0,0 @@
Tea.context(function () {
this.deleteGrant = function (grantId) {
teaweb.confirm("确定要删除此认证吗?", function () {
this.$post(".delete")
.params({
"grantId": grantId
})
.refresh();
});
};
});

View File

@@ -1,18 +0,0 @@
{$layout "layout_popup"}
<h3>选择认证</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="grantId" :value="grantId"/>
<table class="ui table selectable definition">
<tr>
<td class="title">选择认证</td>
<td>
<span v-if="grants.length == 0">暂时还没有可用的认证。</span>
<a class="ui label small" v-for="grant in grants" :class="{blue:grantId == grant.id}" @click.prevent="selectGrant(grant)">{{grant.name}} <span class="small">{{grant.methodName}}</span></a>
</td>
</tr>
</table>
<submit-btn>确定</submit-btn>
</form>

View File

@@ -1,9 +0,0 @@
Tea.context(function () {
this.grantId = 0;
this.selectGrant = function (grant) {
this.grantId = grant.id;
};
this.success = NotifyPopup;
});

View File

@@ -1,64 +0,0 @@
{$layout}
{$template "menu"}
<second-menu>
<menu-item :href="'/nodes/grants/grant?grantId=' + grant.id">详情</menu-item>
<menu-item :href="'/nodes/grants/update?grantId=' + grant.id" active="true">修改</menu-item>
</second-menu>
<div class="margin"></div>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="grantId" :value="grant.id"/>
<table class="ui table selectable definition">
<tr>
<td>名称 *</td>
<td>
<input type="text" name="name" maxlength="100" ref="focus" v-model="grant.name"/>
</td>
</tr>
<tr>
<td class="title">认证方式</td>
<td>
<select class="ui dropdown" style="width:10em" name="method" v-model="method">
<option v-for="method in methods" :value="method.value">{{method.name}}</option>
</select>
</td>
</tr>
<!-- 用户名/密码 -->
<tbody v-if="method == 'user'">
<tr>
<td>SSH用户名 *</td>
<td>
<input type="text" name="username" maxlength="100" v-model="grant.username"/>
<p class="comment">SSH登录用户名。</p>
</td>
</tr>
<tr>
<td>SSH密码</td>
<td><input type="password" name="password" maxlength="100" v-model="grant.password"/>
<p class="comment">SSH登录用户密码。</p> </td>
</tr>
</tbody>
<!-- 私钥 -->
<tbody v-if="method == 'privateKey'">
<tr>
<td>RSA私钥 *</td>
<td>
<textarea name="privateKey" v-model="grant.privateKey"></textarea>
<p class="comment">用来生成登录SSH公钥的私钥</p>
</td>
</tr>
</tbody>
<tr>
<td>描述</td>
<td>
<textarea name="description" rows="3" v-model="grant.description"></textarea>
</td>
</tr>
</table>
<submit-btn></submit-btn>
</form>

View File

@@ -1,5 +0,0 @@
Tea.context(function () {
this.method = this.grant.method;
this.success = NotifySuccess("保存成功", "/nodes/grants/grant?grantId=" + this.grant.id);
});

View File

@@ -1,65 +0,0 @@
{$layout "layout_popup"}
<h3>修改认证</h3>
<form class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="grantId" :value="grant.id"/>
<input type="hidden" name="nodeId" :value="grant.nodeId"/>
<table class="ui table selectable definition">
<tr>
<td>名称 *</td>
<td>
<input type="text" name="name" maxlength="100" ref="focus" value="" v-model="grant.name"/>
</td>
</tr>
<tr>
<td class="title">认证方式</td>
<td>
<select class="ui dropdown" style="width:10em" name="method" v-model="method">
<option v-for="method in methods" :value="method.value">{{method.name}}</option>
</select>
</td>
</tr>
<!-- 用户名/密码 -->
<tbody v-if="method == 'user'">
<tr>
<td>SSH用户名 *</td>
<td>
<input type="text" name="username" maxlength="100" v-model="grant.username"/>
<p class="comment">SSH登录用户名。</p>
</td>
</tr>
<tr>
<td>SSH密码</td>
<td><input type="password" name="password" maxlength="100" v-model="grant.password"/>
<p class="comment">SSH登录用户密码。</p> </td>
</tr>
</tbody>
<!-- 私钥 -->
<tbody v-if="method == 'privateKey'">
<tr>
<td>RSA私钥 *</td>
<td>
<textarea name="privateKey" v-model="grant.privateKey"></textarea>
<p class="comment">用来生成登录SSH公钥的私钥</p>
</td>
</tr>
</tbody>
<tr>
<td colspan="2"><more-options-indicator></more-options-indicator></td>
</tr>
<tbody v-if="moreOptionsVisible">
<tr>
<td>描述</td>
<td>
<textarea name="description" rows="3" v-model="grant.description"></textarea>
</td>
</tr>
</tbody>
</table>
<submit-btn></submit-btn>
</form>

View File

@@ -1,5 +0,0 @@
Tea.context(function () {
this.method = this.grant.method;
this.success = NotifyPopup;
});