pub struct Policy { /* private fields */ }Expand description
An authentication policy.
Implementations§
Source§impl Policy
impl Policy
Sourcepub fn set_action_id(&mut self, id: impl Into<String>) -> Result<()>
pub fn set_action_id(&mut self, id: impl Into<String>) -> Result<()>
Sets the polkit action ID used on Linux.
Returns Error::InvalidActionId if the ID is not in the allowed list
provided via PolicyBuilder::action_ids.
This is a no-op on non-Linux platforms.
Examples found in repository?
examples/simple_authentication.rs (line 67)
52fn main() {
53 let context = Context::new(());
54 let mut policy = PolicyBuilder::new()
55 // On Linux You need to set action_ids.
56 // See: ./org.robius.authentication.policy file settings and (README: "Usage on Linux").
57 .action_ids([
58 "org.robius.authentication",
59 "org.robius.authentication.settings",
60 ])
61 .biometrics(Some(BiometricStrength::Strong))
62 .password(true)
63 .companion(true)
64 .build()
65 .unwrap();
66
67 if let Err(e) = policy.set_action_id("org.robius.authentication.settings") {
68 eprintln!("Invalid action_id: {:?}", e);
69 return;
70 }
71
72 let (tx, rx) = mpsc::channel();
73
74 // Start authentication. `res` only indicates whether the request was successfully
75 // initiated; the final result is delivered via the callback.
76 let res = context.authenticate(TEXT, &policy, move |result| {
77 let _ = tx.send(result);
78 });
79
80 if let Err(e) = res {
81 eprintln!("Failed to start authentication: {:?}", e);
82 return;
83 }
84
85 // Block until the callback produces a result.
86 match rx.recv() {
87 Ok(Ok(_)) => println!("Authentication successful"),
88 Ok(Err(e)) => println!("Authentication failed: {:?}", e),
89 Err(e) => eprintln!("Failed to receive auth result: {:?}", e),
90 }
91}Trait Implementations§
Auto Trait Implementations§
impl Freeze for Policy
impl RefUnwindSafe for Policy
impl Send for Policy
impl Sync for Policy
impl Unpin for Policy
impl UnsafeUnpin for Policy
impl UnwindSafe for Policy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more