public override bool Exec(Message msg) { if (!context.IsAuth() || !context.IsAdmin()) { return(false); } var pp = GetCmdParts(msg); if (pp.Length <= 0 || pp[0] != "DELUSER") { return(false); } if (pp.Length != 2) { JRobbot.Send(msg.From, "command must be: DELUSER login"); } else { var fileName = UserCfgName.ConfigName(); var userList = fileName.LoadFromFile <UserList>(); var ui = userList.FirstOrDefault(x => x.Login.ToUpper() == pp[1].ToUpper()); if (ui == null) { JRobbot.Send(msg.From, "error: user '{0}' not found".Fmt(pp[1])); } else { userList.Remove(ui); userList.SaveToFile(UserCfgName.ConfigName()); JRobbot.Send(msg.From, "user '{0}' removed".Fmt(pp[1])); } } return(true); }
public override bool Exec(Message msg) { if (!context.IsAuth() || !context.IsAdmin()) { return(false); } var pp = GetCmdParts(msg); if (pp.Length <= 0 || pp[0] != "ADDUSER") { return(false); } if (pp.Length != 5) { JRobbot.Send(msg.From, "command must be: ADDUSER login password isadmin comp"); } else { var fileName = UserCfgName.ConfigName(); var userList = fileName.LoadFromFile <UserList>(); if (userList.Any(x => x.Login.ToUpper() == pp[1].ToUpper())) { JRobbot.Send(msg.From, "error: user '{0}' already exists".Fmt(pp[1])); } else { bool isAdmin; var computerList = CompCfgName.ConfigName().LoadFromFile <ComputerList>(); if (!bool.TryParse(pp[3], out isAdmin)) { JRobbot.Send(msg.From, "error: isadmin must be true or false"); } else if (computerList.All(x => x.Name.ToUpper() != pp[4].ToUpper())) { JRobbot.Send(msg.From, "error: comp '{0}' not found".Fmt(pp[4])); } else { userList.Add(new User(pp[1], pp[2], isAdmin, pp[4])); userList.SaveToFile(UserCfgName.ConfigName()); JRobbot.Send(msg.From, "user '{0}' added to list".Fmt(pp[1])); } } } return(true); }
public override bool Exec(Message msg) { if (context.IsAuth()) { return(false); } //var auth = context.GetAs<bool>("isAuth", false); //if (auth) return false; var pp = GetCmdParts(msg); var fromJid = msg.From; if (pp.Length == 0 || pp.Length != 3 || pp[0] != "USER") { JRobbot.Send(fromJid, "command must be: USER login password"); } else { var login = pp[1].ToLower(); var password = pp[2]; var ok = false; var userList = UserCfgName.ConfigName().LoadFromFile <UserList>(); foreach (var ui in userList) { if (ui.Login.ToLower() != login || ui.Password != password) { continue; } ok = true; context["isAuth"] = true; context["level"] = ui.IsAdmin ? 2 : 1; context["user"] = ui.Login; context["comp"] = ui.CompName; JRobbot.Send(fromJid, "welcome, " + ui.Login + "!\r\n"); break; } if (!ok) { JRobbot.Send(fromJid, "bad login-password pair" + pp[1]); } } return(true); }
public override bool Exec(Message msg) { if (!context.IsAuth() || !context.IsAdmin()) { return(false); } var pp = GetCmdParts(msg); if (pp.Length <= 0 || pp[0] != "LISTUSER") { return(false); } var fileName = UserCfgName.ConfigName(); var userList = fileName.LoadFromFile <UserList>(); JRobbot.Send(msg.From, "Users are:"); foreach (var ui in userList) { JRobbot.Send(msg.From, "{0} *** {1} {2}".Fmt(ui.Login, ui.IsAdmin, ui.CompName)); } return(true); }
public override bool Exec(Message msg) { if (!context.IsAuth() || !context.IsAdmin()) { return(false); } var pp = GetCmdParts(msg); if (pp.Length == 0 || pp[0] != "UPDUSER") { return(false); } var ok = pp.Length == 4; if (ok) { pp[2] = pp[2].ToUpper(); ok = pp[2] == "LOGIN" || pp[2] == "PASSWORD" || pp[2] == "ISADMIN" || pp[2] == "COMP"; } if (!ok) { JRobbot.Send(msg.From, "command must be: UPDUSER login (LOGIN|PASSWORD|ISADMIN|COMP) value"); return(true); } var fileName = UserCfgName.ConfigName(); var userList = fileName.LoadFromFile <UserList>(); var ui = userList.FirstOrDefault(x => x.Login.ToUpper() == pp[1].ToUpper()); if (ui == null) { JRobbot.Send(msg.From, "error: user '{0}' not found".Fmt(pp[1])); return(true); } if (pp[2] == "LOGIN") { ui.Login = pp[3]; } if (pp[2] == "PASSWORD") { ui.Password = pp[3]; } if (pp[2] == "ISADMIN") { bool isAdmin; if (bool.TryParse(pp[3], out isAdmin)) { JRobbot.Send(msg.From, "error: value '{0}' is not boolean".Fmt(pp[3])); return(true); } ui.IsAdmin = isAdmin; } if (pp[2] == "COMP") { ui.CompName = pp[3]; } userList.SaveToFile(UserCfgName.ConfigName()); JRobbot.Send(msg.From, "user '{0}' updated".Fmt(pp[1])); return(true); }