From b20e54599a98505fb3833c1a397659d5fa9c3c68 Mon Sep 17 00:00:00 2001 From: Tyler Allen Date: Sun, 22 Feb 2026 19:22:06 -0500 Subject: [PATCH] geteligiblevoters from conditional --- constitutional.go | 32 +++++++++++++++++++++++--------- users.go | 2 +- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/constitutional.go b/constitutional.go index 20805f3..c16c18f 100644 --- a/constitutional.go +++ b/constitutional.go @@ -2,7 +2,10 @@ package main import ( "context" + "encoding/json" "fmt" + "io" + "net/http" "os" "strings" "time" @@ -71,16 +74,27 @@ func InitConstitution() { // GetEligibleVoters returns a string slice of usernames of eligible voters func GetEligibleVoters() []string { - ret := make([]string, 0) - allactive := oidcClient.GetActiveUsers() - //todo: figure out why this is slow as FORK - for _, a := range allactive { - oidcClient.GetUserGatekeep(&a) - if a.Gatekeep { - ret = append(ret, a.Username) - } + htclient := &http.Client{} + req, err := http.NewRequest("GET", CONDITIONAL_GATEKEEP_URL, nil) + if err != nil { + logging.Logger.WithFields(logrus.Fields{"method": "GetUserGatekeep"}).Error(err) + return nil + } + req.Header.Add("X-VOTE-TOKEN", VOTE_TOKEN) + resp, err := htclient.Do(req) + if err != nil { + logging.Logger.WithFields(logrus.Fields{"method": "GetUserGatekeep"}).Error(err) + return nil + } + defer resp.Body.Close() + b, _ := io.ReadAll(resp.Body) + if strings.Contains(string(b), "Users") { + logging.Logger.WithFields(logrus.Fields{"method": "GetUserGatekeep"}).Error("Conditional Gatekeep token is incorrect") + return nil } - return ret + res := make([]string, 0) + err = json.Unmarshal(b, &res) + return res } func EvaluatePolls() { diff --git a/users.go b/users.go index ea00283..12abfbf 100644 --- a/users.go +++ b/users.go @@ -154,7 +154,7 @@ func (client *OIDCClient) GetUserInfo(user *OIDCUser) { func (client *OIDCClient) GetUserGatekeep(user *OIDCUser) { htclient := &http.Client{} - req, err := http.NewRequest("GET", CONDITIONAL_GATEKEEP_URL+user.Username, nil) + req, err := http.NewRequest("GET", CONDITIONAL_GATEKEEP_URL+"/"+user.Username, nil) if err != nil { logging.Logger.WithFields(logrus.Fields{"method": "GetUserGatekeep"}).Error(err) return