rename package web/user to web/members
This commit is contained in:
parent
4f723ab050
commit
dde6549f02
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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 )
|
Loading…
Reference in New Issue