feat: more role backend and admin/writer roles additions and adjustments
This commit is contained in:
1 parent
8c6c6456da
commit
de142f6c5f
131 files changed
+2663
-435
No files matched your search
@@ -48,7 +48,7 @@ func newInviteManagementFixture(t *testing.T, maxAttempts int) *inviteManagement
|
||||
token: authtoken.New([]byte("test-secret")),
|
||||
}
|
||||
f.invites.users = f.users
|
||||
f.users.users[9] = user.User{ID: 9, Username: "jonas", Email: "jonas@renew.example", IsVerified: true, Role: user.RoleAdmin}
|
||||
f.users.users[9] = user.User{ID: 9, Username: "jonas", Email: "jonas@renew.example", IsVerified: true, Role: user.RoleAdmin, RoleID: writerRoleID}
|
||||
f.users.users[11] = user.User{ID: 11, Username: "unverified", Email: "unverified@renew.example", IsVerified: false, Role: user.RoleAdmin}
|
||||
f.users.users[12] = user.User{ID: 12, Username: "stale", Email: "stale@renew.example", IsVerified: true, Role: user.RoleOwner, TokenVersion: 2}
|
||||
f.users.nextID = 12
|
||||
@@ -77,7 +77,7 @@ func newInviteManagementFixture(t *testing.T, maxAttempts int) *inviteManagement
|
||||
r.Use(middleware.RequireVerifiedUser(getUser))
|
||||
r.Get("/", handler.ListUsers)
|
||||
r.Group(func(r chi.Router) {
|
||||
r.Use(middleware.RequireOwner(getUser))
|
||||
r.Use(middleware.RequirePermission(getUser, useCases.NewCheckPermissionUseCase(newSeededMockRoleRepo()), "users.invite"))
|
||||
r.Use(middleware.TrustedProxyRealIP(nil))
|
||||
r.Use(middleware.NewRateLimiter(maxAttempts, time.Hour))
|
||||
r.Post("/invite", handler.CreateInvite)
|
||||
@@ -383,7 +383,7 @@ func TestInviteManagementHttp(t *testing.T) {
|
||||
{"no cookie", func(f *inviteManagementFixture) *http.Cookie { return nil }, http.StatusUnauthorized},
|
||||
{"stale token_version", func(f *inviteManagementFixture) *http.Cookie { return displayNameCookie(t, f.token, 12, 1) }, http.StatusUnauthorized},
|
||||
{"unverified user", func(f *inviteManagementFixture) *http.Cookie { return displayNameCookie(t, f.token, 11, 0) }, http.StatusForbidden},
|
||||
{"admin", func(f *inviteManagementFixture) *http.Cookie { return displayNameCookie(t, f.token, 9, 0) }, http.StatusForbidden},
|
||||
{"writer", func(f *inviteManagementFixture) *http.Cookie { return displayNameCookie(t, f.token, 9, 0) }, http.StatusForbidden},
|
||||
}
|
||||
for _, tc := range cases {
|
||||
for _, call := range []struct{ method, path string }{
|
||||
@@ -402,12 +402,12 @@ func TestInviteManagementHttp(t *testing.T) {
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("An admin is refused with the owner message, even on an unknown id", func(t *testing.T) {
|
||||
t.Run("A writer is refused with the missing permission message, even on an unknown id", func(t *testing.T) {
|
||||
f := newInviteManagementFixture(t, 100)
|
||||
|
||||
rec := f.asUser(t, 9, 0, http.MethodDelete, "/v1/user/invite/999")
|
||||
|
||||
if rec.Code != http.StatusForbidden || rec.Body.String() != apperr.OwnerRequiredErrorMessage+"\n" {
|
||||
if rec.Code != http.StatusForbidden || rec.Body.String() != apperr.MissingPermissionErrorMessage+"\n" {
|
||||
t.Errorf("unexpected %d %q", rec.Code, rec.Body.String())
|
||||
}
|
||||
})
|
||||
@@ -450,7 +450,7 @@ func TestInviteManagementHttp(t *testing.T) {
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("An admin does not use up the quota", func(t *testing.T) {
|
||||
t.Run("A writer does not use up the quota", func(t *testing.T) {
|
||||
f := newInviteManagementFixture(t, 2)
|
||||
for i := 0; i < 3; i++ {
|
||||
if rec := f.asUser(t, 9, 0, http.MethodDelete, "/v1/user/invite/1"); rec.Code != http.StatusForbidden {
|
||||
|
||||
Reference in new issue
Block a user