Ctrl K
ComunidadGuías…

server/oidc_registry_status.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package main

import (
	"fmt"

	"blackbox/server/internal/auth"
	"blackbox/server/internal/models"
)

type oidcRegistryStatus int

const (
	oidcRegistryStatusUnknown oidcRegistryStatus = iota
	oidcRegistryStatusDisabled
	oidcRegistryStatusReady
	oidcRegistryStatusUnavailable
)

func oidcRegistryStatusFromProviders(providers []models.OIDCProviderConfig, registry *auth.OIDCRegistry) oidcRegistryStatus {
	if len(providers) == 0 {
		return oidcRegistryStatusDisabled
	}

	for _, provider := range providers {
		if registry.Get(provider.ID) != nil {
			return oidcRegistryStatusReady
		}
	}

	return oidcRegistryStatusUnavailable
}

func oidcRegistryTransitionMessage(attempt int, previous, current oidcRegistryStatus) string {
	if current == previous {
		return ""
	}

	switch current {
	case oidcRegistryStatusReady:
		return "OIDC registry ready"
	case oidcRegistryStatusUnavailable:
		return fmt.Sprintf("OIDC registry reload attempt %d completed but no providers are currently available", attempt)
	default:
		return ""
	}
}