pub struct PermissionOptions {
pub protected_fields_owner_exempt: bool,
pub error_detail: ErrorDetail,
pub allow_client_class_creation: bool,
}Expand description
Options that change what a permission check decides, and what it says when it denies.
Fields§
§protected_fields_owner_exempt: boolprotectedFieldsOwnerExempt. Upstream tests !== false, so an unset option is exempt and
the default is true (DatabaseController.js:1838).
error_detail: ErrorDetailenableSanitizedErrorResponse, carried here because every denial in this module is one of
upstream’s createSanitizedError call sites and needs it.
allow_client_class_creation: boolallowClientClassCreation (Options/Definitions.js:67-72).
The default is false, and that is the whole reason this option has to exist rather than
be left for later. An unimplemented option is silently the permissive value, and here the
permissive value lets any caller holding only the app id and client key create classes. Each
one gets a _SCHEMA row and a collection on a database parse-server nodes also read, and
each has no CLP block, which is default-open. So the gap is not a missing feature, it is a
security default flipped open.
Trait Implementations§
Source§impl Clone for PermissionOptions
impl Clone for PermissionOptions
Source§fn clone(&self) -> PermissionOptions
fn clone(&self) -> PermissionOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more