fix(openflare): align admin permission model with Wavelet

Unify OpenFlare console auth to user.IsAdmin and token_admin instead of
the legacy Admin/Root role tiers. Route groups now use
apiutil.AdminMiddlewares (LoginRequired + LoginAdminRequired) so admin
checks cannot be skipped. Add middleware tests and extend integration
coverage for 401/404/400 responses.
This commit is contained in:
ryan
2026-06-19 11:13:57 +08:00
parent 6bd7dc91fc
commit 49d32d0b25
16 changed files with 208 additions and 51 deletions
@@ -11,7 +11,7 @@ import (
func registerTLSRoutes(apiGroup *gin.RouterGroup) {
managedDomainRoute := apiGroup.Group("/managed-domains")
managedDomainRoute.Use(apiutil.AdminRequired())
managedDomainRoute.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(managedDomainRoute, "GET", tls.GetManagedDomains)
managedDomainRoute.GET("/match", tls.MatchManagedDomainCertificateHandler)
@@ -21,7 +21,7 @@ func registerTLSRoutes(apiGroup *gin.RouterGroup) {
}
tlsCertificateRoute := apiGroup.Group("/tls-certificates")
tlsCertificateRoute.Use(apiutil.AdminRequired())
tlsCertificateRoute.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(tlsCertificateRoute, "GET", tls.GetCertificates)
tlsCertificateRoute.GET("/:id", tls.GetCertificateDetail)
@@ -37,13 +37,13 @@ func registerTLSRoutes(apiGroup *gin.RouterGroup) {
}
acmeAccountRoute := apiGroup.Group("/acme-accounts")
acmeAccountRoute.Use(apiutil.AdminRequired())
acmeAccountRoute.Use(apiutil.AdminMiddlewares()...)
{
acmeAccountRoute.GET("/default", tls.GetDefaultAcmeAccountHandler)
}
dnsAccountRoute := apiGroup.Group("/dns-accounts")
dnsAccountRoute.Use(apiutil.AdminRequired())
dnsAccountRoute.Use(apiutil.AdminMiddlewares()...)
{
apiutil.RegisterCollection(dnsAccountRoute, "GET", tls.GetDNSAccounts)
apiutil.RegisterCollection(dnsAccountRoute, "POST", tls.CreateDNSAccountHandler)