forked from tangled.org/core
Monorepo for Tangled

restore knot page

seems to have been unlinked accidentally. this restores it + resolves DIDs in that page.

authored by oppi.li and committed by Tangled 7901ade3 ac3555a1

Changed files
+29 -6
appview
pages
state
+1
appview/pages/pages.go
··· 139 140 type KnotParams struct { 141 LoggedInUser *auth.User 142 Registration *db.Registration 143 Members []string 144 IsOwner bool
··· 139 140 type KnotParams struct { 141 LoggedInUser *auth.User 142 + DidHandleMap map[string]string 143 Registration *db.Registration 144 Members []string 145 IsOwner bool
+8 -4
appview/pages/templates/knot.html
··· 17 <dl class="grid grid-cols-[auto_1fr] gap-x-4 dark:text-gray-200"> 18 <dt class="font-bold">opened by</dt> 19 <dd> 20 - @{{ .Registration.ByDid }} 21 {{ if eq $.LoggedInUser.Did $.Registration.ByDid }} 22 <span class="text-xs bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200 px-2 py-1 rounded ml-2">you</span> 23 {{ end }} ··· 57 <div id="member-list" class="flex flex-col gap-4"> 58 {{ range $.Members }} 59 <div class="inline-flex items-center gap-4"> 60 - {{ i "user" "w-3 h-3 dark:text-gray-300" }} 61 - <a href="/{{.}}" class="text-gray-900 dark:text-white">{{.}}</a> 62 </div> 63 {{ else }} 64 <p class="text-gray-500 dark:text-gray-400">No members have been added yet.</p> ··· 91 </form> 92 </section> 93 {{ end }} 94 - {{ end }}
··· 17 <dl class="grid grid-cols-[auto_1fr] gap-x-4 dark:text-gray-200"> 18 <dt class="font-bold">opened by</dt> 19 <dd> 20 + <span> 21 + {{ index $.DidHandleMap .Registration.ByDid }} <span class="text-gray-500 dark:text-gray-400 font-mono">{{ .Registration.ByDid }}</span> 22 + </span> 23 {{ if eq $.LoggedInUser.Did $.Registration.ByDid }} 24 <span class="text-xs bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200 px-2 py-1 rounded ml-2">you</span> 25 {{ end }} ··· 59 <div id="member-list" class="flex flex-col gap-4"> 60 {{ range $.Members }} 61 <div class="inline-flex items-center gap-4"> 62 + {{ i "user" "w-4 h-4 dark:text-gray-300" }} 63 + <a href="/{{index $.DidHandleMap .}}" class="text-gray-900 dark:text-white">{{index $.DidHandleMap .}} 64 + <span class="text-gray-500 dark:text-gray-400 font-mono">{{.}}</span> 65 + </a> 66 </div> 67 {{ else }} 68 <p class="text-gray-500 dark:text-gray-400">No members have been added yet.</p> ··· 95 </form> 96 </section> 97 {{ end }} 98 + {{ end }}
+4 -2
appview/pages/templates/knots.html
··· 36 <div class="flex flex-col gap-1"> 37 <div class="inline-flex items-center gap-4"> 38 {{ i "git-branch" "w-3 h-3 dark:text-gray-300" }} 39 - <p class="font-bold dark:text-white">{{ .Domain }}</p> 40 </div> 41 <p class="text-sm text-gray-500 dark:text-gray-400">owned by {{ .ByDid }}</p> 42 <p class="text-sm text-gray-500 dark:text-gray-400">registered {{ .Registered | timeFmt }}</p> ··· 83 </div> 84 </section> 85 </div> 86 - {{ end }}
··· 36 <div class="flex flex-col gap-1"> 37 <div class="inline-flex items-center gap-4"> 38 {{ i "git-branch" "w-3 h-3 dark:text-gray-300" }} 39 + <a href="/knots/{{ .Domain }}"> 40 + <p class="font-bold dark:text-white">{{ .Domain }}</p> 41 + </a> 42 </div> 43 <p class="text-sm text-gray-500 dark:text-gray-400">owned by {{ .ByDid }}</p> 44 <p class="text-sm text-gray-500 dark:text-gray-400">registered {{ .Registered | timeFmt }}</p> ··· 85 </div> 86 </section> 87 </div> 88 + {{ end }}
+16
appview/state/state.go
··· 420 } 421 } 422 423 ok, err := s.enforcer.IsServerOwner(user.Did, domain) 424 isOwner := err == nil && ok 425 426 p := pages.KnotParams{ 427 LoggedInUser: user, 428 Registration: reg, 429 Members: members, 430 IsOwner: isOwner,
··· 420 } 421 } 422 423 + var didsToResolve []string 424 + for _, m := range members { 425 + didsToResolve = append(didsToResolve, m) 426 + } 427 + didsToResolve = append(didsToResolve, reg.ByDid) 428 + resolvedIds := s.resolver.ResolveIdents(r.Context(), didsToResolve) 429 + didHandleMap := make(map[string]string) 430 + for _, identity := range resolvedIds { 431 + if !identity.Handle.IsInvalidHandle() { 432 + didHandleMap[identity.DID.String()] = fmt.Sprintf("@%s", identity.Handle.String()) 433 + } else { 434 + didHandleMap[identity.DID.String()] = identity.DID.String() 435 + } 436 + } 437 + 438 ok, err := s.enforcer.IsServerOwner(user.Did, domain) 439 isOwner := err == nil && ok 440 441 p := pages.KnotParams{ 442 LoggedInUser: user, 443 + DidHandleMap: didHandleMap, 444 Registration: reg, 445 Members: members, 446 IsOwner: isOwner,