ProjectLighthouse/ProjectLighthouse.Servers.Website/Pages/Admin/AdminAPIKeyPage.cshtml
Zaprit ce0fe9edee
Added user invite system (#351)
* Added user invite system

* Added user invite system

* Revert recent migrations and try again

* stopped implicitly assigning token variables

* Added correct context to migrations

* Apply suggestions from code review

Some grammar changes, etc.

Co-authored-by: Jayden <jvyden@jvyden.xyz>

* Updated the API key page

* Removed enabled field from APIKey

* Removed reference to APIKey.Enabled

* Add creation guide text

* Fix this.Forbid() usage

Causes an exception on my machine for some reason, always has.

* Fix more forbid usages

* Return 404 if trying to generate token when private registration is disabled

* Capture authentication schema more cleanly

Co-authored-by: Jayden <jvyden@jvyden.xyz>
2022-07-24 02:43:00 +00:00

56 lines
1.9 KiB
Text

@page "/admin/keys"
@using LBPUnion.ProjectLighthouse.PlayerData
@model LBPUnion.ProjectLighthouse.Servers.Website.Pages.Admin.AdminAPIKeyPageModel
@{
Layout = "Layouts/BaseLayout";
Model.Title = "API Keys";
}
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Antiforgery
@{
var token = Antiforgery.GetAndStoreTokens(HttpContext).RequestToken;
}
<script>function deleteKey(keyID) {
document.getElementById("trashbutton-".concat(keyID)).classList.add('loading');
fetch("@Url.RouteUrl(ViewContext.RouteData.Values)", {
method: 'post',
headers: {
"Content-type": "application/x-www-form-urlencoded; charset=UTF-8"
},
credentials: 'same-origin',
body: 'keyID='.concat(keyID).concat("&__RequestVerificationToken=@token")
})
.then(function (data) {
document.getElementById("keyitem-".concat(keyID)).remove();
window.location.reload(true);
})
.catch(function (error) {
console.log('Request failed', error);
});
}</script>
<p>There are <b>@Model.KeyCount</b> API keys registered.</p>
@if (Model.KeyCount == 0)
{
<p>To create one, you can use the "Create API key" command in the admin panel.</p>
}
<div class="ui four column grid">
@foreach (APIKey key in Model.APIKeys)
{
<div id="keyitem-@key.Id" class="five wide column">
<div class="ui blue segment">
<div class="ui tiny bottom left attached label">
Created at: @key.Created.ToString()
</div>
<button id="trashbutton-@key.Id" class="right floated circular ui icon button" onclick="deleteKey(@key.Id);">
<i class="trash can icon"></i>
</button>
<h2>@key.Description</h2>
</div>
</div>
}
</div>