diff --git a/backend/pb_migrations/1754400000_init_schema.js b/backend/pb_migrations/1754400000_init_schema.js index b353646..9e2b5ab 100644 --- a/backend/pb_migrations/1754400000_init_schema.js +++ b/backend/pb_migrations/1754400000_init_schema.js @@ -130,7 +130,7 @@ migrate((app) => { "hidden": false, "id": "file376926767", "maxSelect": 1, - "maxSize": 0, + "maxSize": 5242880, "mimeTypes": [ "image/jpeg", "image/png", @@ -173,7 +173,7 @@ migrate((app) => { "CREATE UNIQUE INDEX `__pb_users_auth__tokenKey_idx` ON `users` (`tokenKey`)" ], "created": "2023-10-28 21:35:49.020Z", - "updated": "2026-08-06 12:06:09.028Z", + "updated": "2026-08-06 15:05:38.398Z", "system": false, "authRule": "", "manageRule": null, @@ -1273,7 +1273,7 @@ migrate((app) => { "viewRule": "team.users.id ?= @request.auth.id", "createRule": "team.owner.id ?= @request.auth.id || team.admins.id ?= @request.auth.id", "updateRule": "team.owner.id ?= @request.auth.id || team.admins.id ?= @request.auth.id", - "deleteRule": "team.owner.id ?= @request.auth.id || team.admins.id ?= @request.auth.id", + "deleteRule": "team.owner.id ?= @request.auth.id || team.admins.id ?= @request.auth.id && @collection.trail_markers.flag ?!= id", "name": "trail_flags", "type": "base", "fields": [ @@ -1390,7 +1390,7 @@ migrate((app) => { ], "indexes": [], "created": "2026-08-06 14:55:19.508Z", - "updated": "2026-08-06 14:55:19.508Z", + "updated": "2026-08-06 15:05:38.402Z", "system": false }, { diff --git a/backend/pb_migrations/1754500000_created_trails.js b/backend/pb_migrations/1754500000_created_trails.js index 9fca1c3..085f800 100644 --- a/backend/pb_migrations/1754500000_created_trails.js +++ b/backend/pb_migrations/1754500000_created_trails.js @@ -149,7 +149,9 @@ migrate((app) => { viewRule: 'team.users.id ?= @request.auth.id', createRule: adminOnly, updateRule: adminOnly, - deleteRule: adminOnly, + // Löschen nur, solange kein Marker diesen Typ verwendet — sonst + // bliebe ein Pflichtfeld zurück, das ins Leere zeigt. + deleteRule: adminOnly + ' && @collection.trail_markers.flag ?!= id', fields: [ teamScoped('team'), { name: 'label', type: 'text', required: true, max: 60 }, diff --git a/backend/pb_migrations/1754500200_trail_flags_delete_rule.js b/backend/pb_migrations/1754500200_trail_flags_delete_rule.js new file mode 100644 index 0000000..bee4927 --- /dev/null +++ b/backend/pb_migrations/1754500200_trail_flags_delete_rule.js @@ -0,0 +1,23 @@ +/// + +// trail_flags.deleteRule ergänzt: Löschen nur, solange kein Marker diesen +// Typ verwendet — sonst bliebe ein Pflichtfeld (trail_markers.flag) zurück, +// das ins Leere zeigt. Separate Migration, weil 1754500000_created_trails.js +// bereits angewendet wurde und PocketBase Migrationsdateien nur einmal +// anhand des Dateinamens ausführt, unabhängig vom Inhalt. + +migrate((app) => { + const flags = app.findCollectionByNameOrId('trail_flags') + const adminOnly = + 'team.owner.id ?= @request.auth.id' + + ' || team.admins.id ?= @request.auth.id' + flags.deleteRule = adminOnly + ' && @collection.trail_markers.flag ?!= id' + app.save(flags) +}, (app) => { + const flags = app.findCollectionByNameOrId('trail_flags') + const adminOnly = + 'team.owner.id ?= @request.auth.id' + + ' || team.admins.id ?= @request.auth.id' + flags.deleteRule = adminOnly + app.save(flags) +})