Base solution for your next web application
Open Closed

Accessing Host Settings when MultiTenancy disabled #9952


User avatar
0
codescientists created
  • What is your product version? Version 10.0 / ABP 6.0
  • What is your product type (Angular or MVC)? Angular
  • What is product framework type (.net framework or .net core)? .NET Core (.NET 5)

I find that I do not know what differences to expect nor how to operate properly when MultitenancyEnabled = false is set. This seems to be a pandora's box of related questions but l will ask in order of immediate relevance:

  1. How does one login as the global admin (email:[email protected], TenantId:null)? Whenever we login as admin/123qwe it assumes the default tenant, and logs in the more "limited" admin.
  2. How does one access admin/host-settings in the Angular UI? It appears that the "secondary" admin (email:[email protected], TenantId:1) cannot access this menu since they do not have privileges.
  3. What database changes should be expected upon re-running EF core database update after turning off Multitenancy? I have not been able to discern any. I thought maybe some linkages or tables related to multitenancy might go away. Previous forum answers suggest that updating the database might be the missing factor if multitenancy still seems active.
  4. Does TenantId == 1 become the standard for all new data entities, or would it be TenantId == null, or no such field? Should new entities implement IMustHaveTenant, or IMayHaveTenant, or neither? Again, the assumption is we could steer clear of Multitenancy entirely, so I would think they should not have to implement any TenantId property. If this is not true, then what is the real expectation. The angular UI has code which suggests the multi-tenancy "side" is Tenant any time TenantID>0, and Host any time TenantID is 0 or null. From our perspective there should be no "side" but it's looking like that is not really an option.

In general it is looking like there is a lot to work around or step around when it comes to treating this as a single site without multi-tenancy. Admin users should be able to edit any settings like these (as examples) from one place, or at least from one login:

hostSettings.externalLoginProviderSettings.facebook.appId
hostSettings.userManagement.smsVerificationEnabled
hostSettings.userManagement.useCaptchaOnLogin
hostSettings.userManagement.sessionTimeOutSettings.isEnabled
settings.userManagement.useCaptchaOnLogin // ??
settings.security.useDefaultPasswordComplexitySettings
settings.userManagement.isNewRegisteredUserActiveByDefault

If we access Settings in the angular client from the "real"/host admin user, will these settings all be combined? The client seems to be built to assume a Tenant Id.


1 Answer(s)
  • User Avatar
    0
    ismcagdas created
    Support Team

    Hi @codescientists,

    1. You can't login as Host admin when multi tenancy is disabled becsue there is no Host concept when multi tenancy is disabled.
    2. Same as #1, you can't access the host settings page.
    3. Nothing changes with the migrations but app doesn't use host records when multi tenancy is disabled.
    4. Yes, TenantId will be 1 for all entities. Both IMayHaveTenant and IMustHaveTenant can be used.

    When the multi tenancy is disabled, tenant settings page will display extra settings which are hidden in multi-tenancy enabled mode. So, you can configure those settings in tenant settings page when multi tenancy is disabled.

    Basically, Default Tenant's admin becomes a user similar to Host admin.