kanidm/kanidm_unix_int/src/unix_proto.rs

63 lines
1.3 KiB
Rust
Raw Normal View History

#[derive(Serialize, Deserialize, Debug)]
pub struct NssUser {
pub name: String,
pub gid: u32,
pub gecos: String,
pub homedir: String,
pub shell: String,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct NssGroup {
pub name: String,
pub gid: u32,
pub members: Vec<String>,
}
#[derive(Serialize, Deserialize, Debug)]
pub enum ClientRequest {
SshKey(String),
NssAccounts,
NssAccountByUid(u32),
NssAccountByName(String),
NssGroups,
NssGroupByGid(u32),
NssGroupByName(String),
PamAuthenticate(String, String),
PamAccountAllowed(String),
PamAccountBeginSession(String),
InvalidateCache,
ClearCache,
Status,
}
#[derive(Serialize, Deserialize, Debug)]
pub enum ClientResponse {
SshKeys(Vec<String>),
NssAccounts(Vec<NssUser>),
NssAccount(Option<NssUser>),
NssGroups(Vec<NssGroup>),
NssGroup(Option<NssGroup>),
PamStatus(Option<bool>),
Ok,
Error,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct HomeDirectoryInfo {
pub gid: u32,
pub name: String,
pub aliases: Vec<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub enum TaskRequest {
HomeDirectory(HomeDirectoryInfo),
}
#[derive(Serialize, Deserialize, Debug)]
pub enum TaskResponse {
Success,
Error(String),
}