Set user groups
This commit is contained in:
@@ -19,6 +19,9 @@ namespace FoodsharingSiegen.Server.Data.Service
|
|||||||
return new OperationResult<User>(new Exception("Diese E-Mail Adresse wird bereits verwendet"));
|
return new OperationResult<User>(new Exception("Diese E-Mail Adresse wird bereits verwendet"));
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
@@ -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"));
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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 cTransform = tripleDes.CreateDecryptor();
|
||||||
var resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
|
var resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
|
||||||
|
|
||||||
tripleDes.Clear();
|
tripleDes.Clear();
|
||||||
|
|
||||||
return Encoding.UTF8.GetString(resultArray);
|
plainText = Encoding.UTF8.GetString(resultArray);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
Reference in New Issue
Block a user