diff --git a/appview/oauth/accounts.go b/appview/oauth/accounts.go --- a/appview/oauth/accounts.go +++ b/appview/oauth/accounts.go @@ -23,14 +23,11 @@ } type MultiAccountUser struct { - Active *User + Active User Accounts []AccountInfo } func (m *MultiAccountUser) Did() string { - if m.Active == nil { - return "" - } return m.Active.Did } @@ -122,7 +119,7 @@ registry := o.GetAccounts(r) return &MultiAccountUser{ - Active: &User{ + Active: User{ Did: sess.Data.AccountDID.String(), }, Accounts: registry.Accounts, diff --git a/appview/oauth/accounts_test.go b/appview/oauth/accounts_test.go --- a/appview/oauth/accounts_test.go +++ b/appview/oauth/accounts_test.go @@ -210,21 +210,3 @@ } }) } - -func TestMultiAccountUser_Did(t *testing.T) { - t.Run("with active user", func(t *testing.T) { - user := &MultiAccountUser{ - Active: &User{Did: "did:plc:test"}, - } - if user.Did() != "did:plc:test" { - t.Errorf("Did() = %s, want did:plc:test", user.Did()) - } - }) - - t.Run("with nil active", func(t *testing.T) { - user := &MultiAccountUser{Active: nil} - if user.Did() != "" { - t.Errorf("Did() = %s, want empty string", user.Did()) - } - }) -} diff --git a/appview/pages/pages.go b/appview/pages/pages.go --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -230,10 +230,10 @@ } type LoginParams struct { - ReturnUrl string - ErrorCode string - AddAccount bool - LoggedInUser *oauth.MultiAccountUser + ReturnUrl string + ErrorCode string + AddAccount bool + Accounts []oauth.AccountInfo } func (p *Pages) Login(w io.Writer, params LoginParams) error { diff --git a/appview/pulls/pulls.go b/appview/pulls/pulls.go --- a/appview/pulls/pulls.go +++ b/appview/pulls/pulls.go @@ -191,7 +191,7 @@ mergeCheckResponse := s.mergeCheck(r, f, pull, stack) branchDeleteStatus := s.branchDeleteStatus(r, f, pull) resubmitResult := pages.Unknown - if user != nil && user.Active != nil && user.Active.Did == pull.OwnerDid { + if user != nil && user.Active.Did == pull.OwnerDid { resubmitResult = s.resubmitCheck(r, f, pull, stack) } diff --git a/appview/reporesolver/resolver.go b/appview/reporesolver/resolver.go --- a/appview/reporesolver/resolver.go +++ b/appview/reporesolver/resolver.go @@ -69,7 +69,7 @@ repoAt := repo.RepoAt() isStarred := false roles := repoinfo.RolesInRepo{} - if user != nil && user.Active != nil { + if user != nil { isStarred = db.GetStarStatus(rr.execer, user.Active.Did, repoAt) roles.Roles = rr.enforcer.GetPermissionsInRepo(user.Active.Did, repo.Knot, repo.DidSlashRepo()) } diff --git a/appview/state/login.go b/appview/state/login.go --- a/appview/state/login.go +++ b/appview/state/login.go @@ -5,7 +5,6 @@ "net/http" "strings" - "tangled.org/core/appview/oauth" "tangled.org/core/appview/pages" ) @@ -18,21 +17,12 @@ errorCode := r.URL.Query().Get("error") addAccount := r.URL.Query().Get("mode") == "add_account" - user := s.oauth.GetMultiAccountUser(r) - if user == nil { - registry := s.oauth.GetAccounts(r) - if len(registry.Accounts) > 0 { - user = &oauth.MultiAccountUser{ - Active: nil, - Accounts: registry.Accounts, - } - } - } + registry := s.oauth.GetAccounts(r) s.pages.Login(w, pages.LoginParams{ - ReturnUrl: returnURL, - ErrorCode: errorCode, - AddAccount: addAccount, - LoggedInUser: user, + ReturnUrl: returnURL, + ErrorCode: errorCode, + AddAccount: addAccount, + Accounts: registry.Accounts, }) case http.MethodPost: handle := r.FormValue("handle") @@ -80,7 +70,7 @@ l := s.logger.With("handler", "Logout") currentUser := s.oauth.GetMultiAccountUser(r) - if currentUser == nil || currentUser.Active == nil { + if currentUser == nil { s.pages.HxRedirect(w, "/login") return } diff --git a/appview/state/state.go b/appview/state/state.go --- a/appview/state/state.go +++ b/appview/state/state.go @@ -248,7 +248,7 @@ filtered := false var userDid string - if user != nil && user.Active != nil { + if user != nil { userDid = user.Active.Did } timeline, err := db.MakeTimeline(s.db, 50, userDid, filtered) diff --git a/appview/pages/templates/user/login.html b/appview/pages/templates/user/login.html --- a/appview/pages/templates/user/login.html +++ b/appview/pages/templates/user/login.html @@ -31,14 +31,13 @@ {{ end }} - {{ if and .LoggedInUser .LoggedInUser.Accounts }} - {{ $accounts := .LoggedInUser.Accounts }} + {{ if .Accounts }}
Saved accounts
- {{ range $accounts }} + {{ range .Accounts }}