Starts in:
1 DAY
7 HRS
10 MIN
18 SEC
Starts in:
1 D
7 H
10 M
18 S

Activities of "abhisheksreesaila"

  • ABP Framework version: v8.3.2
  • UI Type: Blazor WASM & Blazor Server (new blazor web app)
  • Database System: EF Core (PostgreSQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): Yes
  • Exception message and full stack trace:
  • Steps to reproduce the issue:
  • created a new blazor web app solution
  • Want to customize the REGISTER and LOGIN page
    • earlier, I was able to copy over CSHTML files to PAGES / Account folder and override the LoginModel.cs and RegisterModel.cs

Question : **How to do the same customization? in the BLAZOR new web app. **

  • ABP Framework version: v8.2
  • UI Type: Blazor Server
  • Database System: EF Core (PostgreSQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): Tiered
  • Exception message and full stack trace:
  • Steps to reproduce the issue:
  • I have implemented a custom register logic to create tenant (without any permissions). In other words anonymous user can create tenant. (self registration)
  • Each tenant gets a dedicated database
  • A user with ADMIN role gets created. no issues,
    • The user email -> is the email that was used in the REGISTRATION page
    • The user name is defaulted to ADMIN.
    • After digging some code, it always takes the "admin" as the default user name. I want to the default name to be the name passed from REGISTRATION page.

See the code below for CustomRegisterModel How should i modify to set the DEFAULT NAME as** Input.UserName** `

    public override async Task<IActionResult> OnPostAsync()
    {
        try
        {
            var tenantName = $"{Input.UserName}-dedicated-tenant";
            var defaultConnectionString = _configuration.GetConnectionString("Default");

            if (string.IsNullOrEmpty(defaultConnectionString))
            {
                throw new Exception("Default connection string is not configured in app settings.");
            }

            // Create the database for the new tenant
            var tenantConnectionString = CreateTenantSpecificConnectionString(defaultConnectionString, tenantName);
            //await CreateTenantDatabaseAsync(tenantConnectionString, tenantName);

            SaasTenantDto tenant;
            using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
            {
                var tenantCreateDto = new SaasTenantCreateDto
                {
                    Name = tenantName,
                    AdminEmailAddress = Input.EmailAddress,
                    AdminPassword = Input.Password,
                    ConnectionStrings = new SaasTenantConnectionStringsDto
                    {
                        Default = tenantConnectionString
                    }
                };

                tenant = await _tenantAppService.CreateAsync(tenantCreateDto);

                // Migrate and seed the tenant database
                await MigrateAndSeedTenantDatabaseAsync(tenant.Id);

                await uow.CompleteAsync();
            }
            
                return RedirectToPage("/Login");  // or wherever you want to redirect after successful registration
            
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "An error occurred during registration");
            
       
            
            // Redirect to the login page
            return RedirectToPage("./Login");
        }
    }

    private string CreateTenantSpecificConnectionString(string defaultConnectionString, string tenantName)
    {
        var builder = new NpgsqlConnectionStringBuilder(defaultConnectionString);
        builder.Database = tenantName;
        return builder.ConnectionString;
    }
    
    private async Task MigrateAndSeedTenantDatabaseAsync(Guid tenantId)
    {
        using (_currentTenant.Change(tenantId))
        {
            await _dbSchemaMigrator.MigrateAsync();
        }
    }
}

`

Showing 1 to 2 of 2 entries
Made with ❤️ on ABP v9.1.0-preview. Updated on November 20, 2024, 13:06