Files
jellytau/api/jellytau_lib/profiles/index.html
T

18 lines
6.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Multi-user profiles on one device."><title>jellytau_lib::profiles - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module profiles</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.11.5</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module profiles</a></h2><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate jellytau_<wbr>lib</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">jellytau_lib</a></div><h1>Module <span>profiles</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/jellytau_lib/profiles/mod.rs.html#1-197">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Multi-user profiles on one device.</p>
<p>A “profile” is an account on the <em>currently connected</em> Jellyfin server that
this device has signed into at least once. The rows have existed since the
first schema (<code>users</code>), and so have <code>storage_get_users</code> /
<code>storage_set_active_user</code>; what was missing was never the storage but the
decision of who may switch to what — which is domain logic, and stays here.</p>
<p>Two things this module is careful about:</p>
<ul>
<li><strong>Switching is not logging out.</strong> <code>auth_logout</code> calls Jellyfins logout
endpoint, which invalidates the token server-side. That is precisely the
behaviour a switch must not have, or every switch back would need a
password. Nothing here calls it.</li>
<li><strong>“Child account” is not modelled.</strong> A childs profile is simply one with
no PIN. The frontend receives an opaque <a href="enum.UnlockMethod.html" title="enum jellytau_lib::profiles::UnlockMethod"><code>UnlockMethod</code></a> and renders it; it
never infers a role, and no role taxonomy is invented on either side.</li>
</ul>
<p>TRACES: UR-082, UR-083, UR-084 | DR-267, DR-268</p>
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="pin/index.html" title="mod jellytau_lib::profiles::pin">pin</a></dt><dd>Profile PIN: hashing, and the lockout policy that decides what a guess costs.</dd><dt><a class="mod" href="store/index.html" title="mod jellytau_lib::profiles::store">store</a></dt><dd>Database access for profiles.</dd><dt><a class="mod" href="switch/index.html" title="mod jellytau_lib::profiles::switch">switch</a></dt><dd>Profile switch orchestration, as a plan rather than a procedure.</dd></dl><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.Profile.html" title="struct jellytau_lib::profiles::Profile">Profile</a></dt><dd>A switchable account on this device.</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.StartupTarget.html" title="enum jellytau_lib::profiles::StartupTarget">Startup<wbr>Target</a></dt><dd>What the app should do when it starts.</dd><dt><a class="enum" href="enum.UnlockMethod.html" title="enum jellytau_lib::profiles::UnlockMethod">Unlock<wbr>Method</a></dt><dd>How a profile is entered.</dd><dt><a class="enum" href="enum.UnlockOutcome.html" title="enum jellytau_lib::profiles::UnlockOutcome">Unlock<wbr>Outcome</a></dt><dd>The result of an unlock attempt.</dd></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.startup_target.html" title="fn jellytau_lib::profiles::startup_target">startup_<wbr>target</a></dt><dd>Decide the startup target from the profiles present and the users setting.</dd></dl></section></div></main></body></html>