public override void Execute() { var wholist = _ircReadWriteExchange.GetWhoList(); var dbUsers = _persistance.GetUsers(); var violators = new List <string>(); foreach (var whoInfo in wholist) { if (!dbUsers.Contains(whoInfo.Ident, StringComparer.InvariantCultureIgnoreCase)) { violators.Add(whoInfo.Ident); } } if (violators.Any()) { Messages.Add("IRC security sweep: security violations detected, user(s) are online which are not present in the database:"); foreach (var violator in violators) { var user = wholist.First(w => w.Ident.Equals(violator)); var msg = string.Format("User: {0} Server: {1}", user.Ident, user.Server); Messages.Add(msg); } } else { if (Context.MessageOrigin == MessageOrigin.Channel || Context.MessageOrigin == MessageOrigin.Query) { Messages.Add("IRC security sweep: Ok. No users detected who are not present in the database."); } } }
public override void Execute() { var whoInfos = _ircReadWriteExchange.GetWhoList(); var online = whoInfos.Select(s => s.Ident).Distinct().ToList(); Messages.Add("Online users:"); var messages = _userDisplay.SortAlphabetically(online); Messages.AddRange(messages); Messages.Add(string.Format("Total online: {0}", online.Count)); }
public override void Execute() { User user = _persistance.GetUserInfo(Mapping[SetHostArguments.Username]); List <string> nicks = _ircReadWriteExchange.GetWhoList().Where(i => i.Ident == user.Name).Select(n => n.Nick).ToList(); if (nicks.Count == 0) { Messages.Add(string.Format("Can't change hostname, user {0} is currently offline", Mapping[SetHostArguments.Username])); } else { foreach (string nick in nicks) { var command = VhostOperCommmand.SetVhost(nick, user.Vhost); OperCommands.Add(command); } string processednicks = string.Join(" ,", nicks); Messages.Add(string.Format("Executing hostname change for user {0}, affected nick(s) {1}", Mapping[SetHostArguments.Username], processednicks)); } }
public override bool CheckPreconditions() { if (!base.CheckPreconditions()) { return(false); } if (!_persistance.UserNameExists(Mapping[KillUserArguments.Username])) { Messages.Add(string.Format("Username {0} doesn't exists.", Mapping[KillUserArguments.Username])); return(false); } var whoList = _ircReadWriteExchange.GetWhoList(); _nickInfo = whoList.Where(w => String.Equals(w.Ident, Mapping[KillUserArguments.Username], StringComparison.InvariantCultureIgnoreCase)).ToList(); if (!_nickInfo.Any()) { Messages.Add(string.Format("User {0} isn't online.", Mapping[KillUserArguments.Username])); return(false); } return(true); }
public override void Execute() { _persistance.DeleteUser(Mapping[DeleteKillUserArguments.Username]); Messages.Add(string.Format("User {0} succesfully deleted.", Mapping[DeleteKillUserArguments.Username])); var info = _ircReadWriteExchange.GetWhoList().Where(u => String.Equals(u.Ident, Mapping[DeleteKillUserArguments.Username], StringComparison.InvariantCultureIgnoreCase)).ToList(); if (info.Any()) { foreach (var who in info) { var command = KillOperCommmand.SetKill(who.Nick); OperCommands.Add(command); } string nicks = string.Join(", ", info.Select(s => s.Nick)); Messages.Add(string.Format("Killed the following nick(s): {0}", nicks)); } else { Messages.Add(string.Format("No nicks killed, user {0} wasn't online.", Mapping[DeleteKillUserArguments.Username])); } }
public override void Execute() { string groups; User user = _persistance.GetUserInfo(Mapping[ShowUserArguments.Username]); if (!user.Groups.Any()) { groups = "No groups added"; } else { groups = string.Join(", ", user.Groups.Select(s => s.GroupName)); } string online = "Online: No"; var info = _ircReadWriteExchange.GetWhoList().Where(u => String.Equals(u.Ident, Mapping[ShowUserArguments.Username], StringComparison.InvariantCultureIgnoreCase)).ToList(); if (info.Any()) { string nicks = string.Join(", ", info.Select(s => s.Nick)); online = string.Format("Online: Yes, nick(s): {0}", nicks); } Messages.Add(string.Format("User information for {0}", user.Name)); Messages.Add(online); Messages.Add(string.Format("Groups: {0}", groups)); Messages.Add(string.Format("Oper rights: {0}", user.IsOper)); Messages.Add(string.Format("Admin rights: {0}", user.IsAdmin)); Messages.Add(string.Format("Autojoin: {0}", user.AutoJoin)); string vhost = "No vhost defined"; if (!string.IsNullOrEmpty(user.Vhost)) { vhost = user.Vhost; } Messages.Add(string.Format("Vhost: {0}", vhost)); Messages.Add(string.Format("Hosts: {0}", string.Join(", ", user.Hosts))); }