Ensure config state is loaded before permission check #24567
Merged
+12
−5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Fixes #24438
This PR fixes the issue where
permissionGuardreturns a 403 error and redirects to the base URL when refreshing a page that uses the newdata: { requiredPolicy: '...' }format.Root Cause
The
permissionGuardwas usingtake(1)which immediately consumed the first value from theBehaviorSubjectinConfigStateService. On page refresh, this initial value was an empty{}object before the application configuration API response arrived, causing the permission check to fail.Solution
Added a
filteroperator to wait forgrantedPoliciesto be loaded before performing the permission check:How to test it?
you have to change branch issue-24438-test on abp. (because i created test permission and test page)
you have to run dev-app on abp repository
First, try going to localhost:4200/test without assigning yourself the "test" role.
Then, assign yourself the "test" role and try going to the page again.