< Summary

Information
Class: Elsa.Identity.ShellFeatures.DefaultAdminUserFeature
Assembly: Elsa.Identity
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Identity/ShellFeatures/DefaultAdminUserFeature.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 13
Coverable lines: 13
Total lines: 51
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_AdminUserName()100%210%
get_AdminPassword()100%210%
get_AdminRoleName()100%210%
get_AdminRolePermissions()100%210%
ConfigureServices(...)100%210%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Identity/ShellFeatures/DefaultAdminUserFeature.cs

#LineLine coverage
 1using CShells.Features;
 2using Elsa.Extensions;
 3using Elsa.Identity.HostedServices;
 4using Elsa.Identity.Options;
 5using JetBrains.Annotations;
 6using Microsoft.Extensions.DependencyInjection;
 7
 8namespace Elsa.Identity.ShellFeatures;
 9
 10/// <summary>
 11/// Feature that initializes an admin user from configuration if provided.
 12/// </summary>
 13[ShellFeature(
 14    DisplayName = "Default Admin User Initialization",
 15    Description = "Initializes a default admin user from configuration if provided",
 16    DependsOn = ["Identity"])]
 17[UsedImplicitly]
 18public class DefaultAdminUserFeature : IShellFeature
 19{
 20    /// <summary>
 21    /// Gets or sets the admin user name. Must be explicitly configured to enable user bootstrap.
 22    /// </summary>
 023    public string AdminUserName { get; set; } = "";
 24
 25    /// <summary>
 26    /// Gets or sets the admin user password. Must be explicitly configured to enable user bootstrap.
 27    /// </summary>
 028    public string AdminPassword { get; set; } = "";
 29
 30    /// <summary>
 31    /// Gets or sets the admin role name.
 32    /// </summary>
 033    public string AdminRoleName { get; set; } = "admin";
 34
 35    /// <summary>
 36    /// Gets or sets the admin role permissions.
 37    /// </summary>
 038    public ICollection<string> AdminRolePermissions { get; set; } = ["*"];
 39
 40    public void ConfigureServices(IServiceCollection services)
 41    {
 042        services.Configure<DefaultAdminUserOptions>(options =>
 043        {
 044            options.AdminUserName = AdminUserName;
 045            options.AdminPassword = AdminPassword;
 046            options.AdminRoleName = AdminRoleName;
 047            options.AdminRolePermissions = AdminRolePermissions;
 048        });
 049        services.AddBackgroundTask<AdminUserInitializer>();
 050    }
 51}