You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.7 KiB
2.7 KiB
LINGYUN.Abp.MultiTenancy.Editions
Multi-tenancy edition management module, providing basic functionality support for tenant editions.
Features
- Edition Management
- Support for assigning different editions to tenants
- Edition information includes ID and display name
- Support for edition information storage and retrieval
- Global Feature Toggles
- Control edition functionality through global feature switches
- Flexible configuration for enabling/disabling edition features
- Authentication Integration
- Automatically adds edition information to user Claims
- Support for accessing current tenant's edition information in applications
- Extensibility
- Provides IEditionStore interface for custom edition storage
- Support for custom edition configuration providers
Module Reference
[DependsOn(typeof(AbpMultiTenancyEditionsModule))]
public class YouProjectModule : AbpModule
{
// other
}
Configuration
1. Global Feature Configuration
GlobalFeatureManager.Instance.Modules.Editions(editions =>
{
// Configure edition-related global features here
});
2. Implementing Edition Storage
public class YourEditionStore : IEditionStore
{
public async Task<EditionInfo> FindByTenantAsync(Guid tenantId)
{
// Implement logic to retrieve tenant edition information from storage
return new EditionInfo(
id: Guid.NewGuid(),
displayName: "Standard Edition"
);
}
}
3. Retrieving Edition Information
public class YourService
{
private readonly IEditionConfigurationProvider _editionProvider;
public YourService(IEditionConfigurationProvider editionProvider)
{
_editionProvider = editionProvider;
}
public async Task<EditionConfiguration> GetEditionAsync(Guid? tenantId)
{
return await _editionProvider.GetAsync(tenantId);
}
}
Using Edition Information in Claims
When edition functionality is enabled, the module automatically adds edition information to user Claims:
public class YourController
{
public async Task<IActionResult> GetEditionInfo()
{
var editionId = User.FindFirstValue(AbpClaimTypes.EditionId);
// Perform operations using the edition ID
}
}
Important Notes
- Ensure global feature toggle is enabled before using edition functionality.
- Edition storage implementation should consider performance and concurrent access issues.
- Changes to edition information may affect tenant feature access permissions.
- Edition information in Claims is automatically updated during user authentication.