forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

restore knot page

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

Changed files
+29 -6
appview
pages
state
+1
appview/pages/pages.go
···
type KnotParams struct {
LoggedInUser *auth.User
+
DidHandleMap map[string]string
Registration *db.Registration
Members []string
IsOwner bool
+8 -4
appview/pages/templates/knot.html
···
<dl class="grid grid-cols-[auto_1fr] gap-x-4 dark:text-gray-200">
<dt class="font-bold">opened by</dt>
<dd>
-
@{{ .Registration.ByDid }}
+
<span>
+
{{ index $.DidHandleMap .Registration.ByDid }} <span class="text-gray-500 dark:text-gray-400 font-mono">{{ .Registration.ByDid }}</span>
+
</span>
{{ if eq $.LoggedInUser.Did $.Registration.ByDid }}
<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>
{{ end }}
···
<div id="member-list" class="flex flex-col gap-4">
{{ range $.Members }}
<div class="inline-flex items-center gap-4">
-
{{ i "user" "w-3 h-3 dark:text-gray-300" }}
-
<a href="/{{.}}" class="text-gray-900 dark:text-white">{{.}}</a>
+
{{ i "user" "w-4 h-4 dark:text-gray-300" }}
+
<a href="/{{index $.DidHandleMap .}}" class="text-gray-900 dark:text-white">{{index $.DidHandleMap .}}
+
<span class="text-gray-500 dark:text-gray-400 font-mono">{{.}}</span>
+
</a>
</div>
{{ else }}
<p class="text-gray-500 dark:text-gray-400">No members have been added yet.</p>
···
</form>
</section>
{{ end }}
-
{{ end }}
+
{{ end }}
+4 -2
appview/pages/templates/knots.html
···
<div class="flex flex-col gap-1">
<div class="inline-flex items-center gap-4">
{{ i "git-branch" "w-3 h-3 dark:text-gray-300" }}
-
<p class="font-bold dark:text-white">{{ .Domain }}</p>
+
<a href="/knots/{{ .Domain }}">
+
<p class="font-bold dark:text-white">{{ .Domain }}</p>
+
</a>
</div>
<p class="text-sm text-gray-500 dark:text-gray-400">owned by {{ .ByDid }}</p>
<p class="text-sm text-gray-500 dark:text-gray-400">registered {{ .Registered | timeFmt }}</p>
···
</div>
</section>
</div>
-
{{ end }}
+
{{ end }}
+16
appview/state/state.go
···
}
}
+
var didsToResolve []string
+
for _, m := range members {
+
didsToResolve = append(didsToResolve, m)
+
}
+
didsToResolve = append(didsToResolve, reg.ByDid)
+
resolvedIds := s.resolver.ResolveIdents(r.Context(), didsToResolve)
+
didHandleMap := make(map[string]string)
+
for _, identity := range resolvedIds {
+
if !identity.Handle.IsInvalidHandle() {
+
didHandleMap[identity.DID.String()] = fmt.Sprintf("@%s", identity.Handle.String())
+
} else {
+
didHandleMap[identity.DID.String()] = identity.DID.String()
+
}
+
}
+
ok, err := s.enforcer.IsServerOwner(user.Did, domain)
isOwner := err == nil && ok
p := pages.KnotParams{
LoggedInUser: user,
+
DidHandleMap: didHandleMap,
Registration: reg,
Members: members,
IsOwner: isOwner,