// use framework::db::RecordId; use serde::{Deserialize, Serialize}; use framework::auth::OAuthUser; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct SimpleUser { pub oidc_id: String, pub username: String, pub first_name: Option, pub last_name: Option, pub email: Option, pub superuser: bool, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct User { pub oidc_id: String, pub username: String, pub first_name: Option, pub last_name: Option, pub email: Option, pub superuser: bool, pub roles: Vec, } impl From for User { fn from(value: OAuthUser) -> Self { crate::model::User { oidc_id: value.oidc_id, username: value.username, first_name: value.first_name, last_name: value.last_name, email: value.email, superuser: value.superuser, roles: Vec::new(), } } } impl User { pub fn metadata_eq(&self, value: &User) -> bool { self.oidc_id == value.oidc_id && self.username == value.username && self.first_name == value.first_name && self.last_name == value.last_name && self.email == value.email } pub fn metadata_from(&mut self, value: User) { self.oidc_id = value.oidc_id; self.username = value.username; self.first_name = value.first_name; self.last_name = value.last_name; self.email = value.email; } }