@using Dpz.Core.Auth.Models
@model List<AuthApplicationModel>
@{
ViewBag.Title = "主动授权管理";
Layout = "_AdminLayout";
}
<script>
var availableApplications = @Json.Serialize(Model ?? []);
</script>
<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="accountFilter" class="form-control" type="text" placeholder="输入用户账号" autocomplete="off" />
</div>
</div>
<div class="col-12 col-md">
<div class="input-group">
<span class="input-group-text">应用</span>
<select id="appIdFilter" class="form-select" autocomplete="off">
<option value="">全部应用</option>
@foreach (var app in (Model ?? []).OrderBy(x => x.DisplayName, StringComparer.OrdinalIgnoreCase))
{
<option value="@app.ClientId">@app.DisplayName (@app.ClientId)</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="btnAdd" class="btn btn-success" type="button">新增授权</button>
</div>
</div>
</div>
<div class="table-wrapper">
<table class="table table-hover align-middle layui-table" id="grantTable" lay-filter="grantTable"
data-page-url="@Url.Action("Page", "Grant")"
data-grant-url="@Url.Action("Grant", "Grant")"
data-revoke-url="@Url.Action("Revoke", "Grant")">
</table>
</div>
<script type="text/html" id="grantTableActions">
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-xs layui-btn-danger" lay-event="revoke">撤销</button>
</div>
</script>
@section Scripts {
<script src="~/js/grant-manage.js" asp-append-version="true"></script>
}