kanidm/docs/v1.0.0rc7/rustdoc/kanidmd_lib/idm/server/trait.IdmServerTransaction.html
2022-10-29 09:32:11 +00:00

33 lines
32 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="API documentation for the Rust `IdmServerTransaction` trait in crate `kanidmd_lib`."><meta name="keywords" content="rust, rustlang, rust-lang, IdmServerTransaction"><title>IdmServerTransaction in kanidmd_lib::idm::server - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../main.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../../favicon.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">IdmServerTransaction</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#required-associated-types">Required Associated Types</a></h3><ul><li><a href="#associatedtype.QsTransactionType">QsTransactionType</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><ul><li><a href="#tymethod.get_qs_txn">get_qs_txn</a></li><li><a href="#tymethod.get_uat_validator_txn">get_uat_validator_txn</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#provided-methods">Provided Methods</a></h3><ul><li><a href="#method.check_account_uuid_valid">check_account_uuid_valid</a></li><li><a href="#method.process_apit_to_identity">process_apit_to_identity</a></li><li><a href="#method.process_uat_to_identity">process_uat_to_identity</a></li><li><a href="#method.validate_and_parse_sync_token_to_ident">validate_and_parse_sync_token_to_ident</a></li><li><a href="#method.validate_and_parse_token_to_ident">validate_and_parse_token_to_ident</a></li><li><a href="#method.validate_and_parse_token_to_token">validate_and_parse_token_to_token</a></li><li><a href="#method.validate_and_parse_uat">validate_and_parse_uat</a></li><li><a href="#method.validate_ldap_session">validate_ldap_session</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div></section><h2 class="location"><a href="index.html">In kanidmd_lib::idm::server</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../kanidmd_lib/index.html"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Trait <a href="../../index.html">kanidmd_lib</a>::<wbr><a href="../index.html">idm</a>::<wbr><a href="index.html">server</a>::<wbr><a class="trait" href="#">IdmServerTransaction</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#386-818">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust trait"><code>pub trait IdmServerTransaction&lt;'a&gt; {
type <a href="#associatedtype.QsTransactionType" class="associatedtype">QsTransactionType</a>: <a class="trait" href="../../server/trait.QueryServerTransaction.html" title="trait kanidmd_lib::server::QueryServerTransaction">QueryServerTransaction</a>&lt;'a&gt;;
fn <a href="#tymethod.get_qs_txn" class="fnname">get_qs_txn</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.IdmServerTransaction.html#associatedtype.QsTransactionType" title="type kanidmd_lib::idm::server::IdmServerTransaction::QsTransactionType">QsTransactionType</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.get_uat_validator_txn" class="fnname">get_uat_validator_txn</a>(&amp;self) -&gt; &amp;JwsValidator;
fn <a href="#method.validate_and_parse_token_to_ident" class="fnname">validate_and_parse_token_to_ident</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../identity/struct.Identity.html" title="struct kanidmd_lib::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.validate_and_parse_token_to_token" class="fnname">validate_and_parse_token_to_token</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="enum.Token.html" title="enum kanidmd_lib::idm::server::Token">Token</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.validate_and_parse_uat" class="fnname">validate_and_parse_uat</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../../kanidm_proto/v1/struct.UserAuthToken.html" title="struct kanidm_proto::v1::UserAuthToken">UserAuthToken</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.check_account_uuid_valid" class="fnname">check_account_uuid_valid</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uuid: &amp;<a class="struct" href="../../prelude/struct.Uuid.html" title="struct kanidmd_lib::prelude::Uuid">Uuid</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../account/struct.Account.html" title="struct kanidmd_lib::idm::account::Account">Account</a>&gt;, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.process_uat_to_identity" class="fnname">process_uat_to_identity</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uat: &amp;<a class="struct" href="../../../kanidm_proto/v1/struct.UserAuthToken.html" title="struct kanidm_proto::v1::UserAuthToken">UserAuthToken</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../identity/struct.Identity.html" title="struct kanidmd_lib::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.process_apit_to_identity" class="fnname">process_apit_to_identity</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;apit: &amp;<a class="struct" href="../../../kanidm_proto/v1/struct.ApiToken.html" title="struct kanidm_proto::v1::ApiToken">ApiToken</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry: <a class="struct" href="https://doc.rust-lang.org/1.64.0/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="type" href="../../entry/type.EntrySealedCommitted.html" title="type kanidmd_lib::entry::EntrySealedCommitted">EntrySealedCommitted</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../identity/struct.Identity.html" title="struct kanidmd_lib::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.validate_ldap_session" class="fnname">validate_ldap_session</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session: &amp;<a class="enum" href="../../ldap/enum.LdapSession.html" title="enum kanidmd_lib::ldap::LdapSession">LdapSession</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../identity/struct.Identity.html" title="struct kanidmd_lib::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.validate_and_parse_sync_token_to_ident" class="fnname">validate_and_parse_sync_token_to_ident</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../identity/struct.Identity.html" title="struct kanidmd_lib::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
}</code></pre></div><h2 id="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor"></a></h2><div class="methods"><div id="associatedtype.QsTransactionType" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#387">source</a></div><h4 class="code-header">type <a href="#associatedtype.QsTransactionType" class="associatedtype">QsTransactionType</a>: <a class="trait" href="../../server/trait.QueryServerTransaction.html" title="trait kanidmd_lib::server::QueryServerTransaction">QueryServerTransaction</a>&lt;'a&gt;</h4></div></div><h2 id="required-methods" class="small-section-header">Required Methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><div id="tymethod.get_qs_txn" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#389">source</a></div><h4 class="code-header">fn <a href="#tymethod.get_qs_txn" class="fnname">get_qs_txn</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.IdmServerTransaction.html#associatedtype.QsTransactionType" title="type kanidmd_lib::idm::server::IdmServerTransaction::QsTransactionType">QsTransactionType</a></h4></div><div id="tymethod.get_uat_validator_txn" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#391">source</a></div><h4 class="code-header">fn <a href="#tymethod.get_uat_validator_txn" class="fnname">get_uat_validator_txn</a>(&amp;self) -&gt; &amp;JwsValidator</h4></div></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="method.validate_and_parse_token_to_ident" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#401">source</a></div><h4 class="code-header">fn <a href="#method.validate_and_parse_token_to_ident" class="fnname">validate_and_parse_token_to_ident</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../identity/struct.Identity.html" title="struct kanidmd_lib::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></div></summary><div class="docblock"><p>This is the preferred method to transform and securely verify a token into
an identity that can be used for operations and access enforcement. This
function <em>is</em> aware of the various classes of tokens that may exist, and can
appropriately check them.</p>
<p>The primary method of verification selection is the use of the KID parameter
that we internally sign with. We can use this to select the appropriate token type
and validation method.</p>
</div></details><div id="method.validate_and_parse_token_to_token" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#413-516">source</a></div><h4 class="code-header">fn <a href="#method.validate_and_parse_token_to_token" class="fnname">validate_and_parse_token_to_token</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="enum.Token.html" title="enum kanidmd_lib::idm::server::Token">Token</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></div><div id="method.validate_and_parse_uat" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#518">source</a></div><h4 class="code-header">fn <a href="#method.validate_and_parse_uat" class="fnname">validate_and_parse_uat</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../../kanidm_proto/v1/struct.UserAuthToken.html" title="struct kanidm_proto::v1::UserAuthToken">UserAuthToken</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></div><div id="method.check_account_uuid_valid" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#557-576">source</a></div><h4 class="code-header">fn <a href="#method.check_account_uuid_valid" class="fnname">check_account_uuid_valid</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;uuid: &amp;<a class="struct" href="../../prelude/struct.Uuid.html" title="struct kanidmd_lib::prelude::Uuid">Uuid</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../account/struct.Account.html" title="struct kanidmd_lib::idm::account::Account">Account</a>&gt;, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></div><details class="rustdoc-toggle" open><summary><div id="method.process_uat_to_identity" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#590">source</a></div><h4 class="code-header">fn <a href="#method.process_uat_to_identity" class="fnname">process_uat_to_identity</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;uat: &amp;<a class="struct" href="../../../kanidm_proto/v1/struct.UserAuthToken.html" title="struct kanidm_proto::v1::UserAuthToken">UserAuthToken</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../identity/struct.Identity.html" title="struct kanidmd_lib::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></div></summary><div class="docblock"><p>For any event/operation to proceed, we need to attach an identity to the
event for security and access processing. When that event is externally
triggered via one of our various api layers, we process some type of
account token into this identity. In the current server this is the
UserAuthToken. For a UserAuthToken to be provided it MUST have been
cryptographically verified meaning it is now a <em>trusted</em> source of
data that we previously issued.</p>
<p>This is the function that is responsible for converting that UAT into
something we can pin access controls and other limits and references to.
This is why it is the location where validity windows are checked and other
relevant session information is injected.</p>
</div></details><div id="method.process_apit_to_identity" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#651">source</a></div><h4 class="code-header">fn <a href="#method.process_apit_to_identity" class="fnname">process_apit_to_identity</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;apit: &amp;<a class="struct" href="../../../kanidm_proto/v1/struct.ApiToken.html" title="struct kanidm_proto::v1::ApiToken">ApiToken</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;entry: <a class="struct" href="https://doc.rust-lang.org/1.64.0/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="type" href="../../entry/type.EntrySealedCommitted.html" title="type kanidmd_lib::entry::EntrySealedCommitted">EntrySealedCommitted</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../identity/struct.Identity.html" title="struct kanidmd_lib::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></div><div id="method.validate_ldap_session" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#676">source</a></div><h4 class="code-header">fn <a href="#method.validate_ldap_session" class="fnname">validate_ldap_session</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;session: &amp;<a class="enum" href="../../ldap/enum.LdapSession.html" title="enum kanidmd_lib::ldap::LdapSession">LdapSession</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../identity/struct.Identity.html" title="struct kanidmd_lib::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></div><div id="method.validate_and_parse_sync_token_to_ident" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#736">source</a></div><h4 class="code-header">fn <a href="#method.validate_and_parse_sync_token_to_ident" class="fnname">validate_and_parse_sync_token_to_ident</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../identity/struct.Identity.html" title="struct kanidmd_lib::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></div></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IdmServerTransaction%3C%27a%3E-for-IdmServerAuthTransaction%3C%27a%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#820-830">source</a></span><a href="#impl-IdmServerTransaction%3C%27a%3E-for-IdmServerAuthTransaction%3C%27a%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a&gt; <a class="trait" href="trait.IdmServerTransaction.html" title="trait kanidmd_lib::idm::server::IdmServerTransaction">IdmServerTransaction</a>&lt;'a&gt; for <a class="struct" href="struct.IdmServerAuthTransaction.html" title="struct kanidmd_lib::idm::server::IdmServerAuthTransaction">IdmServerAuthTransaction</a>&lt;'a&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.QsTransactionType-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.QsTransactionType-1" class="anchor"></a><h4 class="code-header">type <a href="#associatedtype.QsTransactionType" class="associatedtype">QsTransactionType</a> = <a class="struct" href="../../server/struct.QueryServerReadTransaction.html" title="struct kanidmd_lib::server::QueryServerReadTransaction">QueryServerReadTransaction</a>&lt;'a&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IdmServerTransaction%3C%27a%3E-for-IdmServerProxyReadTransaction%3C%27a%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#1364-1374">source</a></span><a href="#impl-IdmServerTransaction%3C%27a%3E-for-IdmServerProxyReadTransaction%3C%27a%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a&gt; <a class="trait" href="trait.IdmServerTransaction.html" title="trait kanidmd_lib::idm::server::IdmServerTransaction">IdmServerTransaction</a>&lt;'a&gt; for <a class="struct" href="struct.IdmServerProxyReadTransaction.html" title="struct kanidmd_lib::idm::server::IdmServerProxyReadTransaction">IdmServerProxyReadTransaction</a>&lt;'a&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.QsTransactionType-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.QsTransactionType-2" class="anchor"></a><h4 class="code-header">type <a href="#associatedtype.QsTransactionType" class="associatedtype">QsTransactionType</a> = <a class="struct" href="../../server/struct.QueryServerReadTransaction.html" title="struct kanidmd_lib::server::QueryServerReadTransaction">QueryServerReadTransaction</a>&lt;'a&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IdmServerTransaction%3C%27a%3E-for-IdmServerProxyWriteTransaction%3C%27a%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#1541-1551">source</a></span><a href="#impl-IdmServerTransaction%3C%27a%3E-for-IdmServerProxyWriteTransaction%3C%27a%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;'a&gt; <a class="trait" href="trait.IdmServerTransaction.html" title="trait kanidmd_lib::idm::server::IdmServerTransaction">IdmServerTransaction</a>&lt;'a&gt; for <a class="struct" href="struct.IdmServerProxyWriteTransaction.html" title="struct kanidmd_lib::idm::server::IdmServerProxyWriteTransaction">IdmServerProxyWriteTransaction</a>&lt;'a&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.QsTransactionType-3" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.QsTransactionType-3" class="anchor"></a><h4 class="code-header">type <a href="#associatedtype.QsTransactionType" class="associatedtype">QsTransactionType</a> = <a class="struct" href="../../server/struct.QueryServerWriteTransaction.html" title="struct kanidmd_lib::server::QueryServerWriteTransaction">QueryServerWriteTransaction</a>&lt;'a&gt;</h4></section></div></details></div><script type="text/javascript" src="../../../implementors/kanidmd_lib/idm/server/trait.IdmServerTransaction.js" data-ignore-extern-crates="" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="kanidmd_lib" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0 (a55dd71d5 2022-09-19)" ></div></body></html>