mirror of https://github.com/abpframework/abp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
5.5 KiB
128 lines
5.5 KiB
@page
|
|
@using Volo.Abp.Account.Web.Pages
|
|
@model ConsentModel
|
|
<abp-card id="IdentityServerConsentWrapper">
|
|
<abp-card-header>
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h2>
|
|
@if (Model.Consent.ClientLogoUrl != null)
|
|
{
|
|
<img src="@Model.Consent.ClientLogoUrl">
|
|
}
|
|
|
|
@Model.Consent.ClientName
|
|
<small>is requesting your permission</small>
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
</abp-card-header>
|
|
<abp-card-body>
|
|
<form method="post" asp-page="/Consent">
|
|
<input type="hidden" asp-for="ReturnUrl" />
|
|
<input type="hidden" asp-for="ReturnUrlHash" />
|
|
|
|
<div>Uncheck the permissions you do not wish to grant.</div>
|
|
|
|
@if (!Model.Consent.IdentityScopes.IsNullOrEmpty())
|
|
{
|
|
<h3>Personal Information</h3>
|
|
|
|
<ul class="list-group">
|
|
|
|
@for (var i = 0; i < Model.Consent.IdentityScopes.Count; i++)
|
|
{
|
|
<li class="list-group-item">
|
|
<div class="form-check">
|
|
<label asp-for="@Model.Consent.IdentityScopes[i].Checked" class="form-check-label">
|
|
<input asp-for="@Model.Consent.IdentityScopes[i].Checked" class="form-check-input" />
|
|
@Model.Consent.IdentityScopes[i].DisplayName
|
|
@if (Model.Consent.IdentityScopes[i].Required)
|
|
{
|
|
<span><em>(required)</em></span>
|
|
}
|
|
</label>
|
|
</div>
|
|
<input asp-for="@Model.Consent.IdentityScopes[i].Value" type="hidden" /> @* TODO: Use attributes on the view model instead of using hidden here *@
|
|
@if (Model.Consent.IdentityScopes[i].Description != null)
|
|
{
|
|
<div class="consent-description">
|
|
@Model.Consent.IdentityScopes[i].Description
|
|
</div>
|
|
}
|
|
</li>
|
|
}
|
|
|
|
</ul>
|
|
}
|
|
|
|
@if (!Model.Consent.ApiScopes.IsNullOrEmpty())
|
|
{
|
|
<h3>Application Access</h3>
|
|
|
|
<ul class="list-group">
|
|
|
|
@for (var i = 0; i < Model.Consent.ApiScopes.Count; i++)
|
|
{
|
|
<li class="list-group-item">
|
|
<div class="form-check">
|
|
<label asp-for="@Model.Consent.ApiScopes[i].Checked" class="form-check-label">
|
|
<input asp-for="@Model.Consent.ApiScopes[i].Checked" class="form-check-input" disabled="@Model.Consent.ApiScopes[i].Required" />
|
|
@Model.Consent.ApiScopes[i].DisplayName
|
|
@if (Model.Consent.ApiScopes[i].Required)
|
|
{
|
|
<span><em>(required)</em></span>
|
|
}
|
|
</label>
|
|
</div>
|
|
<input asp-for="@Model.Consent.ApiScopes[i].Value" type="hidden" /> @* TODO: Use attributes on the view model instead of using hidden here *@
|
|
@if (Model.Consent.ApiScopes[i].Description != null)
|
|
{
|
|
<div class="consent-description">
|
|
@Model.Consent.ApiScopes[i].Description
|
|
</div>
|
|
}
|
|
</li>
|
|
}
|
|
</ul>
|
|
}
|
|
|
|
<div class="form-group">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<span class="glyphicon glyphicon-tasks"></span>
|
|
Description
|
|
</div>
|
|
<div class="card-body">
|
|
<input class="form-control" placeholder="Description or name of device" asp-for="@Model.Consent.Description" autofocus>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@if (Model.Consent.AllowRememberConsent)
|
|
{
|
|
<div class="form-check">
|
|
<label asp-for="@Model.Consent.RememberConsent" class="form-check-label">
|
|
<input asp-for="@Model.Consent.RememberConsent" class="form-check-input" />
|
|
<strong>Remember My Decision</strong>
|
|
</label>
|
|
</div>
|
|
}
|
|
|
|
<div>
|
|
<button name="Consent.Button" value="yes" class="btn btn-primary" autofocus>Yes, Allow</button>
|
|
<button name="Consent.Button" value="no" class="btn">No, Do Not Allow</button>
|
|
@if (Model.Consent.ClientUrl != null)
|
|
{
|
|
<a class="pull-right btn btn-secondary" target="_blank" href="@Model.Consent.ClientUrl">
|
|
<strong>@Model.Consent.ClientName</strong>
|
|
</a>
|
|
}
|
|
</div>
|
|
|
|
<div asp-validation-summary="All" class="text-danger"></div>
|
|
|
|
</form>
|
|
</abp-card-body>
|
|
</abp-card>
|