mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-05 14:20:25 +08:00
113 lines
3.0 KiB
JavaScript
113 lines
3.0 KiB
JavaScript
// 认证设置
|
|
Vue.component("http-auth-config-box", {
|
|
props: ["v-auth-config", "v-is-location"],
|
|
data: function () {
|
|
let authConfig = this.vAuthConfig
|
|
if (authConfig == null) {
|
|
authConfig = {
|
|
isPrior: false,
|
|
isOn: false
|
|
}
|
|
}
|
|
if (authConfig.policyRefs == null) {
|
|
authConfig.policyRefs = []
|
|
}
|
|
return {
|
|
authConfig: authConfig
|
|
}
|
|
},
|
|
methods: {
|
|
isOn: function () {
|
|
return (!this.vIsLocation || this.authConfig.isPrior) && this.authConfig.isOn
|
|
},
|
|
add: function () {
|
|
let that = this
|
|
teaweb.popup("/servers/server/settings/access/createPopup", {
|
|
callback: function (resp) {
|
|
that.authConfig.policyRefs.push(resp.data.policyRef)
|
|
},
|
|
height: "28em"
|
|
})
|
|
},
|
|
update: function (index, policyId) {
|
|
let that = this
|
|
teaweb.popup("/servers/server/settings/access/updatePopup?policyId=" + policyId, {
|
|
callback: function (resp) {
|
|
teaweb.success("保存成功", function () {
|
|
teaweb.reload()
|
|
})
|
|
},
|
|
height: "28em"
|
|
})
|
|
},
|
|
remove: function (index) {
|
|
this.authConfig.policyRefs.$remove(index)
|
|
},
|
|
methodName: function (methodType) {
|
|
switch (methodType) {
|
|
case "basicAuth":
|
|
return "BasicAuth"
|
|
case "subRequest":
|
|
return "子请求"
|
|
}
|
|
return ""
|
|
}
|
|
},
|
|
template: `<div>
|
|
<input type="hidden" name="authJSON" :value="JSON.stringify(authConfig)"/>
|
|
<table class="ui table selectable definition">
|
|
<prior-checkbox :v-config="authConfig" v-if="vIsLocation"></prior-checkbox>
|
|
<tbody v-show="!vIsLocation || authConfig.isPrior">
|
|
<tr>
|
|
<td class="title">启用认证</td>
|
|
<td>
|
|
<div class="ui checkbox">
|
|
<input type="checkbox" v-model="authConfig.isOn"/>
|
|
<label></label>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="margin"></div>
|
|
<!-- 认证方式 -->
|
|
<div v-show="isOn()">
|
|
<h4>认证方式</h4>
|
|
<table class="ui table selectable celled" v-show="authConfig.policyRefs.length > 0">
|
|
<thead>
|
|
<tr>
|
|
<th class="three wide">名称</th>
|
|
<th class="three wide">认证方法</th>
|
|
<th>参数</th>
|
|
<th class="two wide">状态</th>
|
|
<th class="two op">操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody v-for="(ref, index) in authConfig.policyRefs" :key="ref.authPolicyId">
|
|
<tr>
|
|
<td>{{ref.authPolicy.name}}</td>
|
|
<td>
|
|
{{methodName(ref.authPolicy.type)}}
|
|
</td>
|
|
<td>
|
|
<span v-if="ref.authPolicy.type == 'basicAuth'">{{ref.authPolicy.params.users.length}}个用户</span>
|
|
<span v-if="ref.authPolicy.type == 'subRequest'">
|
|
<span v-if="ref.authPolicy.params.method.length > 0" class="grey">[{{ref.authPolicy.params.method}}]</span>
|
|
{{ref.authPolicy.params.url}}
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<label-on :v-is-on="ref.authPolicy.isOn"></label-on>
|
|
</td>
|
|
<td>
|
|
<a href="" @click.prevent="update(index, ref.authPolicyId)">修改</a>
|
|
<a href="" @click.prevent="remove(index)">删除</a>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<button class="ui button small" type="button" @click.prevent="add">+添加认证方式</button>
|
|
</div>
|
|
<div class="margin"></div>
|
|
</div>`
|
|
}) |