nomilo/src/models/users.rs

49 lines
925 B
Rust
Raw Normal View History

2021-03-26 22:30:38 +00:00
use uuid::Uuid;
use diesel::prelude::*;
use diesel::associations::HasTable;
use rocket::request::{FromRequest, Request, Outcome};
use diesel_derive_enum::DbEnum;
use crate::schema::*;
#[derive(Debug, DbEnum)]
pub enum Role {
Admin,
ZoneAdmin,
}
#[derive(Debug, Queryable, Identifiable)]
#[table_name = "user"]
pub struct User {
pub id: String,
pub role: String,
}
#[derive(Debug, Queryable, Identifiable)]
#[table_name = "localuser"]
#[primary_key(user_id)]
pub struct LocalUser {
pub user_id: String,
pub username: String,
pub password: String,
}
// pub struct LdapUserAssociation {
// user_id: Uuid,
// ldap_id: String
// }
pub struct UserInfo {
id: Uuid,
role: Role,
username: String,
}
impl<'a, 'r> FromRequest<'a, 'r> for UserInfo {
type Error = ();
fn from_request(request: &'a Request<'r>) -> Outcome<UserInfo, ()> {
Outcome::Forward(())
}
}