summaryrefslogtreecommitdiffstats
path: root/server/src/db/user.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/db/user.rs')
-rw-r--r--server/src/db/user.rs19
1 files changed, 17 insertions, 2 deletions
diff --git a/server/src/db/user.rs b/server/src/db/user.rs
index 32596c27..1669d722 100644
--- a/server/src/db/user.rs
+++ b/server/src/db/user.rs
@@ -1,7 +1,7 @@
use super::*;
use crate::schema::user_;
use crate::schema::user_::dsl::*;
-use crate::{is_email_regex, Settings};
+use crate::{is_email_regex, naive_now, Settings};
use bcrypt::{hash, DEFAULT_COST};
use jsonwebtoken::{decode, encode, DecodingKey, EncodingKey, Header, TokenData, Validation};
@@ -99,13 +99,28 @@ impl User_ {
let password_hash = hash(new_password, DEFAULT_COST).expect("Couldn't hash password");
diesel::update(user_.find(user_id))
- .set(password_encrypted.eq(password_hash))
+ .set((
+ password_encrypted.eq(password_hash),
+ updated.eq(naive_now()),
+ ))
.get_result::<Self>(conn)
}
pub fn read_from_name(conn: &PgConnection, from_user_name: String) -> Result<Self, Error> {
user_.filter(name.eq(from_user_name)).first::<Self>(conn)
}
+
+ pub fn add_admin(conn: &PgConnection, user_id: i32, added: bool) -> Result<Self, Error> {
+ diesel::update(user_.find(user_id))
+ .set(admin.eq(added))
+ .get_result::<Self>(conn)
+ }
+
+ pub fn ban_user(conn: &PgConnection, user_id: i32, ban: bool) -> Result<Self, Error> {
+ diesel::update(user_.find(user_id))
+ .set(banned.eq(ban))
+ .get_result::<Self>(conn)
+ }
}
#[derive(Debug, Serialize, Deserialize)]