blob: 4cf93102b5586b91509d8f08aad3571aee1da94f (
plain) (
tree)
|
|
use bcrypt::hash;
use bcrypt::verify;
use bcrypt::DEFAULT_COST;
use crate::Privacy;
use crate::Result;
#[derive(sqlx::FromRow)]
pub struct User {
pub username: String,
pub password: String,
pub email: Option<String>,
pub bio: Option<String>,
pub site: Option<String>,
pub privacy: Privacy,
pub admin: bool,
}
impl User {
pub fn new(username: String, password: String) -> Result<Self> {
let password_hash = hash(password, DEFAULT_COST)?;
Ok(Self {
username,
password: password_hash,
email: None,
bio: None,
site: None,
privacy: Privacy::Public,
admin: true,
})
}
pub fn verify_password(&self, password: &str) -> Result<bool> {
Ok(verify(password, &self.password)?)
}
}
|