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 @@ -309,10 +309,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 @@ -105,7 +105,7 @@ switch r.Method { case http.MethodGet: user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -162,7 +162,7 @@ l := s.logger.With("handler", "repoPullHelper", "interdiff", interdiff) user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -209,7 +209,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) } @@ -503,7 +503,7 @@ l := s.logger.With("handler", "RepoPulls") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -800,7 +800,7 @@ l := s.logger.With("handler", "PullComment") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -917,7 +917,7 @@ l := s.logger.With("handler", "NewPull") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -1601,7 +1601,7 @@ l := s.logger.With("handler", "CompareForksFragment") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -1622,7 +1622,7 @@ l := s.logger.With("handler", "CompareForksBranchesFragment") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -1702,7 +1702,7 @@ l := s.logger.With("handler", "ResubmitPull") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -1739,7 +1739,7 @@ l := s.logger.With("handler", "resubmitPatch") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -1772,7 +1772,7 @@ l := s.logger.With("handler", "resubmitBranch") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -1842,7 +1842,7 @@ l := s.logger.With("handler", "resubmitFork") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -2299,7 +2299,7 @@ l := s.logger.With("handler", "MergePull") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -2424,7 +2424,7 @@ l := s.logger.With("handler", "ClosePull") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } @@ -2500,7 +2500,7 @@ l := s.logger.With("handler", "ReopenPull") user := s.oauth.GetMultiAccountUser(r) - if user != nil && user.Active != nil { + if user != nil { l = l.With("user", user.Active.Did) } diff --git a/appview/reporesolver/resolver.go b/appview/reporesolver/resolver.go --- a/appview/reporesolver/resolver.go +++ b/appview/reporesolver/resolver.go @@ -77,7 +77,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.RepoIdentifier()) } diff --git a/appview/state/login.go b/appview/state/login.go --- a/appview/state/login.go +++ b/appview/state/login.go @@ -11,7 +11,6 @@ "github.com/bluesky-social/indigo/atproto/identity" "github.com/bluesky-social/indigo/atproto/syntax" "github.com/bluesky-social/indigo/xrpc" - "tangled.org/core/appview/oauth" "tangled.org/core/appview/pages" ) @@ -24,21 +23,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") @@ -139,7 +129,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/timeline.go b/appview/state/timeline.go --- a/appview/state/timeline.go +++ b/appview/state/timeline.go @@ -47,7 +47,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 @@ -11,14 +11,13 @@ {{ end }} - {{ if and .LoggedInUser .LoggedInUser.Accounts }} - {{ $accounts := .LoggedInUser.Accounts }} + {{ if .Accounts }}