+3
appview/config/config.go
+3
appview/config/config.go
+20
-18
appview/oauth/handler/handler.go
+20
-18
appview/oauth/handler/handler.go
···
354
354
}
355
355
356
356
var (
357
-
tangledHandle = "tangled.sh"
358
-
tangledDid = "did:plc:wshs7t2adsemcrrd4snkeqli"
357
+
tangledDid = "did:plc:wshs7t2adsemcrrd4snkeqli"
358
+
icyDid = "did:plc:hwevmowznbiukdf6uk5dwrrq"
359
+
359
360
defaultSpindle = "spindle.tangled.sh"
360
361
defaultKnot = "knot1.tangled.sh"
361
362
)
···
379
380
}
380
381
381
382
log.Printf("adding %s to default spindle", did)
382
-
session, err := o.createAppPasswordSession()
383
+
session, err := o.createAppPasswordSession(o.config.Core.AppPassword, tangledDid)
383
384
if err != nil {
384
385
log.Printf("failed to create session: %s", err)
385
386
return
···
392
393
CreatedAt: time.Now().Format(time.RFC3339),
393
394
}
394
395
395
-
if err := session.putRecord(record); err != nil {
396
-
log.Printf("failed to add member to default knot: %s", err)
396
+
if err := session.putRecord(record, tangled.SpindleMemberNSID); err != nil {
397
+
log.Printf("failed to add member to default spindle: %s", err)
397
398
return
398
399
}
399
400
···
416
417
}
417
418
418
419
log.Printf("adding %s to default knot", did)
419
-
session, err := o.createAppPasswordSession()
420
+
session, err := o.createAppPasswordSession(o.config.Core.TmpAltAppPassword, icyDid)
420
421
if err != nil {
421
422
log.Printf("failed to create session: %s", err)
422
423
return
···
429
430
CreatedAt: time.Now().Format(time.RFC3339),
430
431
}
431
432
432
-
if err := session.putRecord(record); err != nil {
433
+
if err := session.putRecord(record, tangled.KnotMemberNSID); err != nil {
433
434
log.Printf("failed to add member to default knot: %s", err)
434
435
return
435
436
}
···
441
442
type session struct {
442
443
AccessJwt string `json:"accessJwt"`
443
444
PdsEndpoint string
445
+
Did string
444
446
}
445
447
446
-
func (o *OAuthHandler) createAppPasswordSession() (*session, error) {
447
-
appPassword := o.config.Core.AppPassword
448
+
func (o *OAuthHandler) createAppPasswordSession(appPassword, did string) (*session, error) {
448
449
if appPassword == "" {
449
450
return nil, fmt.Errorf("no app password configured, skipping member addition")
450
451
}
451
452
452
-
resolved, err := o.idResolver.ResolveIdent(context.Background(), tangledDid)
453
+
resolved, err := o.idResolver.ResolveIdent(context.Background(), did)
453
454
if err != nil {
454
-
return nil, fmt.Errorf("failed to resolve tangled.sh DID %s: %v", tangledDid, err)
455
+
return nil, fmt.Errorf("failed to resolve tangled.sh DID %s: %v", did, err)
455
456
}
456
457
457
458
pdsEndpoint := resolved.PDSEndpoint()
458
459
if pdsEndpoint == "" {
459
-
return nil, fmt.Errorf("no PDS endpoint found for tangled.sh DID %s", tangledDid)
460
+
return nil, fmt.Errorf("no PDS endpoint found for tangled.sh DID %s", did)
460
461
}
461
462
462
463
sessionPayload := map[string]string{
463
-
"identifier": tangledHandle,
464
+
"identifier": did,
464
465
"password": appPassword,
465
466
}
466
467
sessionBytes, err := json.Marshal(sessionPayload)
···
492
493
}
493
494
494
495
session.PdsEndpoint = pdsEndpoint
496
+
session.Did = did
495
497
496
498
return &session, nil
497
499
}
498
500
499
-
func (s *session) putRecord(record any) error {
501
+
func (s *session) putRecord(record any, collection string) error {
500
502
recordBytes, err := json.Marshal(record)
501
503
if err != nil {
502
504
return fmt.Errorf("failed to marshal knot member record: %w", err)
503
505
}
504
506
505
507
payload := map[string]any{
506
-
"repo": tangledDid,
507
-
"collection": tangled.KnotMemberNSID,
508
+
"repo": s.Did,
509
+
"collection": collection,
508
510
"rkey": tid.TID(),
509
511
"record": json.RawMessage(recordBytes),
510
512
}
···
526
528
client := &http.Client{Timeout: 30 * time.Second}
527
529
resp, err := client.Do(req)
528
530
if err != nil {
529
-
return fmt.Errorf("failed to add user to default Knot: %w", err)
531
+
return fmt.Errorf("failed to add user to default service: %w", err)
530
532
}
531
533
defer resp.Body.Close()
532
534
533
535
if resp.StatusCode != http.StatusOK {
534
-
return fmt.Errorf("failed to add user to default Knot: HTTP %d", resp.StatusCode)
536
+
return fmt.Errorf("failed to add user to default service: HTTP %d", resp.StatusCode)
535
537
}
536
538
537
539
return nil