ops design and app
add more comments feature, more tags feature, and other frontend updates
This commit is contained in:
@@ -343,3 +343,82 @@ func TestInitialSetupCanDisablePublicRegistration(t *testing.T) {
|
||||
t.Fatalf("public signup role = %s, want viewer", viewer.Role)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResourcePermissionsArePrivateByDefault(t *testing.T) {
|
||||
service := setupAuthTestService(t)
|
||||
ctx := context.Background()
|
||||
admin := setupInitialAdmin(t, service, true)
|
||||
viewer, err := service.repo.UpsertUser(ctx, User{
|
||||
Email: "viewer@example.com",
|
||||
DisplayName: "Viewer",
|
||||
Role: RoleViewer,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("create viewer: %v", err)
|
||||
}
|
||||
|
||||
viewerPrincipal := principalFromUser(viewer, "session", "sess:viewer", "", nil, time.Now().Add(time.Hour))
|
||||
permission, err := service.EffectiveResourcePermission(ctx, viewerPrincipal, ResourceDocument, "private/page.md", nil)
|
||||
if err != nil {
|
||||
t.Fatalf("EffectiveResourcePermission() error = %v", err)
|
||||
}
|
||||
if permission != PermissionNone {
|
||||
t.Fatalf("viewer permission = %q, want no access", permission)
|
||||
}
|
||||
|
||||
adminPrincipal := principalFromUser(admin, "session", "sess:admin", "", nil, time.Now().Add(time.Hour))
|
||||
permission, err = service.EffectiveResourcePermission(ctx, adminPrincipal, ResourceDocument, "private/page.md", nil)
|
||||
if err != nil {
|
||||
t.Fatalf("EffectiveResourcePermission() admin error = %v", err)
|
||||
}
|
||||
if permission != PermissionAdmin {
|
||||
t.Fatalf("admin permission = %q, want admin", permission)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResourcePermissionsUseMostPermissiveGrant(t *testing.T) {
|
||||
service := setupAuthTestService(t)
|
||||
ctx := context.Background()
|
||||
admin := setupInitialAdmin(t, service, true)
|
||||
viewer, err := service.repo.UpsertUser(ctx, User{
|
||||
Email: "viewer@example.com",
|
||||
DisplayName: "Viewer",
|
||||
Role: RoleViewer,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("create viewer: %v", err)
|
||||
}
|
||||
adminPrincipal := principalFromUser(admin, "session", "sess:admin", "", nil, time.Now().Add(time.Hour))
|
||||
viewerPrincipal := principalFromUser(viewer, "session", "sess:viewer", "", nil, time.Now().Add(time.Hour))
|
||||
|
||||
if _, err := service.UpdateResourcePermissions(ctx, adminPrincipal, ResourceDocument, "shared/page.md", []ResourcePermissionUpdate{
|
||||
{UserID: viewer.ID, Permission: PermissionRead},
|
||||
}); err != nil {
|
||||
t.Fatalf("grant document read: %v", err)
|
||||
}
|
||||
if _, err := service.UpdateResourcePermissions(ctx, adminPrincipal, ResourceFolder, "shared", []ResourcePermissionUpdate{
|
||||
{UserID: viewer.ID, Permission: PermissionWrite},
|
||||
}); err != nil {
|
||||
t.Fatalf("grant folder write: %v", err)
|
||||
}
|
||||
permission, err := service.EffectiveResourcePermission(ctx, viewerPrincipal, ResourceDocument, "shared/page.md", nil)
|
||||
if err != nil {
|
||||
t.Fatalf("EffectiveResourcePermission() folder error = %v", err)
|
||||
}
|
||||
if permission != PermissionWrite {
|
||||
t.Fatalf("folder/document combined permission = %q, want write", permission)
|
||||
}
|
||||
|
||||
if _, err := service.UpdateResourcePermissions(ctx, adminPrincipal, ResourceCollection, "team", []ResourcePermissionUpdate{
|
||||
{UserID: viewer.ID, Permission: PermissionAdmin},
|
||||
}); err != nil {
|
||||
t.Fatalf("grant collection admin: %v", err)
|
||||
}
|
||||
permission, err = service.EffectiveResourcePermission(ctx, viewerPrincipal, ResourceDocument, "other/page.md", []string{"team"})
|
||||
if err != nil {
|
||||
t.Fatalf("EffectiveResourcePermission() collection error = %v", err)
|
||||
}
|
||||
if permission != PermissionAdmin {
|
||||
t.Fatalf("collection permission = %q, want admin", permission)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user