@using Dpz.Core.Auth.Models
@model List<AuthApplicationModel>
@{
ViewBag.Title = "授权管理";
Layout = "_AdminLayout";
}
<div class="page-header mb-3">
<h1 class="mb-1">已授权的应用</h1>
<p class="text-body-secondary">查看你授予第三方应用的权限,必要时可以撤销</p>
<div class="row g-2 mt-2">
<div class="col-12 col-md">
<div class="input-group">
<span class="input-group-text">搜索</span>
<input id="keyword" class="form-control" type="search" placeholder="按范围、状态或类型搜索" autocomplete="off" />
</div>
</div>
<div class="col-12 col-md">
<div class="input-group">
<span class="input-group-text">应用</span>
<select id="applicationFilter" class="form-select" autocomplete="off">
<option value="">全部应用</option>
@foreach (var app in (Model ?? []).OrderBy(x => x.DisplayName, StringComparer.OrdinalIgnoreCase))
{
<option value="@app.Id">@app.DisplayName</option>
}
</select>
</div>
</div>
<div class="col-6 col-md-auto">
<div class="input-group">
<span class="input-group-text">状态</span>
<select id="statusFilter" class="form-select" autocomplete="off">
<option value="">全部</option>
<option value="valid">有效</option>
<option value="revoked">已撤销</option>
<option value="inactive">禁用</option>
</select>
</div>
</div>
<div class="col-6 col-md-auto">
<div class="input-group">
<span class="input-group-text">类型</span>
<select id="typeFilter" class="form-select" autocomplete="off">
<option value="">全部</option>
<option value="permanent">永久授权</option>
<option value="ad-hoc">临时授权</option>
</select>
</div>
</div>
<div class="col-12 col-md-auto d-flex gap-2 justify-content-md-end">
<button id="btnSearch" class="btn btn-primary" type="button">搜索</button>
<button id="btnClear" class="btn btn-secondary" type="button">清空</button>
</div>
</div>
<div class="text-body-secondary small mt-2">撤销授权将同时撤销相同 Subject、ApplicationId、Status、Type 的所有授权记录</div>
<div class="text-body-secondary small">撤销后,你可能需要在对应应用重新登录并授权</div>
</div>
<div class="table-wrapper">
<table class="table table-hover align-middle layui-table" id="authorizationTable" lay-filter="authorizationTable"></table>
</div>
<script type="text/html" id="authorizationTableActions">
<div class="layui-btn-group">
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="revoke">撤销授权</a>
</div>
</script>
@section Scripts {
<script src="~/js/authorization-manage.js" asp-append-version="true"></script>
}