d76ecb15d6
- Add aliases field to games (json array), searchable in game library and team session - Add edit functionality inside GameDetailDialog (creator/owner/admin can modify) - Add permission control for delete/edit buttons (only visible to authorized users) - Scope GameSelectDialog to current group only - Support aliases in import/export Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
/// <reference path="../pb_data/types.d.ts" />
|
|
migrate((db) => {
|
|
const dao = new Dao(db)
|
|
const collection = dao.findCollectionByNameOrId("x5adjlc0txf16r8")
|
|
|
|
// add aliases field (json array of strings)
|
|
collection.schema.addField(new SchemaField({
|
|
"system": false,
|
|
"id": "aliases_field",
|
|
"name": "aliases",
|
|
"type": "json",
|
|
"required": false,
|
|
"presentable": false,
|
|
"unique": false,
|
|
"options": {
|
|
"maxSize": 5000
|
|
}
|
|
}))
|
|
|
|
// update rules: allow group admins to update/delete
|
|
collection.updateRule = "group.owner = @request.auth.id || addedBy = @request.auth.id || group.admins ~ @request.auth.id"
|
|
collection.deleteRule = "group.owner = @request.auth.id || addedBy = @request.auth.id || group.admins ~ @request.auth.id"
|
|
|
|
return dao.saveCollection(collection)
|
|
}, (db) => {
|
|
const dao = new Dao(db)
|
|
const collection = dao.findCollectionByNameOrId("x5adjlc0txf16r8")
|
|
|
|
// remove aliases field
|
|
collection.schema.removeField("aliases_field")
|
|
|
|
// restore original rules
|
|
collection.updateRule = "group.owner = @request.auth.id || addedBy = @request.auth.id"
|
|
collection.deleteRule = "group.owner = @request.auth.id || addedBy = @request.auth.id"
|
|
|
|
return dao.saveCollection(collection)
|
|
})
|