Skip to content

Commit

Permalink
terms and conditions
Browse files Browse the repository at this point in the history
  • Loading branch information
caffeinated92 committed Dec 18, 2024
1 parent 8aa43ef commit cf978a5
Show file tree
Hide file tree
Showing 8 changed files with 1,169 additions and 20 deletions.
8 changes: 8 additions & 0 deletions server/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,9 @@ func (repman *ReplicationManager) apiserver() {
router.Handle("/api/monitor", negroni.New(
negroni.Wrap(http.HandlerFunc(repman.handlerMuxReplicationManager)),
))
router.Handle("/api/terms", negroni.New(
negroni.Wrap(http.HandlerFunc(repman.handlerMuxTerms)),
))
//PROTECTED ENDPOINTS FOR SETTINGS
router.Handle("/api/monitor", negroni.New(
negroni.HandlerFunc(repman.validateTokenMiddleware),
Expand Down Expand Up @@ -727,6 +730,11 @@ func (repman *ReplicationManager) handlerMuxReplicationManager(w http.ResponseWr
w.Write(res)
}

func (repman *ReplicationManager) handlerMuxTerms(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Write(repman.Terms)
}

func (repman *ReplicationManager) handlerMuxAddUser(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")

Expand Down
41 changes: 41 additions & 0 deletions server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,8 @@ type ReplicationManager struct {
GitRepo *githelper.GitRepository `json:"-"`
IsHttpListenerReady bool `json:"-"`
IsApiListenerReady bool `json:"-"`
Terms []byte `json:"-"` //Will be fetched by /api/terms later to prevent excessive data
TermsDT time.Time `json:"termsDT"`
fileHook log.Hook
repmanv3.UnimplementedClusterPublicServiceServer `json:"-"`
repmanv3.UnimplementedClusterServiceServer `json:"-"`
Expand Down Expand Up @@ -1834,10 +1836,13 @@ func (repman *ReplicationManager) Run() error {
loglen := repman.termlength - 9 - (len(strings.Split(repman.Conf.Hosts, ",")) * 3)
repman.tlog = s18log.NewTermLog(loglen)
repman.Logs = s18log.NewHttpLog(80)
repman.Terms = make([]byte, 0)
repman.TermsDT = time.Now()
repman.InitServicePlans()
repman.ServiceOrchestrators = repman.Conf.GetOrchestratorsProv()
repman.InitGrants()
repman.InitRoles()
repman.ReloadTerms()
repman.ServiceRepos, err = repman.Conf.GetDockerRepos(repman.Conf.ShareDir+"/repo/repos.json", repman.Conf.Test)
if err != nil {
repman.Logrus.WithError(err).Errorf("Initialization docker repo failed: %s %s", repman.Conf.ShareDir+"/repo/repos.json", err)
Expand Down Expand Up @@ -2394,6 +2399,42 @@ func (repman *ReplicationManager) InitRoles() error {
return nil
}

func (repman *ReplicationManager) ReloadTerms() error {
var updated bool
path := repman.Conf.WorkingDir + "/.pull/terms.md"

finfo, err := os.Stat(path)
if err != nil {
return err
}

terms, err := os.ReadFile(path)
if err != nil {
return err
}

new_h := md5.New()
_, err = new_h.Write(terms)
if err != nil {
return err
}

h, ok := repman.CheckSumConfig["terms"]
if !ok {
updated = true
}
if ok && !bytes.Equal(h.Sum(nil), new_h.Sum(nil)) {
updated = true
}

if updated {
repman.CheckSumConfig["terms"] = new_h
repman.Terms = terms
repman.TermsDT = finfo.ModTime()
}
return nil
}

func IsDefault(p string, v *viper.Viper) bool {

return false
Expand Down
Loading

0 comments on commit cf978a5

Please sign in to comment.