added explicit errors when trying to truncate view collections or deleting view records

This commit is contained in:
Gani Georgiev
2024-10-09 11:51:03 +03:00
parent 2c2246ecb9
commit c09cd8364a
7 changed files with 61 additions and 4 deletions
+4
View File
@@ -169,6 +169,10 @@ func collectionTruncate(e *core.RequestEvent) error {
return e.NotFoundError("", err)
}
if collection.IsView() {
return e.BadRequestError("View collections cannot be truncated since they don't store their own records.", nil)
}
err = e.App.TruncateCollection(collection)
if err != nil {
return e.BadRequestError("Failed to truncate collection (most likely due to required cascade delete record references).", err)
+11
View File
@@ -1493,6 +1493,17 @@ func TestCollectionTruncate(t *testing.T) {
"OnRecordAfterUpdateError": 2,
},
},
{
Name: "authorized as superuser trying to truncate view collection",
Method: http.MethodDelete,
URL: "/api/collections/view2/truncate",
Headers: map[string]string{
"Authorization": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6InN5d2JoZWNuaDQ2cmhtMCIsInR5cGUiOiJhdXRoIiwiY29sbGVjdGlvbklkIjoiX3BiY18zMzIzODY2MzM5IiwiZXhwIjoyNTI0NjA0NDYxLCJyZWZyZXNoYWJsZSI6dHJ1ZX0.v_bMAygr6hXPwD2DpPrFpNQ7dd68Q3pGstmYAsvNBJg",
},
ExpectedStatus: 400,
ExpectedContent: []string{`"data":{}`},
ExpectedEvents: map[string]int{"*": 0},
},
}
for _, scenario := range scenarios {