45 lines
1.1 KiB
Rust
45 lines
1.1 KiB
Rust
|
use std::time::SystemTime;
|
||
|
//use diesel::sql_types::Timestamp;
|
||
|
use diesel::{Insertable, Queryable, Identifiable, Associations};
|
||
|
//use bcrypt::{DEFAULT_COST, hash};
|
||
|
//use diesel::serialize::ToSql;
|
||
|
use libpso::
|
||
|
|
||
|
use elseware::schema::*;
|
||
|
|
||
|
#[derive(Queryable, Identifiable, Debug)]
|
||
|
pub struct UserAccount {
|
||
|
pub id: i32,
|
||
|
pub username: String,
|
||
|
pub password: String,
|
||
|
pub guildcard: Option<i32>,
|
||
|
pub team_id: Option<i32>,
|
||
|
pub banned: bool,
|
||
|
pub muted_until: SystemTime,
|
||
|
pub created_at: SystemTime,
|
||
|
}
|
||
|
|
||
|
#[derive(Insertable)]
|
||
|
#[table_name="user_accounts"]
|
||
|
pub struct NewUser {
|
||
|
username: String,
|
||
|
password: String,
|
||
|
}
|
||
|
|
||
|
impl NewUser {
|
||
|
pub fn new(username: String, password: String) -> NewUser {
|
||
|
let crypt_password = bcrypt::hash(password, bcrypt::DEFAULT_COST).expect("could not hash password?");
|
||
|
NewUser {
|
||
|
username: username,
|
||
|
password: crypt_password,
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#[derive(Queryable, Identifiable, Associations, Debug)]
|
||
|
pub struct UserSettings {
|
||
|
id: i32,
|
||
|
user_id: i32,
|
||
|
settings_blob: [u32; 0x1160],
|
||
|
}
|