web/handlers
This commit is contained in:
parent
92a6dcfb55
commit
8c48b4a2b8
|
@ -19,7 +19,7 @@ import (
|
|||
type aliasHandler struct {
|
||||
r *render.Renderer
|
||||
|
||||
db roomdb.AliasService
|
||||
db roomdb.AliasesService
|
||||
|
||||
muxrpcHostAndPort string
|
||||
roomID refs.FeedRef
|
||||
|
|
|
@ -29,8 +29,8 @@ func Handler(m *mux.Router, r *render.Renderer, a *auth.Handler) http.Handler {
|
|||
}))
|
||||
|
||||
// hook up the auth handler to the router
|
||||
m.Get(router.AuthFallbackSignIn).HandlerFunc(ah.Authorize)
|
||||
m.Get(router.AuthFallbackSignOut).HandlerFunc(ah.Logout)
|
||||
m.Get(router.AuthFallbackSignIn).HandlerFunc(a.Authorize)
|
||||
m.Get(router.AuthFallbackSignOut).HandlerFunc(a.Logout)
|
||||
|
||||
return m
|
||||
}
|
||||
|
|
|
@ -7,10 +7,11 @@ import (
|
|||
"net/url"
|
||||
"testing"
|
||||
|
||||
"github.com/ssb-ngi-pointer/go-ssb-room/web/router"
|
||||
"github.com/ssb-ngi-pointer/go-ssb-room/web/webassert"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/ssb-ngi-pointer/go-ssb-room/web/router"
|
||||
"github.com/ssb-ngi-pointer/go-ssb-room/web/webassert"
|
||||
refs "go.mindeco.de/ssb-refs"
|
||||
)
|
||||
|
||||
|
|
|
@ -44,12 +44,11 @@ var HTMLTemplates = []string{
|
|||
|
||||
// Databases is an options stuct for the required databases of the web handlers
|
||||
type Databases struct {
|
||||
Aliases roomdb.AliasService
|
||||
AuthWithSSB roomdb.AuthWithSSBService
|
||||
Aliases roomdb.AliasesService
|
||||
AuthFallback roomdb.AuthFallbackService
|
||||
AllowList roomdb.AllowListService
|
||||
Invites roomdb.InviteService
|
||||
Invites roomdb.InvitesService
|
||||
Notices roomdb.NoticesService
|
||||
Members roomdb.MembersService
|
||||
PinnedNotices roomdb.PinnedNoticesService
|
||||
}
|
||||
|
||||
|
@ -234,7 +233,7 @@ func New(
|
|||
roomState,
|
||||
admin.Databases{
|
||||
Aliases: dbs.Aliases,
|
||||
AllowList: dbs.AllowList,
|
||||
Members: dbs.Members,
|
||||
Invites: dbs.Invites,
|
||||
Notices: dbs.Notices,
|
||||
PinnedNotices: dbs.PinnedNotices,
|
||||
|
@ -296,7 +295,7 @@ func New(
|
|||
// apply HTTP middleware
|
||||
middlewares := []func(http.Handler) http.Handler{
|
||||
logging.InjectHandler(logger),
|
||||
user.ContextInjecter(dbs.AuthFallback, a),
|
||||
user.ContextInjecter(dbs.Members, a),
|
||||
CSRF,
|
||||
}
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@ import (
|
|||
)
|
||||
|
||||
type inviteHandler struct {
|
||||
invites roomdb.InviteService
|
||||
aliases roomdb.AliasService
|
||||
invites roomdb.InvitesService
|
||||
aliases roomdb.AliasesService
|
||||
|
||||
muxrpcHostAndPort string
|
||||
roomPubKey ed25519.PublicKey
|
||||
|
|
|
@ -119,12 +119,12 @@ func TestNoticesEditButtonVisible(t *testing.T) {
|
|||
}
|
||||
|
||||
// have the database return okay for any user
|
||||
testUser := &roomdb.User{
|
||||
ID: 23,
|
||||
Name: "test admin",
|
||||
testUser := roomdb.Member{
|
||||
ID: 23,
|
||||
Nickname: "test admin",
|
||||
}
|
||||
ts.AuthFallbackDB.CheckReturns(testUser.ID, nil)
|
||||
ts.AuthFallbackDB.GetByIDReturns(testUser, nil)
|
||||
ts.MembersDB.GetByIDReturns(testUser, nil)
|
||||
|
||||
postEndpoint, err := ts.Router.Get(router.AuthFallbackSignIn).URL()
|
||||
r.Nil(err)
|
||||
|
@ -161,9 +161,11 @@ func TestNoticesEditButtonVisible(t *testing.T) {
|
|||
ts.Client.ClearHeaders()
|
||||
ts.Client.SetHeaders(sessionHeader)
|
||||
|
||||
cnt := ts.MembersDB.GetByIDCallCount()
|
||||
// now we are logged in, anchor tag should be there
|
||||
doc, resp = ts.Client.GetHTML(noticeURL.String())
|
||||
a.Equal(http.StatusOK, resp.Code)
|
||||
a.Equal(cnt+1, ts.MembersDB.GetByIDCallCount())
|
||||
|
||||
a.EqualValues(1, doc.Find(editButtonSelector).Length())
|
||||
}
|
||||
|
|
|
@ -34,9 +34,9 @@ type testSession struct {
|
|||
// mocked dbs
|
||||
AuthDB *mockdb.FakeAuthWithSSBService
|
||||
AuthFallbackDB *mockdb.FakeAuthFallbackService
|
||||
AliasesDB *mockdb.FakeAliasService
|
||||
AllowListDB *mockdb.FakeAllowListService
|
||||
InvitesDB *mockdb.FakeInviteService
|
||||
AliasesDB *mockdb.FakeAliasesService
|
||||
MembersDB *mockdb.FakeMembersService
|
||||
InvitesDB *mockdb.FakeInvitesService
|
||||
PinnedDB *mockdb.FakePinnedNoticesService
|
||||
NoticeDB *mockdb.FakeNoticesService
|
||||
|
||||
|
@ -63,9 +63,9 @@ func setup(t *testing.T) *testSession {
|
|||
|
||||
ts.AuthDB = new(mockdb.FakeAuthWithSSBService)
|
||||
ts.AuthFallbackDB = new(mockdb.FakeAuthFallbackService)
|
||||
ts.AliasesDB = new(mockdb.FakeAliasService)
|
||||
ts.AllowListDB = new(mockdb.FakeAllowListService)
|
||||
ts.InvitesDB = new(mockdb.FakeInviteService)
|
||||
ts.AliasesDB = new(mockdb.FakeAliasesService)
|
||||
ts.MembersDB = new(mockdb.FakeMembersService)
|
||||
ts.InvitesDB = new(mockdb.FakeInvitesService)
|
||||
ts.PinnedDB = new(mockdb.FakePinnedNoticesService)
|
||||
defaultNotice := &roomdb.Notice{
|
||||
Title: "Default Notice Title",
|
||||
|
@ -98,9 +98,8 @@ func setup(t *testing.T) *testSession {
|
|||
ts.RoomState,
|
||||
Databases{
|
||||
Aliases: ts.AliasesDB,
|
||||
AuthWithSSB: ts.AuthDB,
|
||||
AuthFallback: ts.AuthFallbackDB,
|
||||
AllowList: ts.AllowListDB,
|
||||
Members: ts.MembersDB,
|
||||
Invites: ts.InvitesDB,
|
||||
Notices: ts.NoticeDB,
|
||||
PinnedNotices: ts.PinnedDB,
|
||||
|
|
|
@ -17,12 +17,12 @@ var roomMemberContextKey roomMemberContextKeyType = "ssb:room:httpcontext:user"
|
|||
func FromContext(ctx context.Context) *roomdb.Member {
|
||||
v := ctx.Value(roomMemberContextKey)
|
||||
|
||||
m, ok := v.(*roomdb.Member)
|
||||
m, ok := v.(roomdb.Member)
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
|
||||
return m
|
||||
return &m
|
||||
}
|
||||
|
||||
// ContextInjecter returns middleware for injecting a user id into the request context
|
||||
|
|
Loading…
Reference in New Issue