((META (EMPTY-STRING title "API: Encoding of Zettel Access Rights") (WORD role "manual") (TAG-SET tags ("#api" "#manual" "#reference" "#zettelstore")) (WORD syntax "zmk") (ZID-SET back ("00001012051200" "00001012051400" "00001012053200" "00001012053300" "00001012053400" "00001012054200")) (ZID-SET backward ("00001012051200" "00001012051400" "00001012053200" "00001012053300" "00001012053400" "00001012054200")) (NUMBER box-number "1") (STRING copyright "(c) 2020-present by Detlef Stern ") (TIMESTAMP created "20220201173115") (ZID-SET forward ("00001003000000" "00001006020400" "00001010000000" "00001010040100" "00001010040200" "00001010070200" "00001010070300")) (WORD lang "en") (EMPTY-STRING license "EUPL-1.2-or-later") (TIMESTAMP modified "20230807164817") (TIMESTAMP published "20230807164817") (WORD visibility "public")) (BLOCK (PARA (TEXT "Various") (SPACE) (TEXT "API") (SPACE) (TEXT "calls") (SPACE) (TEXT "return") (SPACE) (TEXT "a") (SPACE) (TEXT "symbolic") (SPACE) (TEXT "expression") (SPACE) (TEXT "list") (SPACE) (LITERAL-INPUT () "(rights N)") (TEXT ",") (SPACE) (TEXT "with") (SPACE) (LITERAL-INPUT () "N") (SPACE) (TEXT "as") (SPACE) (TEXT "a") (SPACE) (TEXT "number,") (SPACE) (TEXT "that") (SPACE) (TEXT "encodes") (SPACE) (TEXT "the") (SPACE) (TEXT "access") (SPACE) (TEXT "rights") (SPACE) (TEXT "the") (SPACE) (TEXT "user") (SPACE) (TEXT "currently") (SPACE) (TEXT "has.") (SOFT) (LITERAL-INPUT () "N") (SPACE) (TEXT "is") (SPACE) (TEXT "an") (SPACE) (TEXT "integer") (SPACE) (TEXT "number") (SPACE) (TEXT "between") (SPACE) (TEXT "0") (SPACE) (TEXT "and") (SPACE) (TEXT "62.") (ENDNOTE () (TEXT "Not") (SPACE) (TEXT "all") (SPACE) (TEXT "values") (SPACE) (TEXT "in") (SPACE) (TEXT "this") (SPACE) (TEXT "range") (SPACE) (TEXT "are") (SPACE) (TEXT "used."))) (PARA (TEXT "The") (SPACE) (TEXT "value") (SPACE) (FORMAT-QUOTE () (TEXT "0")) (SPACE) (TEXT "signals") (SPACE) (TEXT "that") (SPACE) (TEXT "something") (SPACE) (TEXT "went") (SPACE) (TEXT "wrong") (SPACE) (TEXT "internally") (SPACE) (TEXT "while") (SPACE) (TEXT "determining") (SPACE) (TEXT "the") (SPACE) (TEXT "access") (SPACE) (TEXT "rights.")) (PARA (TEXT "A") (SPACE) (TEXT "value") (SPACE) (TEXT "of") (SPACE) (FORMAT-QUOTE () (TEXT "1")) (SPACE) (TEXT "says,") (SPACE) (TEXT "that") (SPACE) (TEXT "the") (SPACE) (TEXT "current") (SPACE) (TEXT "user") (SPACE) (TEXT "has") (SPACE) (TEXT "no") (SPACE) (TEXT "access") (SPACE) (TEXT "right") (SPACE) (TEXT "for") (SPACE) (TEXT "the") (SPACE) (TEXT "given") (SPACE) (TEXT "zettel.") (SOFT) (TEXT "In") (SPACE) (TEXT "most") (SPACE) (TEXT "cases,") (SPACE) (TEXT "this") (SPACE) (TEXT "value") (SPACE) (TEXT "will") (SPACE) (TEXT "not") (SPACE) (TEXT "occur,") (SPACE) (TEXT "because") (SPACE) (TEXT "only") (SPACE) (TEXT "zettel") (SPACE) (TEXT "are") (SPACE) (TEXT "presented,") (SPACE) (TEXT "which") (SPACE) (TEXT "are") (SPACE) (TEXT "at") (SPACE) (TEXT "least") (SPACE) (TEXT "readable") (SPACE) (TEXT "by") (SPACE) (TEXT "the") (SPACE) (TEXT "current") (SPACE) (TEXT "user.")) (PARA (TEXT "Values") (SPACE) (FORMAT-QUOTE () (TEXT "2")) (SPACE) (TEXT "to") (SPACE) (FORMAT-QUOTE () (TEXT "62")) (SPACE) (TEXT "are") (SPACE) (TEXT "binary") (SPACE) (TEXT "encoded") (SPACE) (TEXT "values,") (SPACE) (TEXT "where") (SPACE) (TEXT "each") (SPACE) (TEXT "bit") (SPACE) (TEXT "signals") (SPACE) (TEXT "a") (SPACE) (TEXT "special") (SPACE) (TEXT "right.")) (TABLE ((CELL-CENTER (TEXT "Bit") (SPACE) (TEXT "number")) (CELL-CENTER (TEXT "Bit") (SPACE) (TEXT "value")) (CELL (TEXT "Meaning"))) ((CELL-CENTER (TEXT "1")) (CELL-CENTER (TEXT "2")) (CELL (TEXT "User") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "create") (SPACE) (TEXT "a") (SPACE) (TEXT "new") (SPACE) (TEXT "zettel"))) ((CELL-CENTER (TEXT "2")) (CELL-CENTER (TEXT "4")) (CELL (TEXT "User") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "read") (SPACE) (TEXT "the") (SPACE) (TEXT "zettel"))) ((CELL-CENTER (TEXT "3")) (CELL-CENTER (TEXT "8")) (CELL (TEXT "User") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "update") (SPACE) (TEXT "the") (SPACE) (TEXT "zettel"))) ((CELL-CENTER (TEXT "4")) (CELL-CENTER (TEXT "16")) (CELL (TEXT "User") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "rename") (SPACE) (TEXT "the") (SPACE) (TEXT "zettel"))) ((CELL-CENTER (TEXT "5")) (CELL-CENTER (TEXT "32")) (CELL (TEXT "User") (SPACE) (TEXT "is") (SPACE) (TEXT "allowed") (SPACE) (TEXT "to") (SPACE) (TEXT "delete") (SPACE) (TEXT "the") (SPACE) (TEXT "zettel")))) (PARA (TEXT "The") (SPACE) (TEXT "algorithm") (SPACE) (TEXT "to") (SPACE) (TEXT "calculate") (SPACE) (TEXT "the") (SPACE) (TEXT "actual") (SPACE) (TEXT "access") (SPACE) (TEXT "rights") (SPACE) (TEXT "from") (SPACE) (TEXT "the") (SPACE) (TEXT "value") (SPACE) (TEXT "is") (SPACE) (TEXT "relatively") (SPACE) (TEXT "simple:")) (ORDERED (INLINE (TEXT "Search") (SPACE) (TEXT "for") (SPACE) (TEXT "the") (SPACE) (TEXT "biggest") (SPACE) (TEXT "bit") (SPACE) (TEXT "value") (SPACE) (TEXT "that") (SPACE) (TEXT "is") (SPACE) (TEXT "less") (SPACE) (TEXT "than") (SPACE) (TEXT "the") (SPACE) (TEXT "rights") (SPACE) (TEXT "value.") (SOFT) (TEXT "This") (SPACE) (TEXT "is") (SPACE) (TEXT "an") (SPACE) (TEXT "access") (SPACE) (TEXT "right") (SPACE) (TEXT "for") (SPACE) (TEXT "the") (SPACE) (TEXT "current") (SPACE) (TEXT "user.")) (INLINE (TEXT "Subtract") (SPACE) (TEXT "the") (SPACE) (TEXT "bit") (SPACE) (TEXT "value") (SPACE) (TEXT "from") (SPACE) (TEXT "the") (SPACE) (TEXT "rights") (SPACE) (TEXT "value.") (SOFT) (TEXT "Remember") (SPACE) (TEXT "the") (SPACE) (TEXT "difference") (SPACE) (TEXT "as") (SPACE) (TEXT "the") (SPACE) (TEXT "new") (SPACE) (TEXT "rights") (SPACE) (TEXT "value.")) (INLINE (TEXT "If") (SPACE) (TEXT "it") (SPACE) (TEXT "is") (SPACE) (TEXT "greater") (SPACE) (TEXT "than") (SPACE) (TEXT "zero,") (SPACE) (TEXT "move") (SPACE) (TEXT "to") (SPACE) (TEXT "step") (SPACE) (TEXT "1."))) (PARA (TEXT "As") (SPACE) (TEXT "an") (SPACE) (TEXT "example,") (SPACE) (TEXT "let's") (SPACE) (TEXT "assume") (SPACE) (TEXT "a") (SPACE) (TEXT "rights") (SPACE) (TEXT "value") (SPACE) (TEXT "of") (SPACE) (TEXT "42:")) (ORDERED (INLINE (TEXT "The") (SPACE) (TEXT "first") (SPACE) (TEXT "right") (SPACE) (TEXT "is") (SPACE) (TEXT "the") (SPACE) (TEXT "right") (SPACE) (TEXT "to") (SPACE) (TEXT "delete") (SPACE) (TEXT "a") (SPACE) (TEXT "zettel.") (SOFT) (TEXT "The") (SPACE) (TEXT "new") (SPACE) (TEXT "value") (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (TEXT "rights") (SPACE) (TEXT "value") (SPACE) (TEXT "is") (SPACE) (TEXT "now") (SPACE) (TEXT "10") (SPACE) (TEXT "(42-32).")) (INLINE (TEXT "The") (SPACE) (TEXT "next") (SPACE) (TEXT "right") (SPACE) (TEXT "is") (SPACE) (TEXT "the") (SPACE) (TEXT "right") (SPACE) (TEXT "to") (SPACE) (TEXT "update") (SPACE) (TEXT "a") (SPACE) (TEXT "zettel") (SPACE) (TEXT "(16") (SPACE) (TEXT ">") (SPACE) (TEXT "10,") (SPACE) (TEXT "but") (SPACE) (TEXT "8") (SPACE) (TEXT "<") (SPACE) (TEXT "10).") (SOFT) (TEXT "The") (SPACE) (TEXT "new") (SPACE) (TEXT "value") (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (TEXT "rights") (SPACE) (TEXT "value") (SPACE) (TEXT "is") (SPACE) (TEXT "now") (SPACE) (TEXT "2") (SPACE) (TEXT "(10-8).")) (INLINE (TEXT "The") (SPACE) (TEXT "last") (SPACE) (TEXT "right") (SPACE) (TEXT "is") (SPACE) (TEXT "the") (SPACE) (TEXT "right") (SPACE) (TEXT "to") (SPACE) (TEXT "create") (SPACE) (TEXT "a") (SPACE) (TEXT "new") (SPACE) (TEXT "zettel.") (SOFT) (TEXT "The") (SPACE) (TEXT "rights") (SPACE) (TEXT "value") (SPACE) (TEXT "is") (SPACE) (TEXT "now") (SPACE) (TEXT "zero,") (SPACE) (TEXT "the") (SPACE) (TEXT "algorithm") (SPACE) (TEXT "ends."))) (PARA (TEXT "In") (SPACE) (TEXT "practice,") (SPACE) (TEXT "not") (SPACE) (TEXT "every") (SPACE) (TEXT "rights") (SPACE) (TEXT "value") (SPACE) (TEXT "will") (SPACE) (TEXT "occur.") (SOFT) (TEXT "A") (SPACE) (TEXT "Zettelstore") (SPACE) (TEXT "in") (SPACE) (LINK-ZETTEL () "00001010000000#read-only" (TEXT "read-only") (SPACE) (TEXT "mode")) (TEXT " will") (SPACE) (TEXT "always") (SPACE) (TEXT "return") (SPACE) (TEXT "the") (SPACE) (TEXT "value") (SPACE) (TEXT "4.") (SOFT) (TEXT "Similar,") (SPACE) (TEXT "a") (SPACE) (TEXT "Zettelstore") (SPACE) (TEXT "that") (SPACE) (TEXT "you") (SPACE) (TEXT "started") (SPACE) (TEXT "with") (SPACE) (TEXT "a") (SPACE) (LINK-ZETTEL () "00001003000000" (TEXT "double-click")) (SPACE) (TEXT "will") (SPACE) (TEXT "return") (SPACE) (TEXT "either") (SPACE) (TEXT "the") (SPACE) (TEXT "value") (SPACE) (FORMAT-QUOTE () (TEXT "6")) (SPACE) (TEXT "(reading") (SPACE) (TEXT "and") (SPACE) (TEXT "updating)") (SPACE) (TEXT "or") (SPACE) (TEXT "the") (SPACE) (TEXT "value") (SPACE) (FORMAT-QUOTE () (TEXT "62")) (SPACE) (TEXT "(all") (SPACE) (TEXT "operations") (SPACE) (TEXT "are") (SPACE) (TEXT "allowed).")) (PARA (TEXT "If") (SPACE) (TEXT "you") (SPACE) (TEXT "have") (SPACE) (TEXT "added") (SPACE) (TEXT "an") (SPACE) (TEXT "additional") (SPACE) (LINK-ZETTEL () "00001010040200" (TEXT "user")) (SPACE) (TEXT "to") (SPACE) (TEXT "your") (SPACE) (TEXT "Zettelstore,") (SPACE) (TEXT "this") (SPACE) (TEXT "might") (SPACE) (TEXT "change.") (SOFT) (TEXT "The") (SPACE) (TEXT "access") (SPACE) (TEXT "rights") (SPACE) (TEXT "are") (SPACE) (TEXT "calculated") (SPACE) (TEXT "depending") (SPACE) (TEXT "on") (SPACE) (LINK-ZETTEL () "00001010040100" (TEXT "enabled") (SPACE) (TEXT "authentication")) (TEXT ",") (SPACE) (TEXT "on") (SPACE) (TEXT "the") (SPACE) (LINK-ZETTEL () "00001010070300" (TEXT "user") (SPACE) (TEXT "role")) (SPACE) (TEXT "of") (SPACE) (TEXT "the") (SPACE) (TEXT "current") (SPACE) (TEXT "user,") (SPACE) (TEXT "on") (SPACE) (LINK-ZETTEL () "00001010070200" (TEXT "visibility") (SPACE) (TEXT "rules")) (SPACE) (TEXT "for") (SPACE) (TEXT "a") (SPACE) (TEXT "given") (SPACE) (TEXT "zettel") (SPACE) (TEXT "and") (SPACE) (TEXT "on") (SPACE) (TEXT "the") (SPACE) (LINK-ZETTEL () "00001006020400" (TEXT "read-only") (SPACE) (TEXT "status")) (SPACE) (TEXT "for") (SPACE) (TEXT "the") (SPACE) (TEXT "zettel."))))