Exemplo n.º 1
0
        private void HandleNotice(HttpRequest req, Map jsondata)
        {
            uint   estateID;
            string message;

            if (!jsondata.TryGetValue("id", out estateID) || !jsondata.TryGetValue("message", out message))
            {
                m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InvalidRequest);
            }
            else
            {
                var regionIds = m_EstateService.RegionMap[estateID];

                if (regionIds.Count == 0)
                {
                    if (m_EstateService.ContainsKey(estateID))
                    {
                        var m = new Map
                        {
                            ["noticed_regions"] = new AnArray()
                        };
                        m_WebIF.SuccessResponse(req, m);
                    }
                    else
                    {
                        m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.NotFound);
                    }
                }
                else
                {
                    var regions = new AnArray();

                    foreach (var regionId in regionIds)
                    {
                        SceneInterface si;
                        if (m_Scenes.TryGetValue(regionId, out si))
                        {
                            regions.Add(regionId);
                            var regionOwner = si.Owner;
                            foreach (var agent in si.RootAgents)
                            {
                                agent.SendRegionNotice(regionOwner, message, regionId);
                            }
                        }
                    }
                    var m = new Map
                    {
                        ["noticed_regions"] = regions
                    };
                    m_WebIF.SuccessResponse(req, m);
                }
            }
        }
Exemplo n.º 2
0
        public void CreateEstateCmd(List <string> args, Common.CmdIO.TTY io, UUID limitedToScene)
        {
            EstateInfo estateInfo;
            uint       estateID;

            if (limitedToScene != UUID.Zero)
            {
                io.WriteFormatted("create estate not allowed from restricted console");
            }
            else if (args[0] == "help" || args.Count < 4)
            {
                io.Write("create estate <estatename> <estateid> parameters...\n\n" +
                         "Parameters:\n" +
                         "owner <uui>|<uuid>|<firstname>.<lastname>\n" +
                         "parentestateid <parentestateid>\n" +
                         "pricepermeter <value>\n" +
                         "billablefactor <factor>\n" +
                         "abuseemail <email>");
            }
            else if (!uint.TryParse(args[3], out estateID))
            {
                io.Write("Estate ID is not a number.");
            }
            else if (m_EstateService.ContainsKey(estateID))
            {
                io.WriteFormatted("Estate with id {0} already exists.", estateID);
            }
            else
            {
                estateInfo = new EstateInfo
                {
                    ID             = estateID,
                    Name           = args[2],
                    PricePerMeter  = 1,
                    BillableFactor = 1
                };
                for (int argi = 4; argi + 1 < args.Count; argi += 2)
                {
                    switch (args[argi].ToLower())
                    {
                    case "abuseemail":
                        estateInfo.AbuseEmail = args[argi + 1];
                        break;

                    case "parentestateid":
                        if (!uint.TryParse(args[argi + 1], out estateInfo.ParentEstateID))
                        {
                            io.WriteFormatted("{0} is not a number", args[argi + 1]);
                            return;
                        }
                        break;

                    case "owner":
                        if (!m_AvatarNameService.TranslateToUUI(args[argi + 1], out estateInfo.Owner))
                        {
                            io.WriteFormatted("{0} is not a valid owner.", args[argi + 1]);
                            return;
                        }
                        break;

                    case "billablefactor":
                        if (!double.TryParse(args[argi + 1], NumberStyles.Float, CultureInfo.InvariantCulture, out estateInfo.BillableFactor))
                        {
                            io.WriteFormatted("{0} is not a valid float number.", args[argi + 1]);
                            return;
                        }
                        break;

                    case "pricepermeter":
                        if (!int.TryParse(args[argi + 1], out estateInfo.PricePerMeter))
                        {
                            io.WriteFormatted("{0} is not a valid integer number.", args[argi + 1]);
                            return;
                        }
                        break;

                    default:
                        io.WriteFormatted("Parameter {0} is not valid.", args[argi]);
                        return;
                    }
                }

                try
                {
                    m_EstateService.Update(estateInfo);
                }
                catch (Exception e)
                {
                    io.WriteFormatted("Could not create estate: {0}", e.Message);
                }
            }
        }
Exemplo n.º 3
0
        public bool Run()
        {
            string estateName = "Test Estate";
            uint   estateId   = 100;
            UUID   covenantId = UUID.Random;

            m_Log.Info("Testing non-existence of estate via name");
            if (m_EstateService.ContainsKey(estateName))
            {
                return(false);
            }
            m_Log.Info("Testing non-existence of estate via id");
            if (m_EstateService.ContainsKey(estateId))
            {
                return(false);
            }
            m_Log.Info("Creating estate");
            EstateInfo info = new EstateInfo()
            {
                ID             = estateId,
                Name           = estateName,
                Owner          = m_EstateOwner,
                CovenantID     = covenantId,
                AbuseEmail     = "*****@*****.**",
                Flags          = RegionOptionFlags.AllowDirectTeleport,
                BillableFactor = 5,
                PricePerMeter  = 2,
                ParentEstateID = 2
            };

            m_EstateService.Add(info);
            m_Log.Info("Testing existence of estate via name");
            if (!m_EstateService.ContainsKey(estateName))
            {
                return(false);
            }
            m_Log.Info("Testing existence of estate via id");
            if (!m_EstateService.ContainsKey(estateId))
            {
                return(false);
            }

            EstateInfo retrievedInfo;

            m_Log.Info("Testing retrieval via name");
            if (!m_EstateService.TryGetValue(estateName, out retrievedInfo))
            {
                return(false);
            }
            if (!CompareEstates(info, retrievedInfo))
            {
                return(false);
            }

            m_Log.Info("Testing retrieval via id");
            if (!m_EstateService.TryGetValue(estateId, out retrievedInfo))
            {
                return(false);
            }
            if (!CompareEstates(info, retrievedInfo))
            {
                return(false);
            }

            m_Log.Info("Testing update");
            info.Name           = "New Test Estate";
            info.ParentEstateID = 3;
            estateName          = info.Name;
            m_EstateService.Update(info);

            m_Log.Info("Testing retrieval via old name");
            if (m_EstateService.TryGetValue("Test Estate", out retrievedInfo))
            {
                return(false);
            }

            m_Log.Info("Testing retrieval via name");
            if (!m_EstateService.TryGetValue(estateName, out retrievedInfo))
            {
                return(false);
            }
            if (!CompareEstates(info, retrievedInfo))
            {
                return(false);
            }

            m_Log.Info("Testing retrieval via id");
            if (!m_EstateService.TryGetValue(estateId, out retrievedInfo))
            {
                return(false);
            }
            if (!CompareEstates(info, retrievedInfo))
            {
                return(false);
            }

            m_Log.Info("Testing deletion");
            if (!m_EstateService.Remove(estateId))
            {
                return(false);
            }
            m_Log.Info("Testing non-existence of estate via name");
            if (m_EstateService.ContainsKey(estateName))
            {
                return(false);
            }
            m_Log.Info("Testing non-existence of estate via id");
            if (m_EstateService.ContainsKey(estateId))
            {
                return(false);
            }

            return(true);
        }