···11081108 return11091109 }1110111011111111+ // all spindles that this user is a member of11111112 spindles, err := rp.enforcer.GetSpindlesForUser(user.Did)11121113 if err != nil {11131114 log.Println("failed to fetch spindles", err)
+46
appview/spindles/spindles.go
···5454 )5555 if err != nil {5656 s.Logger.Error("failed to fetch spindles", "err", err)5757+ w.WriteHeader(http.StatusInternalServerError)5858+ return5759 }58605961 s.Pages.Spindles(w, pages.SpindlesParams{···148146 if expectedOwner != user.Did {149147 // verification failed150148 l.Error("verification failed", "expectedOwner", expectedOwner, "observedOwner", user.Did)149149+ s.Pages.HxRefresh(w)150150+ return151151+ }152152+153153+ tx, err = s.Db.Begin()154154+ if err != nil {155155+ l.Error("failed to commit verification info", "err", err)156156+ s.Pages.HxRefresh(w)157157+ return158158+ }159159+ defer func() {160160+ tx.Rollback()161161+ s.Enforcer.E.LoadPolicy()162162+ }()163163+164164+ // mark this spindle as verified in the db165165+ _, err = db.VerifySpindle(166166+ tx,167167+ db.FilterEq("owner", user.Did),168168+ db.FilterEq("instance", instance),169169+ )170170+171171+ err = s.Enforcer.AddSpindleOwner(instance, user.Did)172172+ if err != nil {173173+ l.Error("failed to update ACL", "err", err)174174+ s.Pages.HxRefresh(w)175175+ return176176+ }177177+178178+ err = tx.Commit()179179+ if err != nil {180180+ l.Error("failed to commit verification info", "err", err)181181+ s.Pages.HxRefresh(w)182182+ return183183+ }184184+185185+ err = s.Enforcer.E.SavePolicy()186186+ if err != nil {187187+ l.Error("failed to update ACL", "err", err)151188 s.Pages.HxRefresh(w)152189 return153190 }···296255 db.FilterEq("owner", user.Did),297256 db.FilterEq("instance", instance),298257 )258258+ if err != nil {259259+ l.Error("verification failed", "err", err)260260+ fail()261261+ return262262+ }299263300264 verifiedSpindle := db.Spindle{301265 Id: int(rowId),
+6-5
spindle/ingester.go
···5959 if s.cfg.Server.Dev {6060 domain = s.cfg.Server.ListenAddr6161 }6262- recordInstance := *record.Instance6262+ recordInstance := record.Instance63636464 if recordInstance != domain {6565 l.Error("domain mismatch", "domain", recordInstance, "expected", domain)6666- return fmt.Errorf("domain mismatch: %s != %s", *record.Instance, domain)6666+ return fmt.Errorf("domain mismatch: %s != %s", record.Instance, domain)6767 }68686969 ok, err := s.e.E.Enforce(did, rbacDomain, rbacDomain, "server:invite")···95959696 l := s.l.With("component", "ingester", "record", tangled.RepoNSID)97979898+ l.Info("ingesting repo record")9999+98100 switch e.Commit.Operation {99101 case models.CommitOperationCreate, models.CommitOperationUpdate:100102 raw := e.Commit.Record···108106 }109107110108 domain := s.cfg.Server.Hostname111111- if s.cfg.Server.Dev {112112- domain = s.cfg.Server.ListenAddr113113- }114109115110 // no spindle configured for this repo116111 if record.Spindle == nil {112112+ l.Info("no spindle configured", "did", record.Owner, "name", record.Name)117113 return nil118114 }119115120116 // this repo did not want this spindle121117 if *record.Spindle != domain {118118+ l.Info("different spindle configured", "did", record.Owner, "name", record.Name, "spindle", *record.Spindle, "domain", domain)122119 return nil123120 }124121