Exemplo n.º 1
0
        private void ChangeUserCommand(List <string> args, Common.CmdIO.TTY io, UUID limitedToScene)
        {
            UserAccount account;

            if (args[0] == "help" || args.Count < 4 || args.Count % 2 != 0)
            {
                io.Write("change user <firstname> <lastname> (<token> <parameter>)*\n" +
                         "Token parameters:\n" +
                         "userlevel <level>\n" +
                         "email <email>\n" +
                         "usertitle <usertitle>\n");
            }
            else if (limitedToScene != UUID.Zero)
            {
                io.Write("change user not allowed on limited console");
            }
            else if (m_UserAccountService.TryGetValue(args[2], args[3], out account))
            {
                for (int argi = 4; argi < args.Count; argi += 2)
                {
                    switch (args[argi])
                    {
                    case "userlevel":
                        account.UserLevel = int.Parse(args[argi + 1]);
                        if (account.UserLevel < -1 || account.UserLevel > 255)
                        {
                            io.WriteFormatted("User level parameter {0} is not valid", account.UserLevel);
                            return;
                        }
                        m_UserAccountService.SetUserLevel(account.Principal.ID, account.UserLevel);
                        break;

                    case "email":
                        account.Email = args[argi + 1];
                        m_UserAccountService.SetEmail(account.Principal.ID, account.Email);
                        break;

                    case "usertitle":
                        account.UserTitle = args[argi + 1];
                        m_UserAccountService.SetUserTitle(account.Principal.ID, account.UserTitle);
                        break;

                    default:
                        io.WriteFormatted("Unsupported token parameter {0}", args[argi]);
                        return;
                    }
                }
            }
            else
            {
                io.WriteFormatted("User \"{0}\" \"{1}\" not found", args[2], args[3]);
            }
        }
Exemplo n.º 2
0
        private void HandleUserAccountChange(HttpRequest req, Map jsondata)
        {
            UserAccount account;
            UUID        userid;

            if (!jsondata.TryGetValue("id", out userid))
            {
                m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InvalidRequest);
                return;
            }
            if (!m_UserAccountService.TryGetValue(userid, out account))
            {
                m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.NotFound);
                return;
            }

            int    ival;
            string sval;
            uint   uval;

            if (jsondata.TryGetValue("userlevel", out ival))
            {
                account.UserLevel = ival;
                if (account.UserLevel > 255)
                {
                    m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InvalidParameter);
                    return;
                }
            }
            try
            {
                if (jsondata.TryGetValue("usertitle", out sval))
                {
                    m_UserAccountService.SetUserTitle(account.Principal.ID, sval);
                }
                if (jsondata.TryGetValue("userflags", out uval))
                {
                    m_UserAccountService.SetUserFlags(account.Principal.ID, (UserFlags)uval);
                }
                if (jsondata.TryGetValue("email", out sval))
                {
                    m_UserAccountService.SetEmail(account.Principal.ID, sval);
                }
            }
            catch
            {
                m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.AlreadyExists);
                return;
            }
            m_WebIF.SuccessResponse(req, new Map());
        }