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
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
err = app.setupRouter()
+3
View File
@@ -28,6 +28,7 @@ type OAuthController struct {
config *model.Config
runtime *model.RuntimeConfig
auth *service.AuthService
helpers *model.RuntimeHelpers
}
type OAuthControllerInput struct {
@@ -36,6 +37,7 @@ type OAuthControllerInput struct {
Log *logger.Logger
Config *model.Config
RuntimeConfig *model.RuntimeConfig
Helpers *model.RuntimeHelpers
RouterGroup *gin.RouterGroup `name:"apiRouterGroup"`
AuthService *service.AuthService
}
@@ -46,6 +48,7 @@ func NewOAuthController(i OAuthControllerInput) *OAuthController {
config: i.Config,
runtime: i.RuntimeConfig,
auth: i.AuthService,
helpers: i.Helpers,
}
oauthGroup := i.RouterGroup.Group("/oauth")
+6
View File
@@ -35,6 +35,8 @@ type OIDCController struct {
log *logger.Logger
oidc *service.OIDCService
runtime *model.RuntimeConfig
helpers *model.RuntimeHelpers
config *model.Config
}
type AuthorizeCallback struct {
@@ -91,6 +93,8 @@ type OIDCControllerInput struct {
RuntimeConfig *model.RuntimeConfig
RouterGroup *gin.RouterGroup `name:"apiRouterGroup"`
MainRouter *gin.RouterGroup `name:"mainRouterGroup"`
Helpers *model.RuntimeHelpers
Config *model.Config
}
func NewOIDCController(i OIDCControllerInput) *OIDCController {
@@ -98,6 +102,8 @@ func NewOIDCController(i OIDCControllerInput) *OIDCController {
log: i.Log,
oidc: i.OIDCService,
runtime: i.RuntimeConfig,
helpers: i.Helpers,
config: i.Config,
}
i.MainRouter.POST("/authorize", controller.authorize)
@@ -864,6 +864,8 @@ func TestOIDCController(t *testing.T) {
RuntimeConfig: &runtime,
RouterGroup: group,
MainRouter: &router.RouterGroup,
Helpers: helpers,
Config: &cfg,
})
recorder := httptest.NewRecorder()
@@ -721,6 +721,7 @@ func TestProxyController(t *testing.T) {
OAuthBroker: broker,
Tailscale: nil,
PolicyEngine: policyEngine,
Helpers: helpers,
})
for _, test := range tests {
@@ -555,6 +555,7 @@ func TestUserController(t *testing.T) {
OAuthBroker: broker,
Tailscale: nil,
PolicyEngine: policyEngine,
Helpers: helpers,
})
beforeEach := func() {
@@ -277,6 +277,7 @@ func TestContextMiddleware(t *testing.T) {
OAuthBroker: broker,
Tailscale: nil,
PolicyEngine: policyEngine,
Helpers: helpers,
})
contextMiddleware := NewContextMiddleware(ContextMiddlewareInput{
+3
View File
@@ -62,6 +62,7 @@ type AuthService struct {
config *model.Config
runtime *model.RuntimeConfig
ctx context.Context
helpers *model.RuntimeHelpers
ldap *LdapService
queries repository.Store
@@ -99,6 +100,7 @@ type AuthServiceInput struct {
OAuthBroker *OAuthBrokerService
Tailscale *TailscaleService `optional:"true"`
PolicyEngine *PolicyEngine
Helpers *model.RuntimeHelpers
}
func NewAuthService(i AuthServiceInput) *AuthService {
@@ -112,6 +114,7 @@ func NewAuthService(i AuthServiceInput) *AuthService {
oauthBroker: i.OAuthBroker,
tailscale: i.Tailscale,
policyEngine: i.PolicyEngine,
helpers: i.Helpers,
}
// get the max login limits based on the number of users and the configured max retries