mirror of
https://github.com/bitwarden/server.git
synced 2025-05-12 15:12:16 -05:00
26 lines
884 B
C#
26 lines
884 B
C#
using Microsoft.AspNetCore.Mvc.Filters;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Bit.Core.Exceptions;
|
|
|
|
namespace Bit.Core.Utilities
|
|
{
|
|
public class SelfHostedAttribute : ActionFilterAttribute
|
|
{
|
|
public bool SelfHostedOnly { get; set; }
|
|
public bool NotSelfHostedOnly { get; set; }
|
|
|
|
public override void OnActionExecuting(ActionExecutingContext context)
|
|
{
|
|
var globalSettings = context.HttpContext.RequestServices.GetRequiredService<GlobalSettings>();
|
|
if(SelfHostedOnly && !globalSettings.SelfHosted)
|
|
{
|
|
throw new BadRequestException("Only allowed when self hosted.");
|
|
}
|
|
else if(NotSelfHostedOnly && globalSettings.SelfHosted)
|
|
{
|
|
throw new BadRequestException("Only allowed when not self hosted.");
|
|
}
|
|
}
|
|
}
|
|
}
|