< Summary

Information
Class: Elsa.Diagnostics.ConsoleLogs.Services.ElsaConsoleLogStreamHubAuthorizer
Assembly: Elsa.Diagnostics.ConsoleLogs
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Diagnostics.ConsoleLogs/Services/ElsaConsoleLogStreamHubAuthorizer.cs
Line coverage
100%
Covered lines: 4
Uncovered lines: 0
Coverable lines: 4
Total lines: 23
Line coverage: 100%
Branch coverage
50%
Covered branches: 3
Total branches: 6
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%11100%
CanReadAsync(...)50%66100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Diagnostics.ConsoleLogs/Services/ElsaConsoleLogStreamHubAuthorizer.cs

#LineLine coverage
 1using Elsa.Diagnostics.ConsoleLogs.Permissions;
 2using FastEndpoints.Security;
 3using Microsoft.AspNetCore.SignalR;
 4
 5namespace Elsa.Diagnostics.ConsoleLogs.Services;
 6
 7public interface IElsaConsoleLogHubAuthorizer
 8{
 9    ValueTask<bool> CanReadAsync(HubCallerContext context, CancellationToken cancellationToken = default);
 10}
 11
 12public sealed class ElsaConsoleLogStreamHubAuthorizer : IElsaConsoleLogHubAuthorizer
 13{
 14    private const string ReadAllPermission = "read:*";
 115    private static readonly string[] ReadPermissions = [PermissionNames.All, ReadAllPermission, ConsoleLogsPermissions.R
 16
 17    public ValueTask<bool> CanReadAsync(HubCallerContext context, CancellationToken cancellationToken = default)
 18    {
 819        cancellationToken.ThrowIfCancellationRequested();
 820        var user = context.User;
 821        return ValueTask.FromResult(user?.Identity?.IsAuthenticated == true && ReadPermissions.Any(user.HasPermission));
 22    }
 23}