diff --git a/admin/api/password.go b/admin/api/password.go index d9b9ecff..c6222766 100644 --- a/admin/api/password.go +++ b/admin/api/password.go @@ -191,13 +191,15 @@ func genDexConfig() ([]byte, error) { } else { b := bytes.NewBufferString("") - if dexTmpl, err := template.New("dexcfg").Parse(dexcfgtpl); err != nil { + if challengeInfo, err := GetChallengeInfo(); err != nil { + return nil, fmt.Errorf("Cannot create template: %w", err) + } else if dexTmpl, err := template.New("dexcfg").Parse(dexcfgtpl); err != nil { return nil, fmt.Errorf("Cannot create template: %w", err) } else if err = dexTmpl.Execute(b, dexConfig{ Clients: []dexConfigClient{ dexConfigClient{ Id: "epita-challenge", - Name: "Challenge Forensic", + Name: challengeInfo.Title, RedirectURIs: []string{"https://fic.srs.epita.fr/challenge_access/auth"}, Secret: OidcSecret, }, diff --git a/admin/api/settings.go b/admin/api/settings.go index 8c0c5636..ce2ab503 100644 --- a/admin/api/settings.go +++ b/admin/api/settings.go @@ -85,7 +85,7 @@ func getROSettings(c *gin.Context) { }) } -func getChallengeInfo(c *gin.Context) { +func GetChallengeInfo() (*settings.ChallengeInfo, error) { var challengeinfo string var err error if sync.GlobalImporter == nil { @@ -103,18 +103,25 @@ func getChallengeInfo(c *gin.Context) { if err != nil { log.Println("Unable to retrieve challenge.json:", err.Error()) - c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"errmsg": fmt.Sprintf("Unable to retrive challenge.json: %s", err.Error())}) - return + return nil, fmt.Errorf("Unable to retrive challenge.json: %w", err) } s, err := settings.ReadChallengeInfo(challengeinfo) if err != nil { log.Println("Unable to ReadChallengeInfo:", err.Error()) - c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"errmsg": fmt.Sprintf("Unable to read challenge info: %s", err.Error())}) - return + return nil, fmt.Errorf("Unable to read challenge info: %w", err) } - c.JSON(http.StatusOK, s) + return s, nil +} + +func getChallengeInfo(c *gin.Context) { + if s, err := GetChallengeInfo(); err != nil { + c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"errmsg": err.Error()}) + + } else { + c.JSON(http.StatusOK, s) + } } func saveChallengeInfo(c *gin.Context) {