1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
#[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), }