Skip to main content

vn_core/model/
auth_info.rs

1use serde::{Deserialize, Serialize};
2use strum::{Display, EnumString};
3
4#[remain::sorted]
5#[derive(Clone, Debug, Deserialize, Serialize)]
6#[cfg_attr(feature = "specta", derive(specta::Type))]
7pub struct AuthInfo {
8  pub id: String,
9  pub permissions: Vec<TokenPermission>,
10  pub username: String,
11}
12
13#[non_exhaustive]
14#[remain::sorted]
15#[derive(Clone, Copy, Debug, Deserialize, Serialize, Display, EnumString)]
16#[cfg_attr(feature = "specta", derive(specta::Type))]
17pub enum TokenPermission {
18  #[serde(rename = "listread")]
19  #[strum(serialize = "listread")]
20  ListRead,
21
22  #[serde(rename = "listwrite")]
23  #[strum(serialize = "listwrite")]
24  ListWrite,
25}