forked from tangled.org/core
Monorepo for Tangled

appview: add member to knot1 by default

We're open to public!

anirudh.fi 05bfa4df f6f63fe1

verified
Changed files
+42 -2
appview
state
+37 -1
appview/state/state.go
··· 97 97 if err != nil { 98 98 log.Printf("rendering login page: %s", err) 99 99 } 100 + 100 101 return 101 102 case http.MethodPost: 102 103 handle := strings.TrimPrefix(r.FormValue("handle"), "@") ··· 123 124 } 124 125 125 126 log.Printf("successfully saved session for %s (%s)", atSession.Handle, atSession.Did) 127 + 128 + did := resolved.DID.String() 129 + defaultKnot := "knot1.tangled.sh" 130 + 131 + go func() { 132 + log.Printf("adding %s to default knot", did) 133 + err = s.enforcer.AddMember(defaultKnot, did) 134 + if err != nil { 135 + log.Println("failed to add user to knot1.tangled.sh: ", err) 136 + return 137 + } 138 + err = s.enforcer.E.SavePolicy() 139 + if err != nil { 140 + log.Println("failed to add user to knot1.tangled.sh: ", err) 141 + return 142 + } 143 + 144 + secret, err := db.GetRegistrationKey(s.db, defaultKnot) 145 + if err != nil { 146 + log.Println("failed to get registration key for knot1.tangled.sh") 147 + return 148 + } 149 + signedClient, err := NewSignedClient(defaultKnot, secret, s.config.Dev) 150 + resp, err := signedClient.AddMember(did) 151 + if err != nil { 152 + log.Println("failed to add user to knot1.tangled.sh: ", err) 153 + return 154 + } 155 + 156 + if resp.StatusCode != http.StatusNoContent { 157 + log.Println("failed to add user to knot1.tangled.sh: ", resp.StatusCode) 158 + return 159 + } 160 + }() 161 + 126 162 s.pages.HxRedirect(w, "/") 127 163 return 128 164 } ··· 513 549 case http.MethodGet: 514 550 user := s.auth.GetUser(r) 515 551 knots, err := s.enforcer.GetDomainsForUser(user.Did) 516 - 517 552 if err != nil { 518 553 s.pages.Notice(w, "repo", "Invalid user account.") 519 554 return ··· 523 558 LoggedInUser: user, 524 559 Knots: knots, 525 560 }) 561 + 526 562 case http.MethodPost: 527 563 user := s.auth.GetUser(r) 528 564
+5 -1
readme.md
··· 1 1 # tangled 2 2 3 - Hello Tanglers! This is the codebase for [Tangled](https://tangled.sh)—a code collaboration platform built on the [AT Protocol](https://atproto.com). 3 + Hello Tanglers! This is the codebase for 4 + [Tangled](https://tangled.sh)—a code collaboration platform built 5 + on the [AT Protocol](https://atproto.com). 6 + 7 + Read the introduction to Tangled [here](https://blog.tangled.sh/intro).