feat: inject runtime helpers to controllers and services

This commit is contained in:
Stavros
2026-06-21 13:00:36 +03:00
parent 23af559f2f
commit 474e297d9d
8 changed files with 25 additions and 0 deletions
+8
View File
@@ -294,6 +294,14 @@ func (app *BootstrapApp) Setup() error {
// runtime helpers // runtime helpers
app.helpers.GetCookieDomain = app.getCookieDomain app.helpers.GetCookieDomain = app.getCookieDomain
err = app.dig.Provide(func() *model.RuntimeHelpers {
return &app.helpers
})
if err != nil {
return fmt.Errorf("failed to provide runtime helpers to container: %w", err)
}
// setup router // setup router
err = app.setupRouter() err = app.setupRouter()
+3
View File
@@ -28,6 +28,7 @@ type OAuthController struct {
config *model.Config config *model.Config
runtime *model.RuntimeConfig runtime *model.RuntimeConfig
auth *service.AuthService auth *service.AuthService
helpers *model.RuntimeHelpers
} }
type OAuthControllerInput struct { type OAuthControllerInput struct {
@@ -36,6 +37,7 @@ type OAuthControllerInput struct {
Log *logger.Logger Log *logger.Logger
Config *model.Config Config *model.Config
RuntimeConfig *model.RuntimeConfig RuntimeConfig *model.RuntimeConfig
Helpers *model.RuntimeHelpers
RouterGroup *gin.RouterGroup `name:"apiRouterGroup"` RouterGroup *gin.RouterGroup `name:"apiRouterGroup"`
AuthService *service.AuthService AuthService *service.AuthService
} }
@@ -46,6 +48,7 @@ func NewOAuthController(i OAuthControllerInput) *OAuthController {
config: i.Config, config: i.Config,
runtime: i.RuntimeConfig, runtime: i.RuntimeConfig,
auth: i.AuthService, auth: i.AuthService,
helpers: i.Helpers,
} }
oauthGroup := i.RouterGroup.Group("/oauth") oauthGroup := i.RouterGroup.Group("/oauth")
+6
View File
@@ -35,6 +35,8 @@ type OIDCController struct {
log *logger.Logger log *logger.Logger
oidc *service.OIDCService oidc *service.OIDCService
runtime *model.RuntimeConfig runtime *model.RuntimeConfig
helpers *model.RuntimeHelpers
config *model.Config
} }
type AuthorizeCallback struct { type AuthorizeCallback struct {
@@ -91,6 +93,8 @@ type OIDCControllerInput struct {
RuntimeConfig *model.RuntimeConfig RuntimeConfig *model.RuntimeConfig
RouterGroup *gin.RouterGroup `name:"apiRouterGroup"` RouterGroup *gin.RouterGroup `name:"apiRouterGroup"`
MainRouter *gin.RouterGroup `name:"mainRouterGroup"` MainRouter *gin.RouterGroup `name:"mainRouterGroup"`
Helpers *model.RuntimeHelpers
Config *model.Config
} }
func NewOIDCController(i OIDCControllerInput) *OIDCController { func NewOIDCController(i OIDCControllerInput) *OIDCController {
@@ -98,6 +102,8 @@ func NewOIDCController(i OIDCControllerInput) *OIDCController {
log: i.Log, log: i.Log,
oidc: i.OIDCService, oidc: i.OIDCService,
runtime: i.RuntimeConfig, runtime: i.RuntimeConfig,
helpers: i.Helpers,
config: i.Config,
} }
i.MainRouter.POST("/authorize", controller.authorize) i.MainRouter.POST("/authorize", controller.authorize)
@@ -864,6 +864,8 @@ func TestOIDCController(t *testing.T) {
RuntimeConfig: &runtime, RuntimeConfig: &runtime,
RouterGroup: group, RouterGroup: group,
MainRouter: &router.RouterGroup, MainRouter: &router.RouterGroup,
Helpers: helpers,
Config: &cfg,
}) })
recorder := httptest.NewRecorder() recorder := httptest.NewRecorder()
@@ -721,6 +721,7 @@ func TestProxyController(t *testing.T) {
OAuthBroker: broker, OAuthBroker: broker,
Tailscale: nil, Tailscale: nil,
PolicyEngine: policyEngine, PolicyEngine: policyEngine,
Helpers: helpers,
}) })
for _, test := range tests { for _, test := range tests {
@@ -555,6 +555,7 @@ func TestUserController(t *testing.T) {
OAuthBroker: broker, OAuthBroker: broker,
Tailscale: nil, Tailscale: nil,
PolicyEngine: policyEngine, PolicyEngine: policyEngine,
Helpers: helpers,
}) })
beforeEach := func() { beforeEach := func() {
@@ -277,6 +277,7 @@ func TestContextMiddleware(t *testing.T) {
OAuthBroker: broker, OAuthBroker: broker,
Tailscale: nil, Tailscale: nil,
PolicyEngine: policyEngine, PolicyEngine: policyEngine,
Helpers: helpers,
}) })
contextMiddleware := NewContextMiddleware(ContextMiddlewareInput{ contextMiddleware := NewContextMiddleware(ContextMiddlewareInput{
+3
View File
@@ -62,6 +62,7 @@ type AuthService struct {
config *model.Config config *model.Config
runtime *model.RuntimeConfig runtime *model.RuntimeConfig
ctx context.Context ctx context.Context
helpers *model.RuntimeHelpers
ldap *LdapService ldap *LdapService
queries repository.Store queries repository.Store
@@ -99,6 +100,7 @@ type AuthServiceInput struct {
OAuthBroker *OAuthBrokerService OAuthBroker *OAuthBrokerService
Tailscale *TailscaleService `optional:"true"` Tailscale *TailscaleService `optional:"true"`
PolicyEngine *PolicyEngine PolicyEngine *PolicyEngine
Helpers *model.RuntimeHelpers
} }
func NewAuthService(i AuthServiceInput) *AuthService { func NewAuthService(i AuthServiceInput) *AuthService {
@@ -112,6 +114,7 @@ func NewAuthService(i AuthServiceInput) *AuthService {
oauthBroker: i.OAuthBroker, oauthBroker: i.OAuthBroker,
tailscale: i.Tailscale, tailscale: i.Tailscale,
policyEngine: i.PolicyEngine, policyEngine: i.PolicyEngine,
helpers: i.Helpers,
} }
// get the max login limits based on the number of users and the configured max retries // get the max login limits based on the number of users and the configured max retries