use serde::{Serialize, Deserialize};
#[derive(Serialize,Deserialize)]
pub struct CurrentUser{
pub name: String,
pub permissions: Vec<String>,
pub groups: Vec<String>
}
#[derive(Serialize,Deserialize)]
pub struct PermissionRecord{
pub key: String,
pub name: String,
pub dangerous: bool,
pub default_groups: Vec<String>,
pub description: String,
pub needs: Needs
}
#[derive(Serialize,Deserialize)]
pub struct GroupRecord{
pub key: String,
pub name: String,
pub description: String,
pub permissions: Vec<PermissionRecord>,
pub subgroups: Vec<GroupRecord>,
pub needs: Needs,
pub default: bool,
pub removable: bool,
pub changeable: bool,
pub toggleable: bool
}
#[derive(Serialize,Deserialize)]
pub struct Needs{
pub role: Vec<String>,
pub group: Vec<String>
}