mirror of
https://github.com/bitwarden/server.git
synced 2026-01-31 14:13:18 +08:00
* PS-293: Get latest version no comes from GitHub instead of DockerHub. * PS-293: format fixes * PS-293: code refactor and clean up * PS-293: deserialization to class, argument typification. * PS-293: formating fix * PS-293: Moved ProjectType to HomeController * PS-293: updated version endpoint to CDN * PS-293: Update endpoint to CF protected
187 lines
6.7 KiB
Plaintext
187 lines
6.7 KiB
Plaintext
@using Bit.Admin.Controllers
|
|
@model HomeModel
|
|
@{
|
|
ViewData["Title"] = "Dashboard";
|
|
}
|
|
|
|
@section Scripts {
|
|
<script>
|
|
(() => {
|
|
let loadedWebLatest = false;
|
|
let loadedWebInstalled = false;
|
|
|
|
fetch('@Url.Action("GetLatestVersion", new { project = @ProjectType.Web })').then((response) => {
|
|
return response.json();
|
|
}).then((version) => {
|
|
document.getElementById('web-latest').innerText = version;
|
|
loadedWebLatest = true;
|
|
if (loadedWebInstalled) {
|
|
checkVersions('web', document.getElementById('web-installed').innerText, version);
|
|
}
|
|
});
|
|
|
|
fetch('@Url.Action("GetLatestVersion", new { project = @ProjectType.Core })').then((response) => {
|
|
return response.json();
|
|
}).then((version) => {
|
|
document.getElementById('server-latest').innerText = version;
|
|
checkVersions('core', '@Model.CurrentVersion', version);
|
|
});
|
|
|
|
fetch('@Url.Action("GetInstalledWebVersion")').then((response) => {
|
|
return response.json();
|
|
}).then((version) => {
|
|
document.getElementById('web-installed').innerText = version;
|
|
loadedWebInstalled = true;
|
|
if (loadedWebLatest) {
|
|
checkVersions('web', version, document.getElementById('web-latest').innerText);
|
|
}
|
|
});
|
|
|
|
function checkVersions(platform, installed, latest) {
|
|
if (installed === '-' || latest === '-') {
|
|
return;
|
|
}
|
|
|
|
if (installed !== latest) {
|
|
document.getElementById(platform + '-warning').classList.remove('d-none');
|
|
} else {
|
|
document.getElementById(platform + '-success').classList.remove('d-none');
|
|
}
|
|
}
|
|
})();
|
|
</script>
|
|
}
|
|
|
|
<h1>Dashboard</h1>
|
|
|
|
<p>Welcome to the Bitwarden System Administration Portal.</p>
|
|
|
|
<h2>Version</h2>
|
|
|
|
<div class="row">
|
|
<div class="col-md">
|
|
<dl class="row">
|
|
<dt class="col-sm-5">Server Installed</dt>
|
|
<dd class="col-sm-7">
|
|
<span id="server-installed">@Model.CurrentVersion</span>
|
|
<i class="fa fa-check text-success d-none" id="core-success" title="You are up to date!"></i>
|
|
<i class="fa fa-warning text-warning d-none" id="core-warning"
|
|
title="This version is not the latest. You should update."></i>
|
|
</dd>
|
|
|
|
<dt class="col-sm-5">Server Latest</dt>
|
|
<dd class="col-sm-7">
|
|
<span id="server-latest" title="Checking version..."><i class="fa fa-spinner fa-spin"></i></span>
|
|
</dd>
|
|
|
|
<dt class="col-sm-5">Web Installed</dt>
|
|
<dd class="col-sm-7">
|
|
<span id="web-installed"><i class="fa fa-spinner fa-spin" title="Checking version..."></i></span>
|
|
<i class="fa fa-check text-success d-none" id="web-success" title="You are up to date!"></i>
|
|
<i class="fa fa-warning text-warning d-none" id="web-warning"
|
|
title="This version is not the latest. You should update."></i>
|
|
</dd>
|
|
|
|
<dt class="col-sm-5">Web Latest</dt>
|
|
<dd class="col-sm-7">
|
|
<span id="web-latest"><i class="fa fa-spinner fa-spin" title="Checking version..."></i></span>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="col-md">
|
|
<ul class="list-unstyled">
|
|
<li><a href="https://github.com/bitwarden/server/releases" target="_blank">Check for Server updates</a></li>
|
|
<li><a href="https://github.com/bitwarden/web/releases" target="_blank">Check for Web updates</a></li>
|
|
<li><a href="https://help.bitwarden.com/article/updating-on-premise/" target="_blank">How do I update?</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<h2>Settings</h2>
|
|
|
|
<h3>SMTP</h3>
|
|
@if(!Bit.Core.Utilities.CoreHelpers.SettingHasValue(Model.GlobalSettings.Mail?.Smtp?.Host))
|
|
{
|
|
<p class="text-muted">Not configured</p>
|
|
}
|
|
else
|
|
{
|
|
<dl class="row">
|
|
<dt class="col-sm-4 col-lg-3">Host</dt>
|
|
<dd class="col-sm-8 col-lg-9">
|
|
@(string.IsNullOrWhiteSpace(Model.GlobalSettings.Mail.Smtp.Host) ? "-" : Model.GlobalSettings.Mail.Smtp.Host)
|
|
</dd>
|
|
|
|
<dt class="col-sm-4 col-lg-3">Port</dt>
|
|
<dd class="col-sm-8 col-lg-9">@Model.GlobalSettings.Mail.Smtp.Port</dd>
|
|
|
|
<dt class="col-sm-4 col-lg-3">SSL</dt>
|
|
<dd class="col-sm-8 col-lg-9">@(Model.GlobalSettings.Mail.Smtp.Ssl ? "Yes" : "No")</dd>
|
|
|
|
<dt class="col-sm-4 col-lg-3">StartTLS</dt>
|
|
<dd class="col-sm-8 col-lg-9">
|
|
@(Model.GlobalSettings.Mail.Smtp.StartTls ? "Yes" : Model.GlobalSettings.Mail.Smtp.Port == 25 ? "No" : "Discover")
|
|
</dd>
|
|
|
|
<dt class="col-sm-4 col-lg-3">Username</dt>
|
|
<dd class="col-sm-8 col-lg-9">
|
|
@(string.IsNullOrWhiteSpace(Model.GlobalSettings.Mail.Smtp.Username) ? "-" : Model.GlobalSettings.Mail.Smtp.Username)
|
|
</dd>
|
|
</dl>
|
|
}
|
|
|
|
<h3>Other</h3>
|
|
|
|
<dl class="row">
|
|
<dt class="col-sm-4 col-lg-3">Installation Id</dt>
|
|
<dd class="col-sm-8 col-lg-9">
|
|
@if(Model.GlobalSettings.Installation?.Id != null)
|
|
{
|
|
<code>@Model.GlobalSettings.Installation.Id</code>
|
|
}
|
|
else
|
|
{
|
|
<text>-</text>
|
|
}
|
|
</dd>
|
|
|
|
<dt class="col-sm-4 col-lg-3">User Registration</dt>
|
|
<dd class="col-sm-8 col-lg-9">@(Model.GlobalSettings.DisableUserRegistration ? "Disabled" : "Enabled")</dd>
|
|
|
|
<dt class="col-sm-4 col-lg-3">Push Notifications</dt>
|
|
<dd class="col-sm-8 col-lg-9">
|
|
@if(Bit.Core.Utilities.CoreHelpers.SettingHasValue(Model.GlobalSettings.PushRelayBaseUri))
|
|
{
|
|
<span><i class="fa fa-check"></i> Configured</span>
|
|
}
|
|
else
|
|
{
|
|
<span class="text-muted">Not configured</span>
|
|
}
|
|
</dd>
|
|
|
|
<dt class="col-sm-4 col-lg-3">Yubico 2FA</dt>
|
|
<dd class="col-sm-8 col-lg-9">
|
|
@if(Bit.Core.Utilities.CoreHelpers.SettingHasValue(Model.GlobalSettings.Yubico?.Key) && Bit.Core.Utilities.CoreHelpers.SettingHasValue(Model.GlobalSettings.Yubico?.ClientId))
|
|
{
|
|
<span><i class="fa fa-check"></i> Configured</span>
|
|
}
|
|
else
|
|
{
|
|
<span class="text-muted">Not configured</span>
|
|
}
|
|
</dd>
|
|
|
|
<dt class="col-sm-4 col-lg-3">Duo 2FA</dt>
|
|
<dd class="col-sm-8 col-lg-9">
|
|
@if(Bit.Core.Utilities.CoreHelpers.SettingHasValue(Model.GlobalSettings.Duo?.AKey))
|
|
{
|
|
<span><i class="fa fa-check"></i> Configured</span>
|
|
}
|
|
else
|
|
{
|
|
<span class="text-muted">Not configured</span>
|
|
}
|
|
</dd>
|
|
</dl>
|