PolicyKit: Branch 'master'
David Zeuthen
david at kemper.freedesktop.org
Sun Oct 21 18:27:12 PDT 2007
doc/Makefile.am | 4
doc/diagram-bus-model.png |binary
doc/diagram-interaction.png |binary
doc/polkit-diagrams.svg | 1923 +++++++++++++++++++++++++++++++++++++++++
doc/spec/polkit-spec-model.xml | 366 +++++++
5 files changed, 2259 insertions(+), 34 deletions(-)
New commits:
commit b6ec8253a27d4d917003b232a497fd7df62003b0
Author: David Zeuthen <davidz at redhat.com>
Date: Sun Oct 21 21:26:38 2007 -0400
work on the docs
Now we have diagrams! With happy candy colors too!
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 99c58af..9abea67 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -60,7 +60,9 @@ content_files = \
$(NULL)
# Images to copy into HTML directory
-HTML_IMAGES =
+HTML_IMAGES = \
+ diagram-bus-model.png \
+ diagram-interaction.png
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS=
diff --git a/doc/diagram-bus-model.png b/doc/diagram-bus-model.png
new file mode 100644
index 0000000..bba3014
Binary files /dev/null and b/doc/diagram-bus-model.png differ
diff --git a/doc/diagram-interaction.png b/doc/diagram-interaction.png
new file mode 100644
index 0000000..64ede01
Binary files /dev/null and b/doc/diagram-interaction.png differ
diff --git a/doc/polkit-diagrams.svg b/doc/polkit-diagrams.svg
new file mode 100644
index 0000000..ffa4c27
--- /dev/null
+++ b/doc/polkit-diagrams.svg
@@ -0,0 +1,1923 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ sodipodi:docbase="/home/davidz/Hacking/PolicyKit/doc"
+ sodipodi:docname="polkit-diagrams.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient30011">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop30013" />
+ <stop
+ style="stop-color:#9d9fff;stop-opacity:0;"
+ offset="1"
+ id="stop30015" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient30001">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop30003" />
+ <stop
+ style="stop-color:#ff9d9d;stop-opacity:0;"
+ offset="1"
+ id="stop30005" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient28966">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop28968" />
+ <stop
+ style="stop-color:#9dff9d;stop-opacity:0;"
+ offset="1"
+ id="stop28970" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient22901">
+ <stop
+ style="stop-color:#9da7d7;stop-opacity:1;"
+ offset="0"
+ id="stop22903" />
+ <stop
+ style="stop-color:#9da7d7;stop-opacity:0;"
+ offset="1"
+ id="stop22905" />
+ </linearGradient>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lend"
+ style="overflow:visible;">
+ <path
+ id="path17830"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.8) rotate(180) translate(12.5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path17827"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8) translate(12.5,0)" />
+ </marker>
+ <linearGradient
+ id="linearGradient14609">
+ <stop
+ id="stop14611"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop14613"
+ offset="1"
+ style="stop-color:#ff9d9d;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient14599">
+ <stop
+ id="stop14601"
+ offset="0"
+ style="stop-color:#b1c8ff;stop-opacity:1;" />
+ <stop
+ id="stop14603"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient9630">
+ <stop
+ style="stop-color:#030000;stop-opacity:1;"
+ offset="0"
+ id="stop9632" />
+ <stop
+ style="stop-color:#030000;stop-opacity:0;"
+ offset="1"
+ id="stop9634" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3144">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3146" />
+ <stop
+ style="stop-color:#898585;stop-opacity:0;"
+ offset="1"
+ id="stop3148" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3144"
+ id="linearGradient7620"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,14.768091,-4.73212)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3144"
+ id="linearGradient7664"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,135.98639,-4.73213)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3144"
+ id="linearGradient7684"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,260.23514,-4.73212)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14609"
+ id="linearGradient13600"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,73.861991,207.39991)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14609"
+ id="linearGradient13602"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,198.11074,207.39991)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient22901"
+ id="radialGradient22907"
+ cx="214.15234"
+ cy="161.40764"
+ fx="214.15234"
+ fy="161.40764"
+ r="34.795188"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3144"
+ id="linearGradient23025"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,18.600748,302.65487)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14609"
+ id="linearGradient28994"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,18.600773,481.17778)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient28966"
+ id="linearGradient28996"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7361648,0,0,0.2163389,18.431136,546.16953)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3144"
+ id="linearGradient29026"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,407.77533,303.18174)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14609"
+ id="linearGradient29028"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,407.77536,481.70465)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient28966"
+ id="linearGradient29030"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7361648,0,0,0.2163389,407.60572,546.6964)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient30011"
+ id="linearGradient30009"
+ x1="407.16495"
+ y1="793.64789"
+ x2="513.12079"
+ y2="793.64789"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8453762,0,0,0.6900936,261.57945,20.793414)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3144"
+ id="linearGradient30045"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,17.702047,632.20205)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14609"
+ id="linearGradient30047"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,17.702072,810.72493)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient28966"
+ id="linearGradient30049"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7361648,0,0,0.2163389,17.532435,875.71673)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3144"
+ id="linearGradient30079"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,406.70205,631.77348)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3144"
+ id="linearGradient30099"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,577.84491,631.77865)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient28966"
+ id="linearGradient30111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7361648,0,0,0.2163389,577.38958,697.06866)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3144"
+ id="linearGradient30141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,13.987768,950.59751)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3144"
+ id="linearGradient30143"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,185.13064,950.60271)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient28966"
+ id="linearGradient30145"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7361648,0,0,0.2163389,184.67531,1015.8927)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient30011"
+ id="linearGradient30155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8453762,0,0,0.6900936,-115.27956,642.95653)"
+ x1="407.16495"
+ y1="793.64789"
+ x2="513.12079"
+ y2="793.64789" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient30011"
+ id="linearGradient30207"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8453762,0,0,0.6900936,255.57759,668.81627)"
+ x1="407.16495"
+ y1="793.64789"
+ x2="513.12079"
+ y2="793.64789" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3144"
+ id="linearGradient30209"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,401.77347,951.20458)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14609"
+ id="linearGradient30211"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7347995,0,0,0.5175383,401.7735,1129.7274)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient28966"
+ id="linearGradient30213"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7361648,0,0,0.2163389,401.60386,1194.7192)"
+ x1="52.07793"
+ y1="89.181732"
+ x2="196.4196"
+ y2="89.181732" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.7"
+ inkscape:cx="284.9253"
+ inkscape:cy="317.35971"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1026"
+ inkscape:window-height="1108"
+ inkscape:window-x="0"
+ inkscape:window-y="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="opacity:1;fill:#aaaaaa;fill-opacity:1;stroke:#c9c9c9;stroke-width:0.47417995;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect31304"
+ width="302.2439"
+ height="3.4562778"
+ x="417.59393"
+ y="1105.9136"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="677.01654"
+ y="1086.4985"
+ id="text31306"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="677.01654"
+ y="1086.4985"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31308">User Session</tspan><tspan
+ sodipodi:role="line"
+ x="677.01654"
+ y="1098.9985"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31310">(unprivileged)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="675.82733"
+ y="1120.5072"
+ id="text31312"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="675.82733"
+ y="1120.5072"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31314">System Context</tspan><tspan
+ sodipodi:role="line"
+ x="675.82733"
+ y="1133.0072"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31316">(privileged)</tspan></text>
+ <rect
+ style="opacity:1;fill:#aaaaaa;fill-opacity:1;stroke:#c9c9c9;stroke-width:0.47417995;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect31290"
+ width="302.2439"
+ height="3.4562778"
+ x="417.61426"
+ y="435.89325"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="677.03687"
+ y="416.47827"
+ id="text31292"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="677.03687"
+ y="416.47827"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31294">User Session</tspan><tspan
+ sodipodi:role="line"
+ x="677.03687"
+ y="428.97827"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31296">(unprivileged)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="675.84766"
+ y="450.48694"
+ id="text31298"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="675.84766"
+ y="450.48694"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31300">System Context</tspan><tspan
+ sodipodi:role="line"
+ x="675.84766"
+ y="462.98694"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31302">(privileged)</tspan></text>
+ <rect
+ style="opacity:1;fill:#aaaaaa;fill-opacity:1;stroke:#c9c9c9;stroke-width:0.47417995;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect31262"
+ width="302.2439"
+ height="3.4562778"
+ x="55.903503"
+ y="1106.2942"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="101.32614"
+ y="1086.8793"
+ id="text31264"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="101.32614"
+ y="1086.8793"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31266">User Session</tspan><tspan
+ sodipodi:role="line"
+ x="101.32614"
+ y="1099.3793"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31268">(unprivileged)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="100.13693"
+ y="1120.8879"
+ id="text31270"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="100.13693"
+ y="1120.8879"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31272">System Context</tspan><tspan
+ sodipodi:role="line"
+ x="100.13693"
+ y="1133.3879"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31274">(privileged)</tspan></text>
+ <rect
+ style="opacity:1;fill:#aaaaaa;fill-opacity:1;stroke:#c9c9c9;stroke-width:0.47417995;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect31248"
+ width="302.2439"
+ height="3.4562778"
+ x="55.903503"
+ y="765.45148"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="315.32614"
+ y="746.0365"
+ id="text31250"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="315.32614"
+ y="746.0365"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31252">User Session</tspan><tspan
+ sodipodi:role="line"
+ x="315.32614"
+ y="758.5365"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31254">(unprivileged)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="314.13693"
+ y="780.04517"
+ id="text31256"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="314.13693"
+ y="780.04517"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31258">System Context</tspan><tspan
+ sodipodi:role="line"
+ x="314.13693"
+ y="792.54517"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31260">(privileged)</tspan></text>
+ <rect
+ style="opacity:1;fill:#aaaaaa;fill-opacity:1;stroke:#c9c9c9;stroke-width:0.47417995;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect31216"
+ width="302.2439"
+ height="3.4562778"
+ x="56.020889"
+ y="434.34576"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="315.44351"
+ y="414.93082"
+ id="text31218"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="315.44351"
+ y="414.93082"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31220">User Session</tspan><tspan
+ sodipodi:role="line"
+ x="315.44351"
+ y="427.43082"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31222">(unprivileged)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="314.2543"
+ y="448.93945"
+ id="text31224"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="314.2543"
+ y="448.93945"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31226">System Context</tspan><tspan
+ sodipodi:role="line"
+ x="314.2543"
+ y="461.43945"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31228">(privileged)</tspan></text>
+ <rect
+ style="opacity:1;fill:#aaaaaa;fill-opacity:1;stroke:#c9c9c9;stroke-width:0.63319677;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect15862"
+ width="564.94202"
+ height="3.297261"
+ x="33.201633"
+ y="103.93921"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient7620);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect2160"
+ width="105.40086"
+ height="54.89323"
+ x="53.365585"
+ y="13.976227"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="107.07617"
+ y="38.39238"
+ id="text7646"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3"><tspan
+ sodipodi:role="line"
+ x="107.07617"
+ y="38.39238"
+ id="tspan7650"
+ style="text-align:center;text-anchor:middle">Networking</tspan><tspan
+ sodipodi:role="line"
+ x="107.07617"
+ y="53.39238"
+ id="tspan7654"
+ style="text-align:center;text-anchor:middle">Applet</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient7664);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect7656"
+ width="105.40086"
+ height="54.89323"
+ x="174.58391"
+ y="13.976227"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="228.29448"
+ y="38.392403"
+ id="text7658"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3"><tspan
+ sodipodi:role="line"
+ x="228.29448"
+ y="38.392403"
+ id="tspan7662"
+ style="text-align:center;text-anchor:middle">File</tspan><tspan
+ sodipodi:role="line"
+ x="228.29448"
+ y="53.392403"
+ style="text-align:center;text-anchor:middle"
+ id="tspan7668">Manager</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient7684);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect7676"
+ width="105.40086"
+ height="54.89323"
+ x="298.83267"
+ y="13.976227"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="352.54324"
+ y="38.392403"
+ id="text7678"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3"><tspan
+ sodipodi:role="line"
+ x="352.54324"
+ y="38.392403"
+ style="text-align:center;text-anchor:middle"
+ id="tspan7682">Power</tspan><tspan
+ sodipodi:role="line"
+ x="352.54324"
+ y="53.392403"
+ style="text-align:center;text-anchor:middle"
+ id="tspan7688">Manager</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient13600);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect13584"
+ width="105.40086"
+ height="54.89323"
+ x="112.4595"
+ y="226.10825"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="166.17007"
+ y="250.52441"
+ id="text13586"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3"><tspan
+ sodipodi:role="line"
+ x="166.17007"
+ y="250.52441"
+ style="text-align:center;text-anchor:middle"
+ id="tspan13590">org.freedesktop.</tspan><tspan
+ sodipodi:role="line"
+ x="166.17007"
+ y="265.52441"
+ style="text-align:center;text-anchor:middle"
+ id="tspan13606">Hal</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient13602);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect13592"
+ width="105.40086"
+ height="54.89323"
+ x="236.70827"
+ y="226.10828"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="290.41885"
+ y="250.52444"
+ id="text13594"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3"><tspan
+ sodipodi:role="line"
+ x="290.41885"
+ y="250.52444"
+ style="text-align:center;text-anchor:middle"
+ id="tspan13598">org.freedesktop.</tspan><tspan
+ sodipodi:role="line"
+ x="290.41885"
+ y="265.52444"
+ style="text-align:center;text-anchor:middle"
+ id="tspan13610">NetworkManager</tspan></text>
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#radialGradient22907);fill-opacity:1;stroke:#000000;stroke-width:0.89999998;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="path13612"
+ sodipodi:cx="214.15234"
+ sodipodi:cy="161.40764"
+ sodipodi:rx="34.345188"
+ sodipodi:ry="34.345188"
+ d="M 248.49753 161.40764 A 34.345188 34.345188 0 1 1 179.80716,161.40764 A 34.345188 34.345188 0 1 1 248.49753 161.40764 z"
+ transform="translate(13.131983,6.28427)"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="227.69116"
+ y="158.47198"
+ id="text16841"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3"><tspan
+ sodipodi:role="line"
+ x="227.69116"
+ y="158.47198"
+ style="text-align:center;text-anchor:middle"
+ id="tspan16845">System</tspan><tspan
+ sodipodi:role="line"
+ x="227.69116"
+ y="173.47198"
+ style="text-align:center;text-anchor:middle"
+ id="tspan16849">Message</tspan><tspan
+ sodipodi:role="line"
+ x="227.69116"
+ y="188.47198"
+ style="text-align:center;text-anchor:middle"
+ id="tspan16851">Bus</tspan></text>
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-mid:none;marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 122.22846,79.80864 L 186.87822,141.42794"
+ id="path18030"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-mid:none;marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 224.25387,76.73757 L 225.26402,128.25535"
+ id="path18032"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-mid:none;marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 259.6092,138.39749 C 336.3808,75.76803 336.3808,75.76803 336.3808,75.76803"
+ id="path18034"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-mid:none;marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 302.03561,217.18938 L 261.62951,184.8645"
+ id="path18036"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-mid:none;marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 148.49242,218.19954 L 189.90868,187.89496"
+ id="path18038"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="503.40186"
+ y="64.444763"
+ id="text22909"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text22919.png"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3"><tspan
+ sodipodi:role="line"
+ x="503.40186"
+ y="64.444763"
+ style="font-size:18px;text-align:center;text-anchor:middle"
+ id="tspan22913">User Session</tspan><tspan
+ sodipodi:role="line"
+ x="503.40186"
+ y="86.944763"
+ style="font-size:18px;text-align:center;text-anchor:middle"
+ id="tspan22917">(unprivileged)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="506.21265"
+ y="128.4534"
+ id="text22919"
+ inkscape:export-xdpi="127.3"
+ inkscape:export-ydpi="127.3"><tspan
+ sodipodi:role="line"
+ x="506.21265"
+ y="128.4534"
+ style="font-size:18px;text-align:center;text-anchor:middle"
+ id="tspan22923">System Context</tspan><tspan
+ sodipodi:role="line"
+ x="506.21265"
+ y="150.9534"
+ style="font-size:18px;text-align:center;text-anchor:middle"
+ id="tspan22927">(privileged)</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient23025);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect22959"
+ width="105.40086"
+ height="54.89323"
+ x="57.198269"
+ y="321.36322"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="109.3157"
+ y="345.77936"
+ id="text22961"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="109.3157"
+ y="345.77936"
+ id="tspan22963"
+ style="text-align:center;text-anchor:middle">File</tspan><tspan
+ sodipodi:role="line"
+ x="109.3157"
+ y="360.77936"
+ style="text-align:center;text-anchor:middle"
+ id="tspan22965">Manager</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 74.682016,381.43904 L 104.24392,491.69186"
+ id="path25955"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="416.05093"
+ y="20.590385"
+ id="text25957"
+ transform="matrix(0.2589804,0.9658826,-0.9658826,0.2589804,0,0)"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan25959"
+ x="416.05093"
+ y="20.590385">Mount()</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-opacity:1"
+ d="M 116.72967,713.71023 L 150.59062,822.71953"
+ id="path26968"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="734.48871"
+ y="94.180153"
+ id="text26970"
+ transform="matrix(0.2966428,0.9549885,-0.9549885,0.2966428,0,0)"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan26972"
+ x="734.48871"
+ y="94.180153">Not Privileged</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.6543473px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 554.54111,568.48473 L 601.89116,568.48473"
+ id="path27000"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="580.93542"
+ y="562.5321"
+ id="text27971"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="580.93542"
+ y="562.5321"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan27975">Check</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30009);fill-opacity:1;stroke:#030000;stroke-width:0.42391345;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect27977"
+ width="89.103386"
+ height="37.881466"
+ x="606.02161"
+ y="549.54401"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="651.82117"
+ y="564.31549"
+ id="text27981"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="651.82117"
+ y="564.31549"
+ style="text-align:center;text-anchor:middle"
+ id="tspan27985">Authorization</tspan><tspan
+ sodipodi:role="line"
+ x="651.82117"
+ y="579.31549"
+ style="text-align:center;text-anchor:middle"
+ id="tspan27989">Database</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient28994);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect28980"
+ width="105.40086"
+ height="54.89323"
+ x="57.198269"
+ y="499.88608"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient28996);fill-opacity:1;stroke:#030000;stroke-width:0.35916778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect28982"
+ width="105.5967"
+ height="22.946213"
+ x="57.100349"
+ y="553.98993"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="110.21804"
+ y="524.30225"
+ id="text28984"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="110.21804"
+ y="524.30225"
+ style="text-align:center;text-anchor:middle"
+ id="tspan28986">org.freedesktop.</tspan><tspan
+ sodipodi:role="line"
+ x="110.21804"
+ y="539.30225"
+ style="text-align:center;text-anchor:middle"
+ id="tspan28988">Hal</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="109.47976"
+ y="568.22235"
+ id="text28990"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="109.47976"
+ y="568.22235"
+ style="text-align:center;text-anchor:middle"
+ id="tspan28992">libpolkit</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient29026);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect28998"
+ width="105.40086"
+ height="54.89323"
+ x="446.37286"
+ y="321.89014"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="498.49026"
+ y="346.30627"
+ id="text29000"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="498.49026"
+ y="346.30627"
+ id="tspan29002"
+ style="text-align:center;text-anchor:middle">File</tspan><tspan
+ sodipodi:role="line"
+ x="498.49026"
+ y="361.30627"
+ style="text-align:center;text-anchor:middle"
+ id="tspan29004">Manager</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 463.8566,381.96591 L 493.4185,492.21873"
+ id="path29006"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="517.3515"
+ y="-355.17126"
+ id="text29008"
+ transform="matrix(0.2589804,0.9658826,-0.9658826,0.2589804,0,0)"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan29010"
+ x="517.3515"
+ y="-355.17126">Mount()</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient29028);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect29012"
+ width="105.40086"
+ height="54.89323"
+ x="446.37286"
+ y="500.41296"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient29030);fill-opacity:1;stroke:#030000;stroke-width:0.35916778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect29014"
+ width="105.5967"
+ height="22.946213"
+ x="446.27493"
+ y="554.51678"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="499.39261"
+ y="524.8291"
+ id="text29016"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="499.39261"
+ y="524.8291"
+ style="text-align:center;text-anchor:middle"
+ id="tspan29018">org.freedesktop.</tspan><tspan
+ sodipodi:role="line"
+ x="499.39261"
+ y="539.8291"
+ style="text-align:center;text-anchor:middle"
+ id="tspan29020">Hal</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="498.65433"
+ y="568.74921"
+ id="text29022"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="498.65433"
+ y="568.74921"
+ style="text-align:center;text-anchor:middle"
+ id="tspan29024">libpolkit</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30045);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30017"
+ width="105.40086"
+ height="54.89323"
+ x="56.299564"
+ y="650.9104"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="108.417"
+ y="675.32654"
+ id="text30019"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="108.417"
+ y="675.32654"
+ id="tspan30021"
+ style="text-align:center;text-anchor:middle">File</tspan><tspan
+ sodipodi:role="line"
+ x="108.417"
+ y="690.32654"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30023">Manager</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 73.783317,710.98622 L 103.34522,821.23903"
+ id="path30025"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="734.12262"
+ y="106.80471"
+ id="text30027"
+ transform="matrix(0.2589804,0.9658826,-0.9658826,0.2589804,0,0)"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan30029"
+ x="734.12262"
+ y="106.80471">Mount()</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30047);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30031"
+ width="105.40086"
+ height="54.89323"
+ x="56.299564"
+ y="829.43323"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient30049);fill-opacity:1;stroke:#030000;stroke-width:0.35916778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30033"
+ width="105.5967"
+ height="22.946213"
+ x="56.201649"
+ y="883.53711"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="109.31934"
+ y="853.84949"
+ id="text30035"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="109.31934"
+ y="853.84949"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30037">org.freedesktop.</tspan><tspan
+ sodipodi:role="line"
+ x="109.31934"
+ y="868.84949"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30039">Hal</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="108.58106"
+ y="897.76953"
+ id="text30041"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="108.58106"
+ y="897.76953"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30043">libpolkit</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30079);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30051"
+ width="105.40086"
+ height="54.89323"
+ x="445.29956"
+ y="650.48181"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="497.41699"
+ y="674.89795"
+ id="text30053"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="497.41699"
+ y="674.89795"
+ id="tspan30055"
+ style="text-align:center;text-anchor:middle">File</tspan><tspan
+ sodipodi:role="line"
+ x="497.41699"
+ y="689.89795"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30057">Manager</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.6543473px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 557.32498,676.80788 L 604.67503,676.80788"
+ id="path30085"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="579.71936"
+ y="670.85529"
+ id="text30087"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="579.71936"
+ y="670.85529"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan30089">Use</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30099);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30091"
+ width="105.40086"
+ height="54.89323"
+ x="616.44238"
+ y="650.48694"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="668.55981"
+ y="674.90308"
+ id="text30093"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="668.55981"
+ y="674.90308"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30097">Authentication</tspan><tspan
+ sodipodi:role="line"
+ x="668.55981"
+ y="689.90308"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30103">Agent</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30111);fill-opacity:1;stroke:#030000;stroke-width:0.35916778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30105"
+ width="105.5967"
+ height="22.946213"
+ x="616.05884"
+ y="704.88904"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="668.43817"
+ y="719.12146"
+ id="text30107"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="668.43817"
+ y="719.12146"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30109">libpolkit-grant</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30141);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30113"
+ width="105.40086"
+ height="54.89323"
+ x="52.585289"
+ y="969.30579"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="104.70271"
+ y="993.72192"
+ id="text30115"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="104.70271"
+ y="993.72192"
+ id="tspan30117"
+ style="text-align:center;text-anchor:middle">File</tspan><tspan
+ sodipodi:role="line"
+ x="104.70271"
+ y="1008.7219"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30119">Manager</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.6543473px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 164.61071,995.63194 L 211.96076,995.63194"
+ id="path30121"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="187.00504"
+ y="989.6792"
+ id="text30123"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="187.00504"
+ y="989.6792"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan30125">Use</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30143);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30127"
+ width="105.40086"
+ height="54.89323"
+ x="223.72812"
+ y="969.31091"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="275.84558"
+ y="993.72699"
+ id="text30129"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="275.84558"
+ y="993.72699"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30131">Authentication</tspan><tspan
+ sodipodi:role="line"
+ x="275.84558"
+ y="1008.727"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30133">Agent</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30145);fill-opacity:1;stroke:#030000;stroke-width:0.35916778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30135"
+ width="105.5967"
+ height="22.946213"
+ x="223.34451"
+ y="1023.7131"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="275.72391"
+ y="1037.9456"
+ id="text30137"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="275.72391"
+ y="1037.9456"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30139">libpolkit-grant</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30155);fill-opacity:1;stroke:#030000;stroke-width:0.42391345;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30147"
+ width="89.103386"
+ height="37.881466"
+ x="229.1626"
+ y="1171.7073"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="274.96222"
+ y="1186.4788"
+ id="text30149"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="274.96222"
+ y="1186.4788"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30151">Authorization</tspan><tspan
+ sodipodi:role="line"
+ x="274.96222"
+ y="1201.4788"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30153">Database</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 254.31223,1055.3785 L 283.87413,1165.6314"
+ id="path30157"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="1091.5134"
+ y="3.301826"
+ id="text30159"
+ transform="matrix(0.2589804,0.9658826,-0.9658826,0.2589804,0,0)"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan30161"
+ x="1091.5134"
+ y="3.301826">On successful,</tspan><tspan
+ sodipodi:role="line"
+ x="1091.5134"
+ y="18.301826"
+ id="tspan30163">auth, write cookie</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.6543473px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 548.53925,1216.5075 L 595.8893,1216.5075"
+ id="path30165"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="574.93365"
+ y="1210.5551"
+ id="text30167"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="574.93365"
+ y="1210.5551"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan30169">Check</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30207);fill-opacity:1;stroke:#030000;stroke-width:0.42391345;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30171"
+ width="89.103386"
+ height="37.881466"
+ x="600.01978"
+ y="1197.567"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="645.81934"
+ y="1212.3383"
+ id="text30173"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="645.81934"
+ y="1212.3383"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30175">Authorization</tspan><tspan
+ sodipodi:role="line"
+ x="645.81934"
+ y="1227.3383"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30177">Database</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30209);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30179"
+ width="105.40086"
+ height="54.89323"
+ x="440.37097"
+ y="969.91284"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="492.48843"
+ y="994.32898"
+ id="text30181"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="492.48843"
+ y="994.32898"
+ id="tspan30183"
+ style="text-align:center;text-anchor:middle">File</tspan><tspan
+ sodipodi:role="line"
+ x="492.48843"
+ y="1009.329"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30185">Manager</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Lend);stroke-opacity:1"
+ d="M 457.85474,1029.9888 L 487.41664,1140.2415"
+ id="path30187"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="1141.7095"
+ y="-181.54793"
+ id="text30189"
+ transform="matrix(0.2589804,0.9658826,-0.9658826,0.2589804,0,0)"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan30191"
+ x="1141.7095"
+ y="-181.54793">Mount()</tspan></text>
+ <rect
+ style="opacity:1;fill:url(#linearGradient30211);fill-opacity:1;stroke:#030000;stroke-width:0.55500662;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30193"
+ width="105.40086"
+ height="54.89323"
+ x="440.37097"
+ y="1148.4359"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <rect
+ style="opacity:1;fill:url(#linearGradient30213);fill-opacity:1;stroke:#030000;stroke-width:0.35916778;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30195"
+ width="105.5967"
+ height="22.946213"
+ x="440.27307"
+ y="1202.5397"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="493.39078"
+ y="1172.8521"
+ id="text30197"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="493.39078"
+ y="1172.8521"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30199">org.freedesktop.</tspan><tspan
+ sodipodi:role="line"
+ x="493.39078"
+ y="1187.8521"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30201">Hal</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="492.6525"
+ y="1216.7721"
+ id="text30203"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="492.6525"
+ y="1216.7721"
+ style="text-align:center;text-anchor:middle"
+ id="tspan30205">libpolkit</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:url(#Arrow1Lstart);marker-end:none;stroke-opacity:1"
+ d="M 496.01522,1030.2861 L 529.87617,1139.2954"
+ id="path30221"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="1173.8359"
+ y="-173.60796"
+ id="text30223"
+ transform="matrix(0.2966428,0.9549885,-0.9549885,0.2966428,0,0)"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan30225"
+ x="1173.8359"
+ y="-173.60796">OK</tspan></text>
+ <rect
+ style="opacity:1;fill:#4c4c4c;fill-opacity:1;stroke:#c9c9c9;stroke-width:0.70579964;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30227"
+ width="717.72656"
+ height="3.224658"
+ x="16.136728"
+ y="610.74988"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <rect
+ style="opacity:1;fill:#4c4c4c;fill-opacity:1;stroke:#c9c9c9;stroke-width:0.70579964;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30229"
+ width="717.72656"
+ height="3.224658"
+ x="9.7081537"
+ y="937.03558"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <rect
+ style="opacity:1;fill:#4c4c4c;fill-opacity:1;stroke:#c9c9c9;stroke-width:0.8039602;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect30231"
+ width="960.48553"
+ height="3.1264975"
+ x="310.69086"
+ y="-371.56323"
+ transform="matrix(0,1,-1,0,0,0)"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <rect
+ style="opacity:1;fill:#aaaaaa;fill-opacity:1;stroke:#c9c9c9;stroke-width:0.47417995;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:19;stroke-opacity:1"
+ id="rect31276"
+ width="302.2439"
+ height="3.4562778"
+ x="417.58118"
+ y="765.91351"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="677.00378"
+ y="746.49854"
+ id="text31278"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="677.00378"
+ y="746.49854"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31280">User Session</tspan><tspan
+ sodipodi:role="line"
+ x="677.00378"
+ y="758.99854"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31282">(unprivileged)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="675.81458"
+ y="780.5072"
+ id="text31284"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ x="675.81458"
+ y="780.5072"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31286">System Context</tspan><tspan
+ sodipodi:role="line"
+ x="675.81458"
+ y="793.0072"
+ style="font-size:10px;text-align:center;text-anchor:middle"
+ id="tspan31288">(privileged)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="5.7142835"
+ y="343.79077"
+ id="text31318"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan31320"
+ x="5.7142835"
+ y="343.79077"
+ style="font-size:36px">1.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="382.24597"
+ y="344.3414"
+ id="text31322"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan31324"
+ x="382.24597"
+ y="344.3414"
+ style="font-size:36px">2.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="5.9801025"
+ y="650.06604"
+ id="text31326"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan31328"
+ x="5.9801025"
+ y="650.06604"
+ style="font-size:36px">3.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="382.51178"
+ y="650.6167"
+ id="text31330"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan31332"
+ x="382.51178"
+ y="650.6167"
+ style="font-size:36px">4.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="5.1229744"
+ y="979.06604"
+ id="text31334"
+ inkscape:export-filename="/home/davidz/Hacking/PolicyKit/doc/text31338.png"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan31336"
+ x="5.1229744"
+ y="979.06604"
+ style="font-size:36px">5.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="381.65466"
+ y="979.6167"
+ id="text31338"
+ inkscape:export-xdpi="99.129997"
+ inkscape:export-ydpi="99.129997"><tspan
+ sodipodi:role="line"
+ id="tspan31340"
+ x="381.65466"
+ y="979.6167"
+ style="font-size:36px">6.</tspan></text>
+ </g>
+</svg>
diff --git a/doc/spec/polkit-spec-model.xml b/doc/spec/polkit-spec-model.xml
index 37034ee..ccc4173 100644
--- a/doc/spec/polkit-spec-model.xml
+++ b/doc/spec/polkit-spec-model.xml
@@ -19,28 +19,35 @@
</para>
<para>
+ </para>
+
+ <para>
A Mechanism should never trust any application that tries to
use; it needs to carefully verify all data and requests passed
to it from the application. This is the model employed by HAL
and NetworkManager:
</para>
-
<para>
- (TODO: diagram showing g-p-m, g-v-m, nm-applet, HAL and NM)
+ <inlinegraphic fileref="diagram-bus-model.png" format="PNG"/>
</para>
-
<para>
- This model also applies to other security sensitive
- applications:
+ This model is not by any means restricted to applications using
+ D-Bus; it applies to most other security sensitive
+ applications. For example, the PAM module for checking your
+ password can run unprivileged and uses a simple and easy to
+ audit privileged helper
+ application, <literal>/sbin/unix_chkpwd</literal> on Red Hat
+ systems, to actually check the password
+ against <literal>/etc/shadow</literal>. In a similar fashion,
+ all
+ <ulink type="http"
+ url="http://en.wikipedia.org/wiki/Setuid">setuid
+ root</ulink> applications carefully check (or at least
+ should) incoming parameters and the environment in which
+ they are launched.
</para>
<para>
- (TODO: diagram showing 1) gnome-screensaver / PAM-stack +
- /sbin/unix_chkpwd; and 2) gdm + gdm-greeter; 3) mount(8); 4)
- other setuid examples)
- </para>
-
- <para>
In general, such an architecture is thought of as secure as long
as the Mechanism (and it's dependent libraries) have been
verified to be secure.
@@ -98,14 +105,6 @@
</para>
<para>
- (TODO: mention that libpolkit represents the Subject as either a
- Caller (e.g. a process) or a Session (e.g. a group of processes
- in a desktop session) and what the implications are here;
- e.g. for granting/removing ACL's on device
- nodes. etc. etc. etc.)
- </para>
-
- <para>
One way to think about a Mechanism is that the Mechanism is
split into an enforcer and a decider component. When an
application attempts to access the Mechanism, the enforcer
@@ -141,12 +140,14 @@
<emphasis>Yes:</emphasis> It is ok for the Mechanism to
carry out the Action requsted by the given Subject.
</para>
-
+ </listitem>
+ <listitem>
<para>
<emphasis>No:</emphasis> The Mechanism should not carry
out the Action requested by the given Subject.
</para>
-
+ </listitem>
+ <listitem>
<para>
<emphasis>Require authentication:</emphasis> The Subject
(e.g. the UI application) needs to ask the user to
@@ -165,12 +166,13 @@
user authentication (user puts in the root password or a
user in an administrator group authenticates).
</para>
-
+ </listitem>
+ <listitem>
<para>
The authorization can be kept (this is also specified in
the return value from <literal>libpolkit</literal>) either
1) indefinitely (e.g. it persists across reboots and
- different desktop sessions); 2) for the remainer of the
+ different desktop sessions); 2) for the remainder of the
desktop session the Subject is part of; or 3) confined to
the process life-time of the Subject.
</para>
@@ -188,10 +190,316 @@
presence and contents of this cookie that will
allow <literal>libpolkit</literal> to
return <emphasis>Yes</emphasis> when the Subject asks the
- Mechanism to carry out the Action again.
+ Mechanism to carry out the Action again. This whole process is
+ best explained by a diagram:
+ </para>
+
+ <para>
+ <inlinegraphic fileref="diagram-interaction.png" format="PNG"/>
+ </para>
+
+ <para>
+ Detail on the diagram:
+ <orderedlist>
+ <listitem>
+ <para>
+ The user double clicks an icon on the desktop that
+ resembles a hard drive. As mounting file systems is a
+ privileged operation, the File Manager calls, via the
+ system message bus, into the Mechanism (HAL).
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The Mechanism identifies the caller, using ConsoleKit, all
+ the relevant information about the caller and stores this
+ information in
+ a <link linkend="polkit-polkit-caller">PolKitCaller</link>
+ object. This information includes
+ <itemizedlist>
+ <listitem>
+ <para>
+ UNIX user id (uid)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ UNIX process id (pid)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ An identifier for the desktop session and whether
+ the session is active (e.g. currently showing on a
+ display), whether it's local and if it's remote, the
+ address of the remote display
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Optional OS specific attributes such as the SELinux security context.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Second, the Mechanism creates
+ a <link linkend="polkit-polkit-action">PolKitAction</link>
+ object that represents the action that the caller wants
+ the Mechanism to perform on it's behalf. Specifically, for
+ HAL, the D-Bus method call <literal>Mount()</literal> maps
+ into two
+ actions: <literal>org.freedesktop.hal.storage.mount-fixed</literal>
+ and <literal>org.freedesktop.hal.storage.mount-removable</literal>. As
+ the device the user wants to mount is an internal hard
+ disk, HAL
+ picks <literal>org.freedesktop.hal.storage.mount-fixed</literal>
+ and constructs
+ the <link linkend="polkit-polkit-action">PolKitAction</link>
+ object.
+ </para>
+ <para>
+ Third, HAL now calls
+ the <link linkend="polkit-context-can-caller-do-action">polkit_context_can_caller_do_action()</link>
+ function in <literal>libpolkit</literal> and passes
+ the <link linkend="polkit-polkit-action">PolKitAction</link>
+ and <link linkend="polkit-polkit-caller">PolKitCaller</link>
+ objects as parameters. Armed with all this
+ information, <literal>libpolkit</literal> is now in a
+ position to make a decision; see
+ <xref linkend="polkit-conf"/> for how exactly this is
+ done.
+ </para>
+ <para>
+ The result
+ from <literal>libpolkit</literal> is of the
+ type <link linkend="polkit-polkit-result">PolKitResult</link>
+ and tells whether the given caller is allowed to do the
+ given action. If the result is yes
+ (e.g. POLKIT_RESULT_YES), the Mechanism carries out the
+ action on behalf of the caller.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If the result from <literal>libpolkit</literal> is not
+ yes, the Mechanism sends a reply back to the caller with
+ two pieces of information:
+ <itemizedlist>
+ <listitem>
+ <para>
+ The result from <literal>libpolkit</literal> itself.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The action that the caller needs to be authorized to
+ do.
+ </para>
+ </listitem>
+ </itemizedlist>
+ For this example, HAL returns an exception via D-Bus with
+ the
+ name <literal>org.freedesktop.Hal.Device.PermissionDeniedByPolicy</literal>
+ and the detail text
+ string <literal>"org.freedesktop.hal.storage.mount-fixed
+ auth_admin_keep_always"</literal> (assuming the return code
+ was POLKIT_RESULT_AUTH_ADMIN_KEEP_ALWAYS). This enables
+ the caller to take action and acquire authorization to do
+ this action.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The File Manager receives the exception from the Mechanism
+ and since the exception
+ name <literal>org.freedesktop.Hal.Device.PermissionDeniedByPolicy</literal>
+ is well-defined it decodes the exception detail string to
+ learn that in order to do what the user asked it (by
+ double clicking an icon resembling a hard drive), it needs
+ to make the user authenticate as an administrator in order
+ to be authorized for the
+ action <literal>org.freedesktop.hal.storage.mount-fixed</literal>.
+ </para>
+ <para>
+ The File Manager now proceeds to call into
+ an <emphasis>Authentication Agent</emphasis> and passes
+ two items of information
+ <itemizedlist>
+ <listitem>
+ <para>
+ The <link linkend="polkit-polkit-result">PolKitResult</link>
+ that <literal>libpolkit</literal> returned to the
+ Mechanism and passed on to the File Manager.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <link linkend="polkit-polkit-action">PolKitAction</link>
+ that <literal>libpolkit</literal> returned to the
+ Mechanism and passed on to the File Manager.
+ </para>
+ </listitem>
+ </itemizedlist>
+ In fact, the File Manager could implement an
+ Authentication Agent by itself but for both practical
+ reasons (implementing an Authentication Agent is not
+ trivial) and security reasons (it is typically a good idea
+ to have password handling in as few processes as possible)
+ it is preferable to have this done in a separate
+ process. For details on the Authentication Agent for the
+ GNOME desktop, please see the <ulink type="http"
+ url="http://hal.freedesktop.org/docs/PolicyKit-gnome/ref-auth-daemon.html">PolicyKit-gnome</ulink>
+ documentation.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The first thing that the Authentication Agent does when it
+ receives a request from an application is to validate the
+ incoming parameters to see if they are correct;
+ essentially it's doing exactly the same check as the
+ Mechanism was doing in step 2;
+ e.g. constructing <link linkend="polkit-polkit-caller">PolKitCaller</link>
+ and <link linkend="polkit-polkit-caller">PolKitAction</link>
+ objects, calling
+ into <link linkend="polkit-context-can-caller-do-action">polkit_context_can_caller_do_action()</link>
+ and examining the
+ returned <link linkend="polkit-polkit-result">PolKitResult</link>.
+ </para>
+ <para>
+ If the parameters check out, the Authentication Agent now
+ pops up a window to explain the user than authentication
+ is required to perform the desired action. Note that the
+ text to put in the dialog stems from files that are not
+ under the users control (see
+ <xref linkend="conf-declaring-actions"/> for details) so
+ there is no chance for any application to spoof the dialog
+ to trick the user into agreeing to authenticate for
+ something while in fact the authentication is about
+ something else.
+ </para>
+ <para>
+ Internally the Authentication Agent uses services provided
+ by the
+ <link linkend="polkit-polkit-grant">PolKitGrant</link>
+ class and is little more than a thin layer above the PAM
+ user API. The authentication itself is performed in a
+ privileged helper program (e.g. running
+ with <ulink type="http"
+ url="http://en.wikipedia.org/wiki/Setgid">setgid</ulink>
+ privileges) that communicates with the (graphical)
+ Authentication Agent through pipes. As such, if the user
+ successfully authenticates, the privileged helper program
+ writes an entry into the Authorization Database (it can do
+ so only because it is privileged). When the user is done
+ with the dialog (either through successful authentication
+ or by cancelling) a reply including whether the
+ authorization was gained is sent back to the File Manager
+ </para>
+ <para>
+ As mentioned, an authorization has a notion of scope which
+ is indicated in
+ the <link linkend="polkit-polkit-result">PolKitResult</link>
+ value from <literal>libpolkit</literal>. The user, when
+ authenticating, can also opt to lessen the scope
+ (e.g. keep the authorization only for the remainder of his
+ desktop session instead of forever)
+ (see <link linkend="PolKitGrantOverrideGrantType">this
+ section</link> for details) but he can never widen it -
+ this is checked and enforced by the privileged helper
+ program. The way the authorization is stored is as
+ follows:
+ <itemizedlist>
+ <listitem>
+ <para>
+ For POLKIT_RESULT_AUTH_[SELF|ADMIN] the
+ authorization is limited to the requesting process;
+ in this example it would be the File Manager. Thus,
+ the UNIX process id (and start time of the process
+ to avoid clashes caused by pid recycling) is used as
+ the primary key in the Authorization
+ Database. Entries like these are flushed when the
+ system is restarted.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ For POLKIT_RESULT_AUTH_[SELF|ADMIN]_KEEP_SESSION the
+ authorization is limited to processes in the same
+ desktop session as the calling process (e.g. the
+ File Manager). The ConsoleKit session identifier is
+ used as the the primary key in the Authorization
+ Database. Entries like these are also flushed when
+ the system is restarted.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ For POLKIT_RESULT_AUTH_[SELF|ADMIN]_KEEP_ALWAYS the
+ authorization is limited to processes owned by the
+ same user as the calling process (e.g. the File
+ Manager). The UNIX uid of the user is used as the
+ the primary key in the Authorization Database. These
+ entries are not flushed when the system is
+ restarted.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If the File Manager is told by the Authentication Agent
+ that the authorization for it to do the
+ action <literal>org.freedesktop.hal.storage.mount-fixed</literal>
+ was obtained (because the user successfully
+ authenticated), it asks the Mechanism (HAL to perform the
+ action again. This time, because an entry now exists in
+ the Authorization Database, the Mechanism (HAL) will
+ receive the answer POLKIT_RESULT_YES
+ from <literal>libpolkit</literal> and carry out the action
+ on behalf of the File Manager.
+ </para>
+ </listitem>
+
+ </orderedlist>
</para>
<para>
+ Furthermore, as hinted above, any program can check,
+ using <literal>libpolkit</literal>, whether a given caller is
+ authorized to do a specific Action (though users may be limited
+ to asking questions only about themselves; not about other
+ users). This is a feature, not a bug, as it allows to build user
+ interfaces where it's possible to use this information to aid
+ the user in carrying out work.
+ </para>
+ <para>
+ For example, the UI configuration dialog for the desktop clock
+ may provide a button for reconfiguring the system time (which is
+ a privileged operation). Using <literal>libpolkit</literal>, the
+ desktop code can determine, in advance, if the user is
+ authorized to do the
+ Action <literal>org.gnome.clockapplet.mechanism.settime</literal>. If
+ the user is authorized, the desktop will paint an ordinary
+ button <literal>"Set System Time"</literal>, if authentication
+ is required, it can paint another button <literal>"[L] Set
+ System Time..."</literal> where the L is an icon depicting a
+ closed padlock and if the answer is POLKIT_RESULT_NO it can make
+ the button insensitive so it can't be clicked. In fact, the
+ aforementioned PolicyKit-gnome library, provides
+ exactly <ulink type="http"
+ url="http://hal.freedesktop.org/docs/PolicyKit-gnome/PolKitGnomeAction.html">such
+ services</ulink> for GTK+ applications.
+ </para>
+
+ <para>
In order to keep the PolicyKit model reasonably simple, there is
no representation of the Object. Instead, a Mechanism that cares
about Objects (and many don't; for example, Mechanisms to change
@@ -200,7 +508,7 @@
instead divide a given Action into multiple sub-Actions
depending on the nature of the Object.
</para>
-
+
<para>
For example, consider a Mechanism for dial-up networking. Here,
the Subject is a UI applet running in a desktop session, the
@@ -225,14 +533,6 @@
<literal>dialup-connect-untrusted</literal>.
</para>
- <para>
- When authentication is involved, the interaction diagram for
- having a Mechanism carry out an Action on behalf of a Subject
- looks roughly like this
- </para>
- <para>
- TODO: include diagram
- </para>
</sect1>
</chapter>
More information about the hal-commit
mailing list