diff options
Diffstat (limited to 'lockchain-core/src/errors/auth.rs')
-rw-r--r-- | lockchain-core/src/errors/auth.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lockchain-core/src/errors/auth.rs b/lockchain-core/src/errors/auth.rs new file mode 100644 index 0000000..32ce33a --- /dev/null +++ b/lockchain-core/src/errors/auth.rs @@ -0,0 +1,29 @@ +//! Athentication errors + +use std::error::Error as StdError; +use std::fmt::{Display, Formatter, Result}; + +/// Common errors that can occur when authenticating users +#[derive(Debug, Serialize, Deserialize)] +pub enum Error { + /// Forking an authentication task failed + FailedFork, + /// Failed to authenticate via PAM due to a PAM related issue + FailedPAM, + /// The provided user either doesn't exist or is not authorised + UserNotAuthorised, +} + +impl StdError for Error {} + +impl Display for Error { + fn fmt(&self, f: &mut Formatter) -> Result { + write!( + f, + "{}", + match self { + _ => "Unknown failure", + } + ) + } +} |