|
|
@ -1,5 +1,6 @@
|
|
|
|
using System;
|
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
using System.Linq;
|
|
|
|
using System.Linq;
|
|
|
|
using System.Threading;
|
|
|
|
using System.Threading;
|
|
|
|
using Jellyfin.Api.Constants;
|
|
|
|
using Jellyfin.Api.Constants;
|
|
|
@ -86,26 +87,19 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// Sends a notification to all admins.
|
|
|
|
/// Sends a notification to all admins.
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="url">The URL of the notification.</param>
|
|
|
|
/// <param name="notificationDto">The notification request.</param>
|
|
|
|
/// <param name="level">The level of the notification.</param>
|
|
|
|
|
|
|
|
/// <param name="name">The name of the notification.</param>
|
|
|
|
|
|
|
|
/// <param name="description">The description of the notification.</param>
|
|
|
|
|
|
|
|
/// <response code="204">Notification sent.</response>
|
|
|
|
/// <response code="204">Notification sent.</response>
|
|
|
|
/// <returns>A <cref see="NoContentResult"/>.</returns>
|
|
|
|
/// <returns>A <cref see="NoContentResult"/>.</returns>
|
|
|
|
[HttpPost("Admin")]
|
|
|
|
[HttpPost("Admin")]
|
|
|
|
[ProducesResponseType(StatusCodes.Status204NoContent)]
|
|
|
|
[ProducesResponseType(StatusCodes.Status204NoContent)]
|
|
|
|
public ActionResult CreateAdminNotification(
|
|
|
|
public ActionResult CreateAdminNotification([FromBody, Required] AdminNotificationDto notificationDto)
|
|
|
|
[FromQuery] string? url,
|
|
|
|
|
|
|
|
[FromQuery] NotificationLevel? level,
|
|
|
|
|
|
|
|
[FromQuery] string name = "",
|
|
|
|
|
|
|
|
[FromQuery] string description = "")
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var notification = new NotificationRequest
|
|
|
|
var notification = new NotificationRequest
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Name = name,
|
|
|
|
Name = notificationDto.Name,
|
|
|
|
Description = description,
|
|
|
|
Description = notificationDto.Description,
|
|
|
|
Url = url,
|
|
|
|
Url = notificationDto.Url,
|
|
|
|
Level = level ?? NotificationLevel.Normal,
|
|
|
|
Level = notificationDto.NotificationLevel ?? NotificationLevel.Normal,
|
|
|
|
UserIds = _userManager.Users
|
|
|
|
UserIds = _userManager.Users
|
|
|
|
.Where(user => user.HasPermission(PermissionKind.IsAdministrator))
|
|
|
|
.Where(user => user.HasPermission(PermissionKind.IsAdministrator))
|
|
|
|
.Select(user => user.Id)
|
|
|
|
.Select(user => user.Id)
|
|
|
@ -114,7 +108,6 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
_notificationManager.SendNotification(notification, CancellationToken.None);
|
|
|
|
_notificationManager.SendNotification(notification, CancellationToken.None);
|
|
|
|
|
|
|
|
|
|
|
|
return NoContent();
|
|
|
|
return NoContent();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|