(BLOCK (PARA (TEXT "Whether") (SPACE) (TEXT "an") (SPACE) (TEXT "operation") (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (TEXT "Zettelstore") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed") (SPACE) (TEXT "or") (SPACE) (TEXT "rejected,") (SPACE) (TEXT "depends") (SPACE) (TEXT "on") (SPACE) (TEXT "various") (SPACE) (TEXT "factors.")) (PARA (TEXT "The") (SPACE) (TEXT "following") (SPACE) (TEXT "rules") (SPACE) (TEXT "are") (SPACE) (TEXT "checked") (SPACE) (TEXT "first,") (SPACE) (TEXT "in") (SPACE) (TEXT "this") (SPACE) (TEXT "order:")) (ORDERED (INLINE (TEXT "In") (SPACE) (TEXT "read-only") (SPACE) (TEXT "mode,") (SPACE) (TEXT "every") (SPACE) (TEXT "operation") (SPACE) (TEXT "except") (SPACE) (TEXT "the") (SPACE) (FORMAT-QUOTE () (TEXT "Read")) (SPACE) (TEXT "operation") (SPACE) (TEXT "is") (SPACE) (TEXT "rejected.")) (INLINE (TEXT "If") (SPACE) (TEXT "there") (SPACE) (TEXT "is") (SPACE) (TEXT "no") (SPACE) (TEXT "owner,") (SPACE) (TEXT "authentication") (SPACE) (TEXT "is") (SPACE) (TEXT "disabled") (SPACE) (TEXT "and") (SPACE) (TEXT "every") (SPACE) (TEXT "operation") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed") (SPACE) (TEXT "for") (SPACE) (TEXT "everybody.")) (INLINE (TEXT "If") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (TEXT "authenticated") (SPACE) (TEXT "and") (SPACE) (TEXT "it") (SPACE) (TEXT "is") (SPACE) (TEXT "the") (SPACE) (TEXT "owner,") (SPACE) (TEXT "then") (SPACE) (TEXT "the") (SPACE) (TEXT "operation") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed."))) (PARA (TEXT "In") (SPACE) (TEXT "the") (SPACE) (TEXT "second") (SPACE) (TEXT "step,") (SPACE) (TEXT "when") (SPACE) (LINK-ZETTEL () "00001010040100" (TEXT "authentication") (SPACE) (TEXT "is") (SPACE) (TEXT "enabled")) (SPACE) (TEXT "and") (SPACE) (TEXT "the") (SPACE) (TEXT "requesting") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (TEXT "not") (SPACE) (TEXT "the") (SPACE) (TEXT "owner,") (SPACE) (TEXT "everything") (SPACE) (TEXT "depends") (SPACE) (TEXT "on") (SPACE) (TEXT "the") (SPACE) (TEXT "requested") (SPACE) (TEXT "operation.")) (UNORDERED (BLOCK (PARA (TEXT "Read") (SPACE) (TEXT "a") (SPACE) (TEXT "zettel:")) (UNORDERED (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (TEXT "visibility") (SPACE) (TEXT "is") (SPACE) (FORMAT-QUOTE () (TEXT "public")) (TEXT ",") (SPACE) (TEXT "the") (SPACE) (TEXT "access") (SPACE) (TEXT "is") (SPACE) (TEXT "granted."))) (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (TEXT "visibility") (SPACE) (TEXT "is") (SPACE) (FORMAT-QUOTE () (TEXT "owner")) (TEXT ",") (SPACE) (TEXT "the") (SPACE) (TEXT "access") (SPACE) (TEXT "is") (SPACE) (TEXT "rejected."))) (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (TEXT "not") (SPACE) (TEXT "authenticated,") (SPACE) (TEXT "access") (SPACE) (TEXT "is") (SPACE) (TEXT "rejected."))) (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (TEXT "zettel") (SPACE) (TEXT "requested") (SPACE) (TEXT "is") (SPACE) (TEXT "an") (SPACE) (LINK-ZETTEL () "00001010040200" (TEXT "user") (SPACE) (TEXT "zettel")) (TEXT ",") (SPACE) (TEXT "reject") (SPACE) (TEXT "the") (SPACE) (TEXT "access") (SPACE) (TEXT "if") (SPACE) (TEXT "the") (SPACE) (TEXT "users") (SPACE) (TEXT "identification") (SPACE) (TEXT "is") (SPACE) (TEXT "not") (SPACE) (TEXT "the") (SPACE) (TEXT "same") (SPACE) (TEXT "as") (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (LITERAL-INPUT () "user-id") (SPACE) (TEXT "metadata") (SPACE) (TEXT "value") (SPACE) (TEXT "in") (SPACE) (TEXT "the") (SPACE) (TEXT "zettel.")) (PARA (TEXT "In") (SPACE) (TEXT "other") (SPACE) (TEXT "words:") (SPACE) (TEXT "only") (SPACE) (TEXT "the") (SPACE) (TEXT "requesting") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "access") (SPACE) (TEXT "its") (SPACE) (TEXT "own") (SPACE) (TEXT "user") (SPACE) (TEXT "zettel."))) (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (LITERAL-INPUT () "user-role") (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (FORMAT-QUOTE () (TEXT "creator")) (TEXT ",") (SPACE) (TEXT "reject") (SPACE) (TEXT "the") (SPACE) (TEXT "access."))) (BLOCK (PARA (TEXT "Otherwise") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (TEXT "authenticated,") (SPACE) (TEXT "no") (SPACE) (TEXT "sensitive") (SPACE) (TEXT "zettel") (SPACE) (TEXT "is") (SPACE) (TEXT "requested.") (SOFT) (TEXT "Allow") (SPACE) (TEXT "to") (SPACE) (TEXT "read") (SPACE) (TEXT "the") (SPACE) (TEXT "zettel."))))) (BLOCK (PARA (TEXT "Create") (SPACE) (TEXT "a") (SPACE) (TEXT "new") (SPACE) (TEXT "zettel")) (UNORDERED (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (TEXT "not") (SPACE) (TEXT "authenticated,") (SPACE) (TEXT "reject") (SPACE) (TEXT "the") (SPACE) (TEXT "access."))) (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (LITERAL-INPUT () "user-role") (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (FORMAT-QUOTE () (TEXT "reader")) (TEXT ",") (SPACE) (TEXT "reject") (SPACE) (TEXT "the") (SPACE) (TEXT "access."))) (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "tries") (SPACE) (TEXT "to") (SPACE) (TEXT "create") (SPACE) (TEXT "an") (SPACE) (LINK-ZETTEL () "00001010040200" (TEXT "user") (SPACE) (TEXT "zettel")) (TEXT ",") (SPACE) (TEXT "the") (SPACE) (TEXT "access") (SPACE) (TEXT "is") (SPACE) (TEXT "rejected.")) (PARA (TEXT "Only") (SPACE) (TEXT "the") (SPACE) (TEXT "owner") (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (TEXT "Zettelstore") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "create") (SPACE) (TEXT "user") (SPACE) (TEXT "zettel."))) (BLOCK (PARA (TEXT "In") (SPACE) (TEXT "all") (SPACE) (TEXT "other") (SPACE) (TEXT "cases") (SPACE) (TEXT "allow") (SPACE) (TEXT "to") (SPACE) (TEXT "create") (SPACE) (TEXT "the") (SPACE) (TEXT "zettel."))))) (BLOCK (PARA (TEXT "Change") (SPACE) (TEXT "an") (SPACE) (TEXT "existing") (SPACE) (TEXT "zettel")) (UNORDERED (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (TEXT "not") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "read") (SPACE) (TEXT "the") (SPACE) (TEXT "zettel") (SPACE) (TEXT "(see") (SPACE) (TEXT "above),") (SPACE) (TEXT "reject") (SPACE) (TEXT "the") (SPACE) (TEXT "access."))) (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (TEXT "not") (SPACE) (TEXT "authenticated,") (SPACE) (TEXT "reject") (SPACE) (TEXT "the") (SPACE) (TEXT "access."))) (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (TEXT "zettel") (SPACE) (TEXT "is") (SPACE) (TEXT "the") (SPACE) (LINK-ZETTEL () "00001010040200" (TEXT "user") (SPACE) (TEXT "zettel")) (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (TEXT "authenticated") (SPACE) (TEXT "user,") (SPACE) (TEXT "proceed") (SPACE) (TEXT "as") (SPACE) (TEXT "follows:")) (UNORDERED (INLINE (TEXT "If") (SPACE) (TEXT "some") (SPACE) (TEXT "sensitive") (SPACE) (TEXT "meta") (SPACE) (TEXT "values") (SPACE) (TEXT "are") (SPACE) (TEXT "changed") (SPACE) (TEXT "(e.g.") (SPACE) (TEXT "user") (SPACE) (TEXT "identifier,") (SPACE) (TEXT "zettel") (SPACE) (TEXT "role,") (SPACE) (TEXT "user") (SPACE) (TEXT "role,") (SPACE) (TEXT "but") (SPACE) (TEXT "not") (SPACE) (TEXT "hashed") (SPACE) (TEXT "password),") (SPACE) (TEXT "reject") (SPACE) (TEXT "the") (SPACE) (TEXT "access")) (INLINE (TEXT "Since") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "just") (SPACE) (TEXT "updates") (SPACE) (TEXT "some") (SPACE) (TEXT "uncritical") (SPACE) (TEXT "values,") (SPACE) (TEXT "grant") (SPACE) (TEXT "the") (SPACE) (TEXT "access"))) (PARA (TEXT "In") (SPACE) (TEXT "other") (SPACE) (TEXT "words:") (SPACE) (TEXT "a") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "change") (SPACE) (TEXT "its") (SPACE) (TEXT "user") (SPACE) (TEXT "zettel,") (SPACE) (TEXT "even") (SPACE) (TEXT "if") (SPACE) (TEXT "s/he") (SPACE) (TEXT "has") (SPACE) (TEXT "no") (SPACE) (TEXT "writer") (SPACE) (TEXT "privilege") (SPACE) (TEXT "and") (SPACE) (TEXT "if") (SPACE) (TEXT "only") (SPACE) (TEXT "uncritical") (SPACE) (TEXT "data") (SPACE) (TEXT "is") (SPACE) (TEXT "changed."))) (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (LITERAL-INPUT () "user-role") (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (FORMAT-QUOTE () (TEXT "reader")) (TEXT ",") (SPACE) (TEXT "reject") (SPACE) (TEXT "the") (SPACE) (TEXT "access."))) (BLOCK (PARA (TEXT "If") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "is") (SPACE) (TEXT "not") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "create") (SPACE) (TEXT "a") (SPACE) (TEXT "new") (SPACE) (TEXT "zettel,") (SPACE) (TEXT "reject") (SPACE) (TEXT "the") (SPACE) (TEXT "access."))) (BLOCK (PARA (TEXT "Otherwise") (SPACE) (TEXT "grant") (SPACE) (TEXT "the") (SPACE) (TEXT "access."))))) (BLOCK (PARA (TEXT "Rename") (SPACE) (TEXT "a") (SPACE) (TEXT "zettel")) (UNORDERED (INLINE (TEXT "Reject") (SPACE) (TEXT "the") (SPACE) (TEXT "access.") (SOFT) (TEXT "Only") (SPACE) (TEXT "the") (SPACE) (TEXT "owner") (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (TEXT "Zettelstore") (SPACE) (TEXT "is") (SPACE) (TEXT "currently") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "give") (SPACE) (TEXT "a") (SPACE) (TEXT "new") (SPACE) (TEXT "identifier") (SPACE) (TEXT "for") (SPACE) (TEXT "a") (SPACE) (TEXT "zettel.")))) (BLOCK (PARA (TEXT "Delete") (SPACE) (TEXT "a") (SPACE) (TEXT "zettel")) (UNORDERED (INLINE (TEXT "Reject") (SPACE) (TEXT "the") (SPACE) (TEXT "access.") (SOFT) (TEXT "Only") (SPACE) (TEXT "the") (SPACE) (TEXT "owner") (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (TEXT "Zettelstore") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "delete") (SPACE) (TEXT "a") (SPACE) (TEXT "zettel.") (SOFT) (TEXT "This") (SPACE) (TEXT "may") (SPACE) (TEXT "change") (SPACE) (TEXT "in") (SPACE) (TEXT "the") (SPACE) (TEXT "future."))))))