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.

133 lines
5.0 KiB

@page "/Admin/User/UserList"
@inherits UserListBase
@inject Blazored.SessionStorage.ISessionStorageService sessionStorage
@using Syncfusion.Blazor.Grids;
@using Syncfusion.Blazor.Spinner;
@using BlazorApp.Helper
@using BWPMModels;
@using BlazorApp.Controller;
<h1>Benutzer</h1>
<AuthorizeView Roles="Administrators">
<Authorized>
@*@if (@context.User.IsInRole("Administrators"))
{
<div>Gugus</div>
}*@
This content is displayed only if the user is Authorized
</Authorized>
<NotAuthorized>
This content is displayed if the user is Not Authorized
</NotAuthorized>
</AuthorizeView>
<AuthorizeView>
<Authorized>
<div class="col-lg-12 control-section">
<div class="content-wrapper">
<div class="row">
<div id="container">
<SfGrid DataSource="@users" Toolbar="@(new List<string>() { "Add","Edit", "Delete", "Update", "Cancel" })" Height="315" AllowSelection="true" AllowSorting="true" AllowFiltering="true" EnableVirtualization="true">
<GridFilterSettings Type="Syncfusion.Blazor.Grids.FilterType.Menu"></GridFilterSettings>
<GridEditSettings AllowAdding="true" AllowDeleting="true" AllowEditing="true" Mode="EditMode.Dialog"></GridEditSettings>
<GridEvents OnActionBegin="OnBeginHandler" TValue="User"></GridEvents>
<GridSelectionSettings CheckboxOnly="true" PersistSelection="true" Type="SelectionType.Multiple"></GridSelectionSettings>
<GridColumns>
<GridColumn Type="ColumnType.CheckBox" AllowFiltering="false" AllowSorting="false" Width="60"></GridColumn>
<GridColumn Field=@nameof(User.ID) HeaderText="ID" IsPrimaryKey="true" Visible="true" Width="40"></GridColumn>
<GridForeignColumn Field=@nameof(User.usertype) HeaderText="Typ" ForeignKeyValue="Typ" ForeignDataSource="@usertypes" Width="150"></GridForeignColumn>
<GridColumn Field=@nameof(User.username) HeaderText="Username" Visible="true" Width="60"></GridColumn>
<GridColumn Field=@nameof(User.passwort) HeaderText="Passwort" Visible="true" Width="60"></GridColumn>
<GridColumn Field=@nameof(User.email) HeaderText="Mail" Visible="true" Width="60"></GridColumn>
<GridColumn Field=@nameof(User.mutiert_am) HeaderText="Mutiert" Visible="true" Format="d" Type="ColumnType.Date" Width="100"></GridColumn>
<GridColumn Field=@nameof(User.aktiv) HeaderText="Aktiv" Visible="true" Width="60" DisplayAsCheckBox="true"></GridColumn>
</GridColumns>
</SfGrid>
</div>
</div>
</div>
</div>
</Authorized>
</AuthorizeView>
@code {
public List<User> users { get; set; }
public List<usertypedata> usertypes { get; set; }
protected override void OnInitialized()
{
users = BlazorApp.Controller.UserController.GetAllData();
usertypes = new List<usertypedata>();
usertypes.Add(new usertypedata { usertype = 0, Typ = "Admin" });
usertypes.Add(new usertypedata { usertype = 1, Typ = "User" });
}
private void OnBeginHandler(ActionEventArgs<User> Args)
{
if (Args.RequestType == Syncfusion.Blazor.Grids.Action.Save)
{
if (Args.Action == "add")
{
var t = Args.Data; //returns the edited / insrted record details.
//insert into your db
}
else
{
string userid = "";
userid = sessionStorage.GetItemAsync<string>("UserID").ToString();
Args.Data.mutiert_am = DateTime.Now;
BlazorApp.Controller.UserController.savedata(Args.Data);
//var t = Args.Data;
if (userid==null) { sessionStorage.SetItemAsync("UserID", "Stefan"); };
}
}
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
string userid = "";
userid = await sessionStorage.GetItemAsync<string>("UserID");
if (userid == null)
{
var authState = await authenticationStateTask;
var userId = authState.User.Claims.FirstOrDefault().Value;
var user = authState.User;
if (user.Identity.IsAuthenticated)
{
await sessionStorage.SetItemAsync("UserID", userId);
}
else
{
await sessionStorage.SetItemAsync("UserID", "");
}
}
}
public class usertypedata
{
public int usertype { get; set; }
public string Typ { get; set; }
}
}