feat: game aliases + edit permissions + scoped game select (v0.3.6)
- 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>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
/// <reference path="../pb_data/types.d.ts" />
|
||||
migrate((db) => {
|
||||
const dao = new Dao(db)
|
||||
const collection = dao.findCollectionByNameOrId("x5adjlc0txf16r8")
|
||||
|
||||
collection.listRule = "@request.auth.id != \"\" && group.members ~ @request.auth.id"
|
||||
collection.viewRule = "@request.auth.id != \"\" && group.members ~ @request.auth.id"
|
||||
|
||||
return dao.saveCollection(collection)
|
||||
}, (db) => {
|
||||
const dao = new Dao(db)
|
||||
const collection = dao.findCollectionByNameOrId("x5adjlc0txf16r8")
|
||||
|
||||
collection.listRule = "group.owner = @request.auth.id || group.members.id = @request.auth.id"
|
||||
collection.viewRule = "group.owner = @request.auth.id || group.members.id = @request.auth.id"
|
||||
|
||||
return dao.saveCollection(collection)
|
||||
})
|
||||
@@ -0,0 +1,37 @@
|
||||
/// <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)
|
||||
})
|
||||
Reference in New Issue
Block a user