Mercurial > crates > nonstick
comparison src/handle.rs @ 166:2f5913131295
Separate flag/action flags into flags and action.
This also individualizes the type of flag for each PAM function,
so that you can only call a function with the right flags and values.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Tue, 15 Jul 2025 00:32:24 -0400 |
parents | 634cd5f2ac8b |
children | 77470e45e397 |
comparison
equal
deleted
inserted
replaced
165:c4b1e280463c | 166:2f5913131295 |
---|---|
1 //! The wrapper types and traits for handles into the PAM library. | 1 //! The wrapper types and traits for handles into the PAM library. |
2 | 2 |
3 use crate::_doc::{guide, linklist, man7, manbsd, stdlinks}; | 3 use crate::_doc::{guide, linklist, man7, manbsd, stdlinks}; |
4 use crate::constants::{Flags, Result}; | 4 use crate::constants::{AuthnFlags, AuthtokFlags, Result}; |
5 use crate::conv::Conversation; | 5 use crate::conv::Conversation; |
6 use crate::environ::{EnvironMap, EnvironMapMut}; | 6 use crate::environ::{EnvironMap, EnvironMapMut}; |
7 use crate::items::{getter, Items, ItemsMut}; | 7 use crate::items::{getter, Items, ItemsMut}; |
8 use crate::logging::Logger; | 8 use crate::logging::Logger; |
9 use std::ffi::{OsStr, OsString}; | 9 use std::ffi::{OsStr, OsString}; |
117 /// # References | 117 /// # References |
118 #[doc = linklist!(pam_authenticate: adg, _std)] | 118 #[doc = linklist!(pam_authenticate: adg, _std)] |
119 /// | 119 /// |
120 #[doc = guide!(adg: "adg-interface-by-app-expected.html#adg-pam_authenticate")] | 120 #[doc = guide!(adg: "adg-interface-by-app-expected.html#adg-pam_authenticate")] |
121 #[doc = stdlinks!(3 pam_authenticate)] | 121 #[doc = stdlinks!(3 pam_authenticate)] |
122 fn authenticate(&mut self, flags: Flags) -> Result<()>; | 122 fn authenticate(&mut self, flags: AuthnFlags) -> Result<()>; |
123 | 123 |
124 /// Verifies the validity of the user's account (and other stuff). | 124 /// Verifies the validity of the user's account (and other stuff). |
125 /// | 125 /// |
126 /// After [authentication](Self::authenticate), an application should call | 126 /// After [authentication](Self::authenticate), an application should call |
127 /// this to ensure that the user's account is still valid. This may check | 127 /// this to ensure that the user's account is still valid. This may check |
130 /// # References | 130 /// # References |
131 #[doc = linklist!(pam_acct_mgmt: adg, _std)] | 131 #[doc = linklist!(pam_acct_mgmt: adg, _std)] |
132 /// | 132 /// |
133 #[doc = guide!(adg: "adg-interface-by-app-expected.html#adg-pam_acct_mgmt")] | 133 #[doc = guide!(adg: "adg-interface-by-app-expected.html#adg-pam_acct_mgmt")] |
134 #[doc = stdlinks!(3 pam_acct_mgmt)] | 134 #[doc = stdlinks!(3 pam_acct_mgmt)] |
135 fn account_management(&mut self, flags: Flags) -> Result<()>; | 135 fn account_management(&mut self, flags: AuthnFlags) -> Result<()>; |
136 | 136 |
137 /// Changes the authentication token. | 137 /// Changes the authentication token. |
138 /// | 138 /// |
139 /// # References | 139 /// # References |
140 #[doc = linklist!(pam_chauthtok: adg, _std)] | 140 #[doc = linklist!(pam_chauthtok: adg, _std)] |
141 /// | 141 /// |
142 #[doc = guide!(adg: "adg-interface-by-app-expected.html#adg-pam_chauthtok")] | 142 #[doc = guide!(adg: "adg-interface-by-app-expected.html#adg-pam_chauthtok")] |
143 #[doc = stdlinks!(3 pam_chauthtok)] | 143 #[doc = stdlinks!(3 pam_chauthtok)] |
144 fn change_authtok(&mut self, flags: Flags) -> Result<()>; | 144 fn change_authtok(&mut self, flags: AuthtokFlags) -> Result<()>; |
145 } | 145 } |
146 | 146 |
147 /// Functionality of a PAM handle that can be expected by a PAM module. | 147 /// Functionality of a PAM handle that can be expected by a PAM module. |
148 /// | 148 /// |
149 /// If you are not writing a PAM module (e.g., you are writing an application), | 149 /// If you are not writing a PAM module (e.g., you are writing an application), |