From 1445917fecfe00c739d339769ab17c46ca0f3d3f Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sat, 30 Jan 2021 05:13:56 +0100 Subject: [PATCH] Include all existing associations when generating htpasswd --- admin/api/certificate.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/admin/api/certificate.go b/admin/api/certificate.go index de46ccc5..9bc177cf 100644 --- a/admin/api/certificate.go +++ b/admin/api/certificate.go @@ -154,11 +154,16 @@ func genHtpasswd(ssha bool) (ret string, err error) { hash.Write([]byte(cert.Password)) hash.Write([]byte(salt)) - passwdline := fmt.Sprintf(":{SSHA}%s\n",base64.StdEncoding.EncodeToString(append(hash.Sum(nil), salt...))) + passwdline := fmt.Sprintf(":{SSHA}%s\n", base64.StdEncoding.EncodeToString(append(hash.Sum(nil), salt...))) ret += strings.ToLower(team.Name) + passwdline ret += fmt.Sprintf("%0[2]*[1]x", cert.Id, int(math.Ceil(math.Log2(float64(cert.Id))/8)*2)) + passwdline ret += fmt.Sprintf("%0[2]*[1]X", cert.Id, int(math.Ceil(math.Log2(float64(cert.Id))/8)*2)) + passwdline + teamAssociations, _ := pki.GetTeamAssociations(TeamsDir, team.Id) + log.Println(path.Join(TeamsDir, fmt.Sprintf("%d", team.Id)), teamAssociations) + for _, ta := range teamAssociations { + ret += strings.Replace(ta, ":", "", -1) + passwdline + } } else { salt32 := base32.StdEncoding.EncodeToString(salt) ret += fmt.Sprintf( @@ -274,7 +279,7 @@ type CertExported struct { Id string `json:"id"` Creation time.Time `json:"creation"` Password string `json:"password,omitempty"` - IdTeam *int64 `json:"id_team"` + IdTeam *int64 `json:"id_team"` Revoked *time.Time `json:"revoked"` }