vn_core/model/
auth_info.rs1use 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}