+9
-4
appview/pages/knot.html
+9
-4
appview/pages/knot.html
···
7
<p>
8
<code>
9
opened by: {{.Registration.ByDid}}
10
-
{{ if $.IsOwner }}
11
(you)
12
{{ end }}
13
</code><br>
···
22
23
{{ if .Registration.Registered }}
24
<h3> members </h3>
25
-
{{ range $.Members }}
26
<ol>
27
<li>{{.}}</li>
28
-
</ol>
29
{{ else }}
30
<p>no members</p>
31
{{ end }}
32
{{ end }}
33
34
{{ if $.IsOwner }}
35
-
<a href="/knots/{{.Registration.Domain}}/member">add member</a>
36
{{ end }}
37
{{end}}
···
7
<p>
8
<code>
9
opened by: {{.Registration.ByDid}}
10
+
{{ if eq $.User.Did $.Registration.ByDid }}
11
(you)
12
{{ end }}
13
</code><br>
···
22
23
{{ if .Registration.Registered }}
24
<h3> members </h3>
25
<ol>
26
+
{{ range $.Members }}
27
<li>{{.}}</li>
28
{{ else }}
29
<p>no members</p>
30
{{ end }}
31
{{ end }}
32
+
</ol>
33
34
{{ if $.IsOwner }}
35
+
<h3>add member</h3>
36
+
<form hx-put="/knots/{{.Registration.Domain}}/member">
37
+
<label for="member">did or handle:</label>
38
+
<input type="text" id="member" name="member" required>
39
+
<button type="text">add member</button>
40
+
</form>
41
{{ end }}
42
{{end}}
+3
-4
appview/pages/knots.html
+3
-4
appview/pages/knots.html
···
9
<form hx-post="/knots/key">
10
<label for="domain">domain:</label>
11
<input type="text" id="domain" name="domain" required>
12
-
13
-
<button type="domain">generate key</button>
14
</form>
15
16
<h3>my knots</h3>
···
18
{{range .Registrations}}
19
{{ if .Registered }}
20
<li>
21
-
<p>domain: <a href="/knots/{{.Domain}}">{{.Domain}}</a></p><br>
22
<code>opened by: {{.ByDid}}</code><br>
23
<code>on: {{.Created}}</code><br>
24
<code>registered on: {{.Registered}}</code>
···
33
{{range .Registrations}}
34
{{ if not .Registered }}
35
<li>
36
-
<code>domain: {{.Domain}}</code><br>
37
<code>opened by: {{.ByDid}}</code><br>
38
<code>on: {{.Created}}</code><br>
39
<code>pending registration</code>
···
9
<form hx-post="/knots/key">
10
<label for="domain">domain:</label>
11
<input type="text" id="domain" name="domain" required>
12
+
<button type="text">generate key</button>
13
</form>
14
15
<h3>my knots</h3>
···
17
{{range .Registrations}}
18
{{ if .Registered }}
19
<li>
20
+
<code>domain: <a href="/knots/{{.Domain}}">{{.Domain}}</a></code><br>
21
<code>opened by: {{.ByDid}}</code><br>
22
<code>on: {{.Created}}</code><br>
23
<code>registered on: {{.Registered}}</code>
···
32
{{range .Registrations}}
33
{{ if not .Registered }}
34
<li>
35
+
<code>domain: <a href="/knots/{{.Domain}}">{{.Domain}}</a></code><br>
36
<code>opened by: {{.ByDid}}</code><br>
37
<code>on: {{.Created}}</code><br>
38
<code>pending registration</code>
+1
-2
appview/state/state.go
+1
-2
appview/state/state.go
···
368
return
369
}
370
371
-
// TODO: validate member did?
372
memberIdent, err := auth.ResolveIdent(r.Context(), memberDid)
373
if err != nil {
374
w.Write([]byte("failed to resolve member did to a handle"))
···
377
378
log.Printf("adding %s to %s\n", memberIdent.Handle.String(), domain)
379
380
-
err = s.enforcer.AddMember(domain, memberDid)
381
if err != nil {
382
w.Write([]byte(fmt.Sprint("failed to add member: ", err)))
383
return
···
368
return
369
}
370
371
memberIdent, err := auth.ResolveIdent(r.Context(), memberDid)
372
if err != nil {
373
w.Write([]byte("failed to resolve member did to a handle"))
···
376
377
log.Printf("adding %s to %s\n", memberIdent.Handle.String(), domain)
378
379
+
err = s.enforcer.AddMember(domain, memberIdent.DID.String())
380
if err != nil {
381
w.Write([]byte(fmt.Sprint("failed to add member: ", err)))
382
return