57 lines
1.5 KiB
Rust
57 lines
1.5 KiB
Rust
// 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<String>,
|
|
pub last_name: Option<String>,
|
|
pub email: Option<String>,
|
|
pub superuser: bool,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct User {
|
|
pub oidc_id: String,
|
|
pub username: String,
|
|
pub first_name: Option<String>,
|
|
pub last_name: Option<String>,
|
|
pub email: Option<String>,
|
|
pub superuser: bool,
|
|
pub roles: Vec<String>,
|
|
}
|
|
|
|
impl From<OAuthUser> 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;
|
|
}
|
|
}
|