@@ -307,7 +307,7 @@ public PrivilegesEvaluatorResponse evaluate(PrivilegesEvaluationContext context)
307307 action0 = PutMappingAction .NAME ;
308308 }
309309
310- PrivilegesEvaluatorResponse presponse = new PrivilegesEvaluatorResponse () ;
310+ PrivilegesEvaluatorResponse presponse ;
311311
312312 final boolean isDebugEnabled = log .isDebugEnabled ();
313313 if (isDebugEnabled ) {
@@ -328,7 +328,7 @@ public PrivilegesEvaluatorResponse evaluate(PrivilegesEvaluationContext context)
328328
329329 presponse = actionPrivileges .hasClusterPrivilege (context , action0 );
330330
331- if (!presponse .allowed ) {
331+ if (!presponse .isAllowed () ) {
332332 log .info (
333333 "No cluster-level perm match for {} [Action [{}]] [RolesChecked {}]. No permissions for {}" ,
334334 user ,
@@ -347,23 +347,26 @@ public PrivilegesEvaluatorResponse evaluate(PrivilegesEvaluationContext context)
347347 // check snapshot/restore requests
348348 // NOTE: Has to go first as restore request could be for protected and/or system indices and the request may
349349 // fail with 403 if system index or protected index evaluators are triggered first
350- if (snapshotRestoreEvaluator .evaluate (request , task , action0 , presponse ).isComplete ()) {
350+ presponse = snapshotRestoreEvaluator .evaluate (request , task , action0 );
351+ if (presponse != null ) {
351352 return presponse ;
352353 }
353354
354355 // System index access
355- if ( systemIndexAccessEvaluator .evaluate (request , task , action0 , requestedResolved , presponse , context , actionPrivileges , user )
356- . isComplete () ) {
356+ presponse = systemIndexAccessEvaluator .evaluate (request , task , action0 , requestedResolved , context , actionPrivileges , user );
357+ if ( presponse != null ) {
357358 return presponse ;
358359 }
359360
360361 // Protected index access
361- if (protectedIndexAccessEvaluator .evaluate (request , task , action0 , requestedResolved , presponse , mappedRoles ).isComplete ()) {
362+ presponse = protectedIndexAccessEvaluator .evaluate (request , task , action0 , requestedResolved , mappedRoles );
363+ if (presponse != null ) {
362364 return presponse ;
363365 }
364366
365367 // check access for point in time requests
366- if (pitPrivilegesEvaluator .evaluate (request , context , actionPrivileges , action0 , presponse , irr ).isComplete ()) {
368+ presponse = pitPrivilegesEvaluator .evaluate (request , context , actionPrivileges , action0 , irr );
369+ if (presponse != null ) {
367370 return presponse ;
368371 }
369372
@@ -380,7 +383,7 @@ public PrivilegesEvaluatorResponse evaluate(PrivilegesEvaluationContext context)
380383
381384 presponse = actionPrivileges .hasClusterPrivilege (context , action0 );
382385
383- if (!presponse .allowed ) {
386+ if (!presponse .isAllowed () ) {
384387 log .info (
385388 "No cluster-level perm match for {} {} [Action [{}]] [RolesChecked {}]. No permissions for {}" ,
386389 user ,
@@ -411,29 +414,27 @@ public PrivilegesEvaluatorResponse evaluate(PrivilegesEvaluationContext context)
411414 if (!replaceResult .continueEvaluation ) {
412415 if (replaceResult .accessDenied ) {
413416 auditLog .logMissingPrivileges (action0 , request , task );
417+ return PrivilegesEvaluatorResponse .insufficient (action0 );
414418 } else {
415- presponse .allowed = true ;
416- presponse .createIndexRequestBuilder = replaceResult .createIndexRequestBuilder ;
419+ return PrivilegesEvaluatorResponse .ok ().with (replaceResult .createIndexRequestBuilder );
417420 }
418- return presponse ;
419421 }
420422 }
421423
422424 log .debug ("Allowed because we have cluster permissions for {}" , action0 );
423425
424- presponse .allowed = true ;
425- return presponse ;
426+ return PrivilegesEvaluatorResponse .ok ();
426427 }
427428 }
428429 }
429430
430431 if (checkDocAllowListHeader (user , action0 , request )) {
431- presponse .allowed = true ;
432- return presponse ;
432+ return PrivilegesEvaluatorResponse .ok ();
433433 }
434434
435435 // term aggregations
436- if (termsAggregationEvaluator .evaluate (requestedResolved , request , context , actionPrivileges , presponse ).isComplete ()) {
436+ presponse = termsAggregationEvaluator .evaluate (requestedResolved , request , context , actionPrivileges );
437+ if (presponse != null ) {
437438 return presponse ;
438439 }
439440
@@ -462,9 +463,7 @@ public PrivilegesEvaluatorResponse evaluate(PrivilegesEvaluationContext context)
462463 auditLog .logMissingPrivileges (action0 , request , task );
463464 return PrivilegesEvaluatorResponse .insufficient (action0 );
464465 } else {
465- presponse .allowed = true ;
466- presponse .createIndexRequestBuilder = replaceResult .createIndexRequestBuilder ;
467- return presponse ;
466+ return PrivilegesEvaluatorResponse .ok ().with (replaceResult .createIndexRequestBuilder );
468467 }
469468 }
470469 }
@@ -497,8 +496,7 @@ public PrivilegesEvaluatorResponse evaluate(PrivilegesEvaluationContext context)
497496
498497 if (presponse .isAllowed ()) {
499498 if (checkFilteredAliases (requestedResolved , action0 , isDebugEnabled )) {
500- presponse .allowed = false ;
501- return presponse ;
499+ return PrivilegesEvaluatorResponse .insufficient (action0 );
502500 }
503501
504502 log .debug ("Allowed because we have all indices permissions for {}" , action0 );
0 commit comments