fix: resource permission definition bugs in cache and event notification#25017
fix: resource permission definition bugs in cache and event notification#25017
Conversation
- Fix ResourcePermissionDefinitions not being populated in DynamicPermissionDefinitionStoreInMemoryCache.FillAsync, causing GetResourcePermissionOrNull and GetResourcePermissions to always return empty - Fix StaticPermissionSaver incorrectly using newRecords instead of changedRecords when collecting changed permission names for event notification
There was a problem hiding this comment.
Pull request overview
This PR fixes two issues in the permission-management domain module that prevented dynamic resource permissions from being returned from the dynamic store cache and caused incorrect permission-name lists to be published in the DynamicPermissionDefinitionsChangedEto event when static permissions change.
Changes:
- Populate
ResourcePermissionDefinitionsinDynamicPermissionDefinitionStoreInMemoryCache.FillAsyncso dynamic resource permission queries return results. - Fix
StaticPermissionSaverto collect changed permission names fromchangedRecords(notnewRecords) for distributed event notification.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs | Fixes event payload to include updated permission names when records change. |
| modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs | Ensures resource permission definitions are stored in-memory so dynamic resource permission lookups return non-empty results. |
...gement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs
Show resolved
Hide resolved
...gement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs
Outdated
Show resolved
Hide resolved
.../Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs
Show resolved
Hide resolved
…ermissions in FillAsync
...gement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs
Show resolved
Hide resolved
…ryCache resource permissions
...gement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs
Outdated
Show resolved
Hide resolved
...gement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs
Outdated
Show resolved
Hide resolved
…and add StateCheckers test
…le for JS localization fallback
Please pull the latest changes. Thanks. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## rel-10.1 #25017 +/- ##
============================================
+ Coverage 50.67% 50.69% +0.01%
============================================
Files 3389 3390 +1
Lines 112024 112185 +161
Branches 8492 8493 +1
============================================
+ Hits 56767 56869 +102
- Misses 53524 53569 +45
- Partials 1733 1747 +14 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
…urcePermissionManagementModal

Problem
DynamicPermissionDefinitionStoreInMemoryCache.FillAsyncnever populatedResourcePermissionDefinitions, causingGetResourcePermissionOrNullandGetResourcePermissionsto always return emptyFillAsyncwere missingProviders,StateCheckers, andExtraPropertiesdeserializationStaticPermissionSaver.UpdateChangedPermissionsAsyncusednewRecordsinstead ofchangedRecordsforDynamicPermissionDefinitionsChangedEtoSolution
ResourcePermissionDefinitionswith full properties (Providers, StateCheckers, ExtraProperties) inFillAsyncchangedRecordsreference inUpdateChangedPermissionsAsyncDynamicPermissionDefinitionStoreInMemoryCache