rename package web/user to web/members

This commit is contained in:
Henry 2021-03-22 15:25:00 +01:00
parent 4f723ab050
commit dde6549f02
6 changed files with 25 additions and 24 deletions

View File

@ -12,8 +12,8 @@ import (
"github.com/ssb-ngi-pointer/go-ssb-room/roomdb"
"github.com/ssb-ngi-pointer/go-ssb-room/web"
weberrors "github.com/ssb-ngi-pointer/go-ssb-room/web/errors"
"github.com/ssb-ngi-pointer/go-ssb-room/web/members"
"github.com/ssb-ngi-pointer/go-ssb-room/web/router"
"github.com/ssb-ngi-pointer/go-ssb-room/web/user"
)
type invitesHandler struct {
@ -54,14 +54,14 @@ func (h invitesHandler) create(w http.ResponseWriter, req *http.Request) (interf
return nil, fmt.Errorf("bad request: %w", err)
}
user := user.FromContext(req.Context())
if user == nil {
member := members.FromContext(req.Context())
if member == nil {
return nil, fmt.Errorf("warning: no user session for elevated access request")
}
aliasSuggestion := req.Form.Get("alias_suggestion")
token, err := h.db.Create(req.Context(), user.ID, aliasSuggestion)
token, err := h.db.Create(req.Context(), member.ID, aliasSuggestion)
if err != nil {
return nil, err
}

View File

@ -14,7 +14,7 @@ import (
"github.com/gorilla/csrf"
"github.com/ssb-ngi-pointer/go-ssb-room/roomdb"
weberrors "github.com/ssb-ngi-pointer/go-ssb-room/web/errors"
"github.com/ssb-ngi-pointer/go-ssb-room/web/user"
"github.com/ssb-ngi-pointer/go-ssb-room/web/members"
)
type membersHandler struct {
@ -78,8 +78,8 @@ func (h membersHandler) changeRole(w http.ResponseWriter, req *http.Request) {
return
}
currentUser := user.FromContext(req.Context())
if currentUser == nil || currentUser.Role != roomdb.RoleAdmin {
currentMember := members.FromContext(req.Context())
if currentMember == nil || currentMember.Role != roomdb.RoleAdmin {
// TODO: proper error type
h.r.Error(w, req, http.StatusForbidden, fmt.Errorf("not an admin"))
return

View File

@ -20,8 +20,8 @@ import (
"github.com/ssb-ngi-pointer/go-ssb-room/roomdb/mockdb"
"github.com/ssb-ngi-pointer/go-ssb-room/roomstate"
"github.com/ssb-ngi-pointer/go-ssb-room/web"
"github.com/ssb-ngi-pointer/go-ssb-room/web/members"
"github.com/ssb-ngi-pointer/go-ssb-room/web/router"
"github.com/ssb-ngi-pointer/go-ssb-room/web/user"
)
type testSession struct {
@ -112,7 +112,7 @@ func newSession(t *testing.T) *testSession {
},
)
handler = user.MiddlewareForTests(ts.User)(handler)
handler = members.MiddlewareForTests(ts.User)(handler)
ts.Mux.Handle("/", handler)

View File

@ -27,8 +27,8 @@ import (
"github.com/ssb-ngi-pointer/go-ssb-room/web/handlers/admin"
roomsAuth "github.com/ssb-ngi-pointer/go-ssb-room/web/handlers/auth"
"github.com/ssb-ngi-pointer/go-ssb-room/web/i18n"
"github.com/ssb-ngi-pointer/go-ssb-room/web/members"
"github.com/ssb-ngi-pointer/go-ssb-room/web/router"
"github.com/ssb-ngi-pointer/go-ssb-room/web/user"
)
var HTMLTemplates = []string{
@ -136,7 +136,7 @@ func New(
return u
}
}),
render.InjectTemplateFunc("is_logged_in", user.TemplateHelper()),
render.InjectTemplateFunc("is_logged_in", members.TemplateHelper()),
)
if err != nil {
return nil, fmt.Errorf("web Handler: failed to create renderer: %w", err)
@ -297,7 +297,7 @@ func New(
// apply HTTP middleware
middlewares := []func(http.Handler) http.Handler{
logging.InjectHandler(logger),
user.ContextInjecter(dbs.Members, a),
members.ContextInjecter(dbs.Members, a),
CSRF,
}

View File

@ -1,5 +1,5 @@
// Package user implements helpers for accessing the currently logged in admin or moderator of an active request.
package user
// Package members implements helpers for accessing the currently logged in admin or moderator of an active request.
package members
import (
"context"
@ -11,9 +11,9 @@ import (
type roomMemberContextKeyType string
var roomMemberContextKey roomMemberContextKeyType = "ssb:room:httpcontext:user"
var roomMemberContextKey roomMemberContextKeyType = "ssb:room:httpcontext:member"
// FromContext returns the user or nil if not logged in
// FromContext returns the member or nil if not logged in
func FromContext(ctx context.Context) *roomdb.Member {
v := ctx.Value(roomMemberContextKey)
@ -25,7 +25,8 @@ func FromContext(ctx context.Context) *roomdb.Member {
return &m
}
// ContextInjecter returns middleware for injecting a user id into the request context
// ContextInjecter returns middleware for injecting a member into the context of the request.
// Retreive it using FromContext(ctx)
func ContextInjecter(mdb roomdb.MembersService, a *auth.Handler) func(http.Handler) http.Handler {
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
@ -41,13 +42,13 @@ func ContextInjecter(mdb roomdb.MembersService, a *auth.Handler) func(http.Handl
return
}
user, err := mdb.GetByID(req.Context(), mid)
member, err := mdb.GetByID(req.Context(), mid)
if err != nil {
next.ServeHTTP(w, req)
return
}
ctx := context.WithValue(req.Context(), roomMemberContextKey, user)
ctx := context.WithValue(req.Context(), roomMemberContextKey, member)
next.ServeHTTP(w, req.WithContext(ctx))
})
}
@ -59,12 +60,12 @@ func TemplateHelper() func(*http.Request) interface{} {
return func(r *http.Request) interface{} {
no := func() *roomdb.Member { return nil }
user := FromContext(r.Context())
if user == nil {
member := FromContext(r.Context())
if member == nil {
return no
}
yes := func() *roomdb.Member { return user }
yes := func() *roomdb.Member { return member }
return yes
}
}

View File

@ -1,4 +1,4 @@
package user
package members
import (
"context"
@ -7,7 +7,7 @@ import (
"github.com/ssb-ngi-pointer/go-ssb-room/roomdb"
)
// MiddlewareForTests gives us a way to inject _test users_. It should not be used in production.
// MiddlewareForTests gives us a way to inject _test members_. It should not be used in production.
// This is part of testing.go because we need to use roomMemberContextKey, which shouldn't be exported either.
// TODO: could be protected with an extra build tag.
// (Sadly +build test does not exist https://github.com/golang/go/issues/21360 )