Management UI for roles, users, tenants

This commit is contained in:
Shaun Walker
2019-09-30 23:50:10 -04:00
parent 7f6f9427e9
commit 4de8572a87
23 changed files with 902 additions and 124 deletions

View File

@ -2,9 +2,6 @@
@inherits ModuleBase
@inject NavigationManager NavigationManager
@inject ITenantService TenantService
@inject IAliasService AliasService
@inject ISiteService SiteService
@inject IPageService PageService
<table class="table table-borderless">
<tr>

View File

@ -0,0 +1,70 @@
@namespace Oqtane.Modules.Admin.Tenants
@inherits ModuleBase
@inject NavigationManager NavigationManager
@inject ITenantService TenantService
<table class="table table-borderless">
<tr>
<td>
<label for="Name" class="control-label">Name: </label>
</td>
<td>
<input class="form-control" @bind="@name" readonly />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Connection String: </label>
</td>
<td>
<input class="form-control" @bind="@connectionstring" readonly />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Schema: </label>
</td>
<td>
<input class="form-control" @bind="@schema" readonly />
</td>
</tr>
</table>
<button type="button" class="btn btn-success" @onclick="DeleteTenant">Delete</button>
<NavLink class="btn btn-secondary" href="@NavigateUrl()">Cancel</NavLink>
@code {
public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Host; } }
int tenantid;
string name = "";
string connectionstring = "";
string schema = "";
protected override async Task OnInitializedAsync()
{
try
{
tenantid = Int32.Parse(PageState.QueryString["id"]);
Tenant tenant = await TenantService.GetTenantAsync(tenantid);
if (tenant != null)
{
name = tenant.Name;
connectionstring = tenant.DBConnectionString;
schema = tenant.DBSchema;
}
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
}
}
private async Task DeleteTenant()
{
Tenant tenant = await TenantService.GetTenantAsync(tenantid);
if (tenant != null)
{
await TenantService.DeleteTenantAsync(tenantid);
}
NavigationManager.NavigateTo(NavigateUrl());
}
}

View File

@ -0,0 +1,73 @@
@namespace Oqtane.Modules.Admin.Tenants
@inherits ModuleBase
@inject NavigationManager NavigationManager
@inject ITenantService TenantService
<table class="table table-borderless">
<tr>
<td>
<label for="Name" class="control-label">Name: </label>
</td>
<td>
<input class="form-control" @bind="@name" />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Connection String: </label>
</td>
<td>
<input class="form-control" @bind="@connectionstring" />
</td>
</tr>
<tr>
<td>
<label for="Name" class="control-label">Schema: </label>
</td>
<td>
<input class="form-control" @bind="@schema" />
</td>
</tr>
</table>
<button type="button" class="btn btn-success" @onclick="SaveTenant">Save</button>
<NavLink class="btn btn-secondary" href="@NavigateUrl()">Cancel</NavLink>
@code {
public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Host; } }
int tenantid;
string name = "";
string connectionstring = "";
string schema = "";
protected override async Task OnInitializedAsync()
{
try
{
tenantid = Int32.Parse(PageState.QueryString["id"]);
Tenant tenant = await TenantService.GetTenantAsync(tenantid);
if (tenant != null)
{
name = tenant.Name;
connectionstring = tenant.DBConnectionString;
schema = tenant.DBSchema;
}
}
catch (Exception ex)
{
ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
}
}
private async Task SaveTenant()
{
Tenant tenant = await TenantService.GetTenantAsync(tenantid);
if (tenant != null)
{
tenant.Name = name;
tenant.DBConnectionString = connectionstring;
tenant.DBSchema = schema;
await TenantService.UpdateTenantAsync(tenant);
}
NavigationManager.NavigateTo(NavigateUrl());
}
}

View File

@ -2,37 +2,36 @@
@inherits ModuleBase
@inject ITenantService TenantService
@if (Tenants == null)
@if (tenants == null)
{
<p><em>Loading...</em></p>
}
else
{
<ActionLink Action="Add" Text="Add Tenant" />
<table class="table table-borderless">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
@foreach (var Tenant in Tenants)
{
<tr>
<td>@Tenant.Name</td>
</tr>
}
</tbody>
</table>
<ActionLink Action="Add" Text="Add Tenant" Style="float: right; margin: 10px;" />
<Pager Items="@tenants">
<Header>
<th>Name</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</Header>
<Row>
<td>@context.Name</td>
<td><ActionLink Action="Edit" Parameters="@($"id=" + context.TenantId.ToString())" /></td>
<td><ActionLink Action="Delete" Parameters="@($"id=" + context.TenantId.ToString())" Class="btn btn-danger" /></td>
</Row>
</Pager>
}
@code {
public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Host; } }
List<Tenant> Tenants;
List<Tenant> tenants;
protected override async Task OnInitializedAsync()
{
Tenants = await TenantService.GetTenantsAsync();
tenants = await TenantService.GetTenantsAsync();
}
}