From 296909ef1f3f682d4c04d78976b67b452b8e59f2 Mon Sep 17 00:00:00 2001 From: Melora Hugues Date: Wed, 3 Jan 2024 17:11:54 +0100 Subject: [PATCH] fix: allow setting client/secret id for a new backend --- polyculeconnect/cmd/backend/add.go | 31 ++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/polyculeconnect/cmd/backend/add.go b/polyculeconnect/cmd/backend/add.go index 7577736..ba70a18 100644 --- a/polyculeconnect/cmd/backend/add.go +++ b/polyculeconnect/cmd/backend/add.go @@ -4,15 +4,17 @@ import ( "fmt" "git.faercol.me/faercol/polyculeconnect/polyculeconnect/cmd/utils" - "git.faercol.me/faercol/polyculeconnect/polyculeconnect/services" + "git.faercol.me/faercol/polyculeconnect/polyculeconnect/logger" "git.faercol.me/faercol/polyculeconnect/polyculeconnect/services/backend" "github.com/spf13/cobra" ) var ( - backendID string - backendName string - backendIssuer string + backendID string + backendName string + backendIssuer string + backendClientID string + backendClientSecret string ) var backendAddCmd = &cobra.Command{ @@ -25,7 +27,9 @@ Parameters to provide: - name: Human readable name to represent the backend. It will be used by the user in the authentication page to select a backend during authentication -- issuer: Full hostname of the OIDC provider, e.g. 'https://github.com'`, +- issuer: Full hostname of the OIDC provider, e.g. 'https://github.com' +- client-id: OIDC Client ID for the backend +- client-secret OIDC Client secret for the backend`, Run: func(cmd *cobra.Command, args []string) { addNewBackend() }, @@ -33,17 +37,20 @@ Parameters to provide: func addNewBackend() { c := utils.InitConfig("") + logger.Init(c.LogLevel) s := utils.InitStorage(c) - clientID, clientSecret, err := services.GenerateClientIDSecret() - if err != nil { - utils.Failf("Failed to generate client id or secret: %s", err.Error()) + if backendClientID == "" { + utils.Fail("Empty client ID") + } + if backendClientSecret == "" { + utils.Fail("Empty client secret") } backendConf := backend.BackendConfig{ Issuer: backendIssuer, - ClientID: clientID, - ClientSecret: clientSecret, + ClientID: backendClientID, + ClientSecret: backendClientSecret, RedirectURI: c.RedirectURI(), ID: backendID, Name: backendName, @@ -53,8 +60,6 @@ func addNewBackend() { } fmt.Printf("New backend %s added.\n", backendName) - printProperty("Client ID", clientID) - printProperty("Client secret", clientSecret) } func init() { @@ -63,4 +68,6 @@ func init() { backendAddCmd.Flags().StringVarP(&backendID, "id", "i", "", "ID to identify the backend in the storage") backendAddCmd.Flags().StringVarP(&backendName, "name", "n", "", "Name to represent the backend") backendAddCmd.Flags().StringVarP(&backendIssuer, "issuer", "d", "", "Full hostname of the backend") + backendAddCmd.Flags().StringVarP(&backendClientID, "client-id", "", "", "OIDC Client ID for the backend") + backendAddCmd.Flags().StringVarP(&backendClientSecret, "client-secret", "", "", "OIDC Client secret for the backend") }