Set user groups

This commit is contained in:
Andre Beging
2022-04-08 16:12:51 +02:00
parent 38eec13a1b
commit c553047369
3 changed files with 62 additions and 11 deletions

View File

@@ -20,6 +20,9 @@ namespace FoodsharingSiegen.Server.Data.Service
user.Created = DateTime.UtcNow; user.Created = DateTime.UtcNow;
if (string.IsNullOrWhiteSpace(user.Password))
user.Password = string.Empty;
await Context.Users.AddAsync(user); await Context.Users.AddAsync(user);
var saveResult = await Context.SaveChangesAsync(); var saveResult = await Context.SaveChangesAsync();
@@ -38,7 +41,15 @@ namespace FoodsharingSiegen.Server.Data.Service
{ {
try try
{ {
Context.Users.Update(user); var entityUser = await Context.Users.FirstOrDefaultAsync(x => x.Id == user.Id);
if (entityUser == null) return new OperationResult(new Exception("User not found"));
entityUser.Mail = user.Mail;
entityUser.Name = user.Name;
entityUser.Type = user.Type;
entityUser.Verified = user.Verified;
entityUser.Groups = user.Groups;
var saveR = await Context.SaveChangesAsync(); var saveR = await Context.SaveChangesAsync();
if(saveR < 1) return new OperationResult(new Exception("Fehler beim speichern")); if(saveR < 1) return new OperationResult(new Exception("Fehler beim speichern"));

View File

@@ -23,6 +23,10 @@
<h2>Benutzerverwaltung <span style="font-size: .5em; line-height: 0;">Admin</span></h2> <h2>Benutzerverwaltung <span style="font-size: .5em; line-height: 0;">Admin</span></h2>
<div class="my-2">
<Button Color="Color.Primary" Disabled="@(SelectedUser == null)">Passwort setzen</Button>
</div>
<DataGrid TItem="User" <DataGrid TItem="User"
@ref="UserDataGrid" @ref="UserDataGrid"
Data="@UserList" Data="@UserList"
@@ -31,11 +35,12 @@
PopupTitleTemplate="PopupTitleTemplate" PopupTitleTemplate="PopupTitleTemplate"
RowInserted="RowInserted" RowInserted="RowInserted"
RowUpdated="RowUpdated" RowUpdated="RowUpdated"
SelectedRow="SelectedUser"
RowDoubleClicked="arg => UserDataGrid.Edit(arg.Item)" RowDoubleClicked="arg => UserDataGrid.Edit(arg.Item)"
Editable Editable
Responsive> Responsive>
<DataGridColumns> <DataGridColumns>
<DataGridCommandColumn TItem="User" Width="100px" CellStyle="@(_ => "display: flex; padding-left: 0; padding-right: 0; justify-content: center; align-items: center;")"> <DataGridCommandColumn TItem="User" Width="100px" CellClass="@(_ => "px-0 d-flex align-items-center justify-content-center")">
<NewCommandTemplate> <NewCommandTemplate>
<Button Size="Size.ExtraSmall" Color="Color.Success" Clicked="@context.Clicked" Class="mr-1" Style="min-width: auto;"> <Button Size="Size.ExtraSmall" Color="Color.Success" Clicked="@context.Clicked" Class="mr-1" Style="min-width: auto;">
<i class="oi oi-plus"></i> <i class="oi oi-plus"></i>
@@ -74,6 +79,31 @@
</DataGridColumn> </DataGridColumn>
<DataGridColumn TItem="User" Field="@nameof(User.Name)" Caption="Name" Editable="true" Width="250px"></DataGridColumn> <DataGridColumn TItem="User" Field="@nameof(User.Name)" Caption="Name" Editable="true" Width="250px"></DataGridColumn>
<DataGridColumn TItem="User" Field="@nameof(User.Mail)" Caption="E-Mail" Editable="true"></DataGridColumn> <DataGridColumn TItem="User" Field="@nameof(User.Mail)" Caption="E-Mail" Editable="true"></DataGridColumn>
<DataGridColumn TItem="User" Field="@nameof(User.GroupsList)" Caption="Gruppen" Editable="true">
<EditTemplate>
<Autocomplete TItem="UserGroup"
TValue="UserGroup"
Size="Size.ExtraSmall"
Data="@UserGroups"
TextField="@(( item ) => item.ToString())"
ValueField="@(( item ) => item)"
Multiple="true"
SelectedValues="@((List<UserGroup>) context.CellValue)"
SelectedValuesChanged="@(v => context.CellValue = v)"
@bind-SelectedTexts="SelectedCompanyTexts">
</Autocomplete>
<small>Verfügbar: @string.Join(", ", Enum.GetValues<UserGroup>())</small>
</EditTemplate>
<DisplayTemplate>
@if (string.IsNullOrWhiteSpace(context.Groups))
{
<span style="font-style: italic;">Keine Gruppen</span>
}
else
{
<span>@string.Join(", ", context.GroupsList)</span>
}
</DisplayTemplate>
</DataGridColumn>
</DataGridColumns> </DataGridColumns>
</DataGrid> </DataGrid>

View File

@@ -46,21 +46,31 @@ namespace FoodsharingSiegen.Shared.Helper
/// Decrypts the crypted text (a. beging, 04.04.2022) /// Decrypts the crypted text (a. beging, 04.04.2022)
/// </summary> /// </summary>
/// <param name="cryptedText">The crypted text</param> /// <param name="cryptedText">The crypted text</param>
/// <param name="plainText"></param>
/// <returns>The string</returns> /// <returns>The string</returns>
public static string Decrypt(string cryptedText) public static bool TryDecrypt(string cryptedText, out string plainText)
{ {
CreateAlgorithm(out var tripleDes); plainText = string.Empty;
var toEncryptArray = Convert.FromBase64String(cryptedText); try
{
CreateAlgorithm(out var tripleDes);
var toEncryptArray = Convert.FromBase64String(cryptedText);
var cTransform = tripleDes.CreateDecryptor();
var resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
var cTransform = tripleDes.CreateDecryptor(); tripleDes.Clear();
var resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
tripleDes.Clear(); plainText = Encoding.UTF8.GetString(resultArray);
return Encoding.UTF8.GetString(resultArray); return true;
}
catch (Exception e)
{
return false;
}
} }
#endregion #endregion