mirror of
https://github.com/immense/Remotely.git
synced 2025-10-26 11:27:15 +00:00
61 lines
1.8 KiB
C#
61 lines
1.8 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Components;
|
|
using Remotely.Server.Services;
|
|
using Remotely.Shared.Entities;
|
|
|
|
namespace Remotely.Server.Components.ModalContents;
|
|
|
|
[Authorize]
|
|
public partial class EditDeviceGroup : AuthComponentBase
|
|
{
|
|
public static string DeviceGroupsPropName => nameof(DeviceGroups);
|
|
public static string EditUserPropName => nameof(EditUser);
|
|
[Parameter]
|
|
public required DeviceGroup[] DeviceGroups { get; set; }
|
|
|
|
[Parameter]
|
|
public required RemotelyUser EditUser { get; set; }
|
|
|
|
[Inject]
|
|
private IDataService DataService { get; init; } = null!;
|
|
|
|
[Inject]
|
|
private IToastService ToastService { get; init; } = null!;
|
|
|
|
|
|
private bool DoesGroupContainUser(DeviceGroup group)
|
|
{
|
|
return group.Users.Any(x => x.Id == EditUser.Id);
|
|
}
|
|
|
|
private async Task GroupCheckChanged(ChangeEventArgs args, DeviceGroup group)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(EditUser.UserName) &&
|
|
args.Value is bool boolValue &&
|
|
boolValue)
|
|
{
|
|
if (!DataService.AddUserToDeviceGroup(EditUser.OrganizationID, group.ID, EditUser.UserName, out var result))
|
|
{
|
|
ToastService.ShowToast(result, classString: "bg-warning");
|
|
}
|
|
else
|
|
{
|
|
ToastService.ShowToast("User added to group.");
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
var result = await DataService.RemoveUserFromDeviceGroup(EditUser.OrganizationID, group.ID, EditUser.Id);
|
|
if (!result)
|
|
{
|
|
ToastService.ShowToast("Failed to remove from group.", classString: "bg-warning");
|
|
}
|
|
else
|
|
{
|
|
ToastService.ShowToast("Removed user from group.");
|
|
}
|
|
}
|
|
}
|
|
}
|