schema::local_user::dsl::*,
source::{
actor_language::{LocalUserLanguage, SiteLanguage},
- local_user::{LocalUser, LocalUserForm},
+ local_user::{LocalUser, LocalUserInsertForm, LocalUserUpdateForm},
},
traits::Crud,
utils::naive_now,
}
impl LocalUser {
- pub fn register(conn: &mut PgConnection, form: &LocalUserForm) -> Result<Self, Error> {
- let mut edited_user = form.clone();
- let password_hash = form
- .password_encrypted
- .as_ref()
- .map(|p| hash(p, DEFAULT_COST).expect("Couldn't hash password"));
- edited_user.password_encrypted = password_hash;
-
- Self::create(conn, &edited_user)
- }
-
pub fn update_password(
conn: &mut PgConnection,
local_user_id: LocalUserId,
}
impl Crud for LocalUser {
- type Form = LocalUserForm;
+ type InsertForm = LocalUserInsertForm;
+ type UpdateForm = LocalUserUpdateForm;
type IdType = LocalUserId;
fn read(conn: &mut PgConnection, local_user_id: LocalUserId) -> Result<Self, Error> {
local_user.find(local_user_id).first::<Self>(conn)
fn delete(conn: &mut PgConnection, local_user_id: LocalUserId) -> Result<usize, Error> {
diesel::delete(local_user.find(local_user_id)).execute(conn)
}
- fn create(conn: &mut PgConnection, form: &LocalUserForm) -> Result<Self, Error> {
+ fn create(conn: &mut PgConnection, form: &Self::InsertForm) -> Result<Self, Error> {
+ let mut form_with_encrypted_password = form.clone();
+ let password_hash =
+ hash(&form.password_encrypted, DEFAULT_COST).expect("Couldn't hash password");
+ form_with_encrypted_password.password_encrypted = password_hash;
+
let local_user_ = insert_into(local_user)
- .values(form)
+ .values(form_with_encrypted_password)
.get_result::<Self>(conn)?;
let site_languages = SiteLanguage::read_local(conn);
fn update(
conn: &mut PgConnection,
local_user_id: LocalUserId,
- form: &LocalUserForm,
+ form: &Self::UpdateForm,
) -> Result<Self, Error> {
diesel::update(local_user.find(local_user_id))
.set(form)