@@ -72,30 +72,27 @@ public virtual async Task<ResourceValidationResult> ValidateRequestedResourcesAs
72
72
return result ;
73
73
}
74
74
75
- var subjectIdOrDefault = request . Subject ? . GetSubjectIdOrDefault ( ) ;
75
+ var scopeNames = parsedScopesResult . ParsedScopes . Select ( x => x . ParsedName ) . Distinct ( ) . ToArray ( ) ;
76
+ var resourcesFromStore = await _store . FindEnabledResourcesByScopeAsync ( scopeNames ) ;
76
77
77
- if ( ! string . IsNullOrEmpty ( subjectIdOrDefault ) )
78
+ foreach ( var scope in parsedScopesResult . ParsedScopes )
78
79
{
79
- var hasRoleToBypassScopeValidation = await _clientUserRoleService . UserHasLoginByPassRoleInClient ( subjectIdOrDefault , request . Client , _clientRoleOptions ? . Value ? . ValidUserRolesToBypassClientScopeValidation ) ;
80
+ await ValidateScopeAsync ( request . Client , resourcesFromStore , scope , result , request . RequiredRequestScopes . Any ( a => a == scope . ParsedName ) ) ;
81
+ }
80
82
81
- if ( ! hasRoleToBypassScopeValidation )
82
- {
83
- var scopeNames = parsedScopesResult . ParsedScopes . Select ( x => x . ParsedName ) . Distinct ( ) . ToArray ( ) ;
84
- var resourcesFromStore = await _store . FindEnabledResourcesByScopeAsync ( scopeNames ) ;
83
+ var requiredRequestScopeNames = parsedRequiredRequestScopesResult . ParsedScopes . Select ( x => x . ParsedName ) . Distinct ( ) . ToArray ( ) ;
84
+ var requiredRequestResourcesFromStore = await _store . FindEnabledResourcesByScopeAsync ( requiredRequestScopeNames ) ;
85
85
86
- foreach ( var scope in parsedScopesResult . ParsedScopes )
87
- {
88
- await ValidateScopeAsync ( request . Client , resourcesFromStore , scope , result , request . RequiredRequestScopes . Any ( a => a == scope . ParsedName ) ) ;
89
- }
86
+ foreach ( var scope in parsedRequiredRequestScopesResult . ParsedScopes )
87
+ {
88
+ await ValidateRequestRequiredScopeAsync ( request . Client , requiredRequestResourcesFromStore , scope , result ) ;
89
+ }
90
90
91
- var requiredRequestScopeNames = parsedRequiredRequestScopesResult . ParsedScopes . Select ( x => x . ParsedName ) . Distinct ( ) . ToArray ( ) ;
92
- var requiredRequestResourcesFromStore = await _store . FindEnabledResourcesByScopeAsync ( requiredRequestScopeNames ) ;
91
+ var subjectIdOrDefault = request . Subject ? . GetSubjectIdOrDefault ( ) ;
93
92
94
- foreach ( var scope in parsedRequiredRequestScopesResult . ParsedScopes )
95
- {
96
- await ValidateRequestRequiredScopeAsync ( request . Client , requiredRequestResourcesFromStore , scope , result ) ;
97
- }
98
- }
93
+ if ( ! string . IsNullOrEmpty ( subjectIdOrDefault ) && await _clientUserRoleService . UserHasLoginByPassRoleInClient ( subjectIdOrDefault , request . Client , _clientRoleOptions ? . Value ? . ValidUserRolesToBypassClientScopeValidation ) )
94
+ {
95
+ result . InvalidScopes . Clear ( ) ;
99
96
}
100
97
101
98
if ( result . InvalidScopes . Count > 0 )
0 commit comments