page.personal is an opaque filter template (the 'mine' predicate), not a punc name — same read, scope-derived filter
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
use crate::database::action::Action;
|
use crate::database::action::Action;
|
||||||
use indexmap::IndexMap;
|
use indexmap::IndexMap;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
use serde_json::Value;
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
|
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
@ -13,10 +14,11 @@ pub struct Page {
|
|||||||
pub sidebar: Option<Sidebar>,
|
pub sidebar: Option<Sidebar>,
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub actions: Option<IndexMap<String, Action>>,
|
pub actions: Option<IndexMap<String, Action>>,
|
||||||
/// The personal-scope sibling punc for this page ("one surface, two scopes"):
|
/// The personal-scope filter template ("one surface, two scopes"): the
|
||||||
/// the caller-scoped read the page issues when the app is in personal scope.
|
/// "mine" predicate the page merges into its filter when the app is in
|
||||||
|
/// personal scope, e.g. {"reserved_by": "$me"}. Opaque to the engine.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub personal: Option<String>,
|
pub personal: Option<Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
|
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
|
||||||
|
|||||||
Reference in New Issue
Block a user