@@ -363,7 +363,7 @@ func (s *Server) HandleRegister(w http.ResponseWriter, r *http.Request) {
363363 resolvedMap [r ] = true
364364 if strings .HasPrefix (r , "sam:role:" ) {
365365 hasCapabilityRoles = true
366- } else {
366+ } else if r != req . RequestedRole {
367367 customAccessRoles = append (customAccessRoles , r )
368368 }
369369 }
@@ -579,7 +579,7 @@ func (s *Server) HandleRefresh(w http.ResponseWriter, r *http.Request) {
579579 resolvedMap [r ] = true
580580 if strings .HasPrefix (r , "sam:role:" ) {
581581 hasCapabilityRoles = true
582- } else {
582+ } else if r != nodeRecord . Role {
583583 customAccessRoles = append (customAccessRoles , r )
584584 }
585585 }
@@ -804,9 +804,12 @@ func (s *Server) HandlePolicies(w http.ResponseWriter, r *http.Request) {
804804 for _ , k := range validKeys {
805805 trustedKeys = append (trustedKeys , k .Public )
806806 }
807- _ , err := identity .VerifyAndExtractPeerID (trustedKeys , biscuitBytes )
807+ peerID , err := identity .VerifyAndExtractPeerID (trustedKeys , biscuitBytes )
808808 if err == nil {
809- isNode = true
809+ nodeRecord , nodeErr := s .store .GetNode (r .Context (), peerID .String ())
810+ if nodeErr == nil && ! nodeRecord .Banned {
811+ isNode = true
812+ }
810813 }
811814 }
812815 }
0 commit comments