@@ -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 ,
@@ -412,28 +415,25 @@ public PrivilegesEvaluatorResponse evaluate(PrivilegesEvaluationContext context)
412415 if (replaceResult .accessDenied ) {
413416 auditLog .logMissingPrivileges (action0 , request , task );
414417 } else {
415- presponse .allowed = true ;
416- presponse .createIndexRequestBuilder = replaceResult .createIndexRequestBuilder ;
418+ return PrivilegesEvaluatorResponse .ok ().with (replaceResult .createIndexRequestBuilder );
417419 }
418- return presponse ;
419420 }
420421 }
421422
422423 log .debug ("Allowed because we have cluster permissions for {}" , action0 );
423424
424- presponse .allowed = true ;
425- return presponse ;
425+ return PrivilegesEvaluatorResponse .ok ();
426426 }
427427 }
428428 }
429429
430430 if (checkDocAllowListHeader (user , action0 , request )) {
431- presponse .allowed = true ;
432- return presponse ;
431+ return PrivilegesEvaluatorResponse .ok ();
433432 }
434433
435434 // term aggregations
436- if (termsAggregationEvaluator .evaluate (requestedResolved , request , context , actionPrivileges , presponse ).isComplete ()) {
435+ presponse = termsAggregationEvaluator .evaluate (requestedResolved , request , context , actionPrivileges );
436+ if (presponse != null ) {
437437 return presponse ;
438438 }
439439
@@ -462,9 +462,7 @@ public PrivilegesEvaluatorResponse evaluate(PrivilegesEvaluationContext context)
462462 auditLog .logMissingPrivileges (action0 , request , task );
463463 return PrivilegesEvaluatorResponse .insufficient (action0 );
464464 } else {
465- presponse .allowed = true ;
466- presponse .createIndexRequestBuilder = replaceResult .createIndexRequestBuilder ;
467- return presponse ;
465+ return PrivilegesEvaluatorResponse .ok ().with (replaceResult .createIndexRequestBuilder );
468466 }
469467 }
470468 }
@@ -497,8 +495,7 @@ public PrivilegesEvaluatorResponse evaluate(PrivilegesEvaluationContext context)
497495
498496 if (presponse .isAllowed ()) {
499497 if (checkFilteredAliases (requestedResolved , action0 , isDebugEnabled )) {
500- presponse .allowed = false ;
501- return presponse ;
498+ return PrivilegesEvaluatorResponse .insufficient (action0 );
502499 }
503500
504501 log .debug ("Allowed because we have all indices permissions for {}" , action0 );
0 commit comments