various fixes

This commit is contained in:
Henry 2021-03-19 14:02:19 +01:00
parent fdedccfc8b
commit a0be3e998b
9 changed files with 38 additions and 25 deletions

View File

@ -31,16 +31,11 @@ func main() {
var (
repoPath string
role roomdb.Role
role roomdb.Role = roomdb.RoleAdmin
)
flag.StringVar(&repoPath, "repo", filepath.Join(u.HomeDir, ".ssb-go-room"), "where the repo of the room is located")
flag.Func("role", "which role the new member should have (ie moderator, admin, member. defaults to admin)", func(val string) error {
if val == "" {
role = roomdb.RoleAdmin
return nil
}
switch strings.ToLower(val) {
case "admin":
role = roomdb.RoleAdmin
@ -58,7 +53,7 @@ func main() {
flag.Parse()
if len(os.Args) != 2 {
if len(os.Args) != 3 {
fmt.Fprintf(os.Stderr, "usage: %s <user-name> <@theirPublicKey.ed25519>\n", os.Args[0])
flag.Usage()
os.Exit(1)
@ -70,7 +65,8 @@ func main() {
check(err)
defer db.Close()
pubKey, err := refs.ParseFeedRef(os.Args[1])
pubKey, err := refs.ParseFeedRef(os.Args[2])
check(err)
fmt.Fprintln(os.Stderr, "Enter Password: ")
bytePassword, err := terminal.ReadPassword(int(syscall.Stdin))

View File

@ -247,7 +247,7 @@ func runroomsrv() error {
handlers.Databases{
Aliases: db.Aliases,
AuthFallback: db.AuthFallback,
DeniedList: db.DeniedList,
DeniedKeys: db.DeniedKeys,
Invites: db.Invites,
Notices: db.Notices,
Members: db.Members,

View File

@ -9,8 +9,6 @@ import (
"testing"
"time"
"github.com/ssb-ngi-pointer/go-ssb-room/roomdb"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.cryptoscope.co/muxrpc/v2"
@ -18,6 +16,7 @@ import (
"github.com/ssb-ngi-pointer/go-ssb-room/aliases"
"github.com/ssb-ngi-pointer/go-ssb-room/internal/maybemod/keys"
"github.com/ssb-ngi-pointer/go-ssb-room/roomdb"
"github.com/ssb-ngi-pointer/go-ssb-room/roomsrv"
)

View File

@ -102,6 +102,7 @@ func TestInvitesCreateForm(t *testing.T) {
func TestInvitesCreate(t *testing.T) {
ts := newSession(t)
a := assert.New(t)
r := require.New(t)
urlTo := web.NewURLTo(ts.Router)
urlRemove := urlTo(router.AdminInvitesCreate)
@ -114,7 +115,7 @@ func TestInvitesCreate(t *testing.T) {
})
a.Equal(http.StatusOK, rec.Code)
a.Equal(1, ts.InvitesDB.CreateCallCount())
r.Equal(1, ts.InvitesDB.CreateCallCount(), "expected one invites.Create call")
_, userID, aliasSuggestion := ts.InvitesDB.CreateArgsForCall(0)
a.EqualValues(ts.User.ID, userID)
a.EqualValues("jerry", aliasSuggestion)

View File

@ -36,7 +36,7 @@ type testSession struct {
MembersDB *mockdb.FakeMembersService
PinnedDB *mockdb.FakePinnedNoticesService
User *roomdb.Member
User roomdb.Member
Domain string
@ -63,7 +63,7 @@ func newSession(t *testing.T) *testSession {
ts.Domain = randomString(10)
// fake user
ts.User = &roomdb.Member{
ts.User = roomdb.Member{
ID: 1234,
Nickname: "room mate",
Role: roomdb.RoleModerator,
@ -81,7 +81,7 @@ func newSession(t *testing.T) *testSession {
return msgID + "Plural"
}
testFuncs["current_page_is"] = func(routeName string) bool { return true }
testFuncs["is_logged_in"] = func() *roomdb.Member { return ts.User }
testFuncs["is_logged_in"] = func() *roomdb.Member { return &ts.User }
testFuncs["urlToNotice"] = func(name string) string { return "" }
testFuncs["relative_time"] = func(when time.Time) string { return humanize.Time(when) }

View File

@ -46,7 +46,7 @@ var HTMLTemplates = []string{
type Databases struct {
Aliases roomdb.AliasesService
AuthFallback roomdb.AuthFallbackService
DeniedList roomdb.DeniedListService
DeniedKeys roomdb.DeniedKeysService
Invites roomdb.InvitesService
Notices roomdb.NoticesService
Members roomdb.MembersService
@ -234,9 +234,10 @@ func New(
roomState,
admin.Databases{
Aliases: dbs.Aliases,
Members: dbs.Members,
DeniedKeys: dbs.DeniedKeys,
Invites: dbs.Invites,
Notices: dbs.Notices,
Members: dbs.Members,
PinnedNotices: dbs.PinnedNotices,
},
)

View File

@ -22,12 +22,19 @@ AdminAliasesTitle = "Aliases"
AdminAliasesWelcome = "Here you can see and revoke the registered aliases of this room."
AdminAliasesRevoke = "Revoke"
AdminAllowListTitle = "Members"
AdminAllowListWelcome = "Here you can see all the members of the room and ways to add new ones (by their SSB ID) or remove exising ones."
AdminAllowListAdd = "Add"
AdminAllowListRemove = "Remove"
AdminAllowListRemoveConfirmWelcome = "Are you sure you want to remove this member? They will lose their alias, if they have one."
AdminAllowListRemoveConfirmTitle = "Confirm member removal"
AdminDeniedKeysTitle = "Denied Public Keys"
AdminDeniedKeysWelcome = "This page can be used to ban/block SSB IDs so that they can't access the room any more."
AdminDeniedKeysAdd = "Add"
AdminDeniedKeysRemove = "Remove"
AdminDeniedKeysRemoveConfirmWelcome = "Are you sure you want to remove this member? They will lose their alias, if they have one."
AdminDeniedKeysRemoveConfirmTitle = "Confirm member removal"
AdminMembersTitle = "Members"
AdminMembersWelcome = "Here you can see all the members of the room and ways to add new ones (by their SSB ID) or remove exising ones."
AdminMembersAdd = "Add"
AdminMembersRemove = "Remove"
AdminMembersRemoveConfirmWelcome = "Are you sure you want to remove this member? They will lose their alias, if they have one."
AdminMembersRemoveConfirmTitle = "Confirm member removal"
AdminInvitesTitle = "Invites"
AdminInvitesWelcome = "Create invite tokens for people who are not yet members of this room. At the same time as you create an invite, you can also (optionally) attach an alias to it so that the person who receives the invite can automatically use that claim that alias for themselves."

View File

@ -33,7 +33,16 @@
>
<svg class="text-purple-600 w-4 h-4 mr-1" viewBox="0 0 24 24">
<path fill="currentColor" d="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,6A2,2 0 0,0 10,8A2,2 0 0,0 12,10A2,2 0 0,0 14,8A2,2 0 0,0 12,6M12,13C14.67,13 20,14.33 20,17V20H4V17C4,14.33 9.33,13 12,13M12,14.9C9.03,14.9 5.9,16.36 5.9,17V18.1H18.1V17C18.1,16.36 14.97,14.9 12,14.9Z" />
</svg>{{i18n "AdminAllowListTitle"}}
</svg>{{i18n "AdminMembersTitle"}}
</a>
<a
href="{{urlTo "admin:denied-keys:overview"}}"
class="{{if current_page_is "admin:denied-keys:overview"}}bg-gray-300 {{else}}hover:bg-gray-200 {{end}}pr-1 pl-2 py-3 sm:py-1 rounded-md flex flex-row items-center font-semibold text-sm text-gray-700 hover:text-gray-800 truncate"
>
<svg class="text-purple-600 w-4 h-4 mr-1" viewBox="0 0 24 24">
<path fill="currentColor" d="" />
</svg>{{i18n "AdminDeniedKeysTitle"}}
</a>
<a

View File

@ -11,7 +11,7 @@ import (
// 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 )
func MiddlewareForTests(m *roomdb.Member) func(http.Handler) http.Handler {
func MiddlewareForTests(m roomdb.Member) func(http.Handler) http.Handler {
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
ctx := context.WithValue(req.Context(), roomMemberContextKey, m)