* Initial stab at how this could look * Authorization PoC wip * Add connection manager * Add DI to its own class * Use enum instead of string * Use groups * Refactor group management into its own service * Update a users groups when it's saved * Add saved events * Wire up deleted notifications * Ensure update date and create date is the same * Cleanup * Minor cleanup * Remove unusued usings * Move route to constant * Add docstrings to server event router * Fix and suppress warnings * Refactor to authorizer pattern * Update EventType * Remove unused enums * Add trashed events * Notify current user that they've been updated * Add broadcast We don't need it, but seems like a thing that a server event router should be able to do. * Add ServerEventRouterTests * Add ServerEventUserManagerTests * Use TimeProvider * Remove principal null check * Don't assign event type * Minor cleanup * Rename AuthorizedEventSources * Change permission for relations * Exctract event authorization into its own service * Add some tests * Update name * Add forgotten file * Rmember to add to DI
21 lines
730 B
C#
21 lines
730 B
C#
using System.Security.Claims;
|
|
using Umbraco.Cms.Core.ServerEvents;
|
|
|
|
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Cms.Api.Management.ServerEvents;
|
|
|
|
|
|
internal class FakeAuthorizer : IEventSourceAuthorizer
|
|
{
|
|
private readonly Func<ClaimsPrincipal, string, bool> authorizeFunc;
|
|
|
|
public FakeAuthorizer(IEnumerable<string> sources, Func<ClaimsPrincipal, string, bool>? authorizeFunc = null)
|
|
{
|
|
this.authorizeFunc = authorizeFunc ?? ((_, _) => true);
|
|
AuthorizableEventSources = sources;
|
|
}
|
|
|
|
public IEnumerable<string> AuthorizableEventSources { get; }
|
|
|
|
public Task<bool> AuthorizeAsync(ClaimsPrincipal principal, string connectionId) => Task.FromResult(authorizeFunc(principal, connectionId));
|
|
}
|