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 { Outcome::Forward(()) } }