Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }