btcpayserver/BTCPayServer/Views/UIServer/CreateUser.cshtml
d11n 6290b0f3bf
Admins can approve registered users (#5647)
* Users list: Cleanups

* Policies: Flip registration settings

* Policies: Add RequireUserApproval setting

* Add approval to user

* Require approval on login and for API key

* API handling

* AccountController cleanups

* Test fix

* Apply suggestions from code review

Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>

* Add missing imports

* Communicate login requirements to user on account creation

* Add login requirements to basic auth handler

* Cleanups and test fix

* Encapsulate approval logic in user service and log approval changes

* Send follow up "Account approved" email

Closes #5656.

* Add notification for admins

* Fix creating a user via the admin view

* Update list: Unify flags into status column, add approve action

* Adjust "Resend email" wording

* Incorporate feedback from code review

* Remove duplicate test server policy reset

---------

Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
2024-01-31 14:45:54 +09:00

60 lines
2.6 KiB
Text

@model BTCPayServer.Controllers.RegisterFromAdminViewModel
@{
ViewData.SetActivePage(ServerNavPages.Users, "Create account");
}
<h3 class="mb-4">@ViewData["Title"]</h3>
<div class="row">
<div class="col-xl-6 col-xxl-constrain">
<form method="post" asp-action="CreateUser">
<div asp-validation-summary="ModelOnly"></div>
<div class="form-group">
<label asp-for="Email" class="form-label"></label>
<input asp-for="Email" required="required" class="form-control"/>
<span asp-validation-for="Email" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Password" class="form-label"></label>
<input asp-for="Password" class="form-control"/>
<span asp-validation-for="Password" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="ConfirmPassword" class="form-label"></label>
<input asp-for="ConfirmPassword" class="form-control"/>
<span asp-validation-for="ConfirmPassword" class="text-danger"></span>
</div>
@if (ViewData["AllowIsAdmin"] is true)
{
<div class="form-group form-check">
<input asp-for="IsAdmin" type="checkbox" class="form-check-input"/>
<label asp-for="IsAdmin" class="form-check-label"></label>
<span asp-validation-for="IsAdmin" class="text-danger"></span>
</div>
}
@if (ViewData["AllowRequestEmailConfirmation"] is true)
{
<div class="form-group form-check">
<input asp-for="EmailConfirmed" type="checkbox" class="form-check-input"/>
<label asp-for="EmailConfirmed" class="form-check-label"></label>
<span asp-validation-for="EmailConfirmed" class="text-danger"></span>
</div>
}
@if (ViewData["AllowRequestApproval"] is true)
{
<div class="form-group form-check">
<input asp-for="Approved" type="checkbox" class="form-check-input"/>
<label asp-for="Approved" class="form-check-label"></label>
<span asp-validation-for="Approved" class="text-danger"></span>
</div>
}
<button id="Save" type="submit" class="btn btn-primary mt-2" name="command" value="Save">Create account</button>
</form>
</div>
</div>