예제 #1
0
        private void HandleDelete(HttpRequest req, Map jsondata)
        {
            uint estateID;

            try
            {
                estateID = jsondata["id"].AsUInt;
            }
            catch
            {
                m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InvalidRequest);
                return;
            }

            if (m_EstateService.RegionMap[estateID].Count != 0)
            {
                m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InUse);
                return;
            }

            try
            {
                if (!m_EstateService.Remove(estateID))
                {
                    throw new InvalidDataException();
                }
            }
            catch
            {
                m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.NotPossible);
                return;
            }
            m_WebIF.SuccessResponse(req, new Map());
        }
예제 #2
0
        public void DeleteEstateCmd(List <string> args, Common.CmdIO.TTY io, UUID limitedToScene)
        {
            uint        estateID;
            EstateInfo  estateInfo;
            List <UUID> regions;

            if (limitedToScene != UUID.Zero)
            {
                io.WriteFormatted("delete estate not allowed from restricted console");
            }
            else if (args[0] == "help" || args.Count < 3)
            {
                io.Write("delete estate <estateid>");
            }
            else if (!uint.TryParse(args[2], out estateID))
            {
                io.WriteFormatted("{0} is not a valid estate id.", estateID);
            }
            else if (!m_EstateService.TryGetValue(estateID, out estateInfo))
            {
                io.WriteFormatted("Estate with id {0} does not exist.", estateID);
            }
            else
            {
                regions = m_EstateService.RegionMap[estateID];
                if (m_EstateService.RegionMap[estateID].Count != 0)
                {
                    var output = new StringBuilder("Please unlink regions from estate first.\n\nLinked Scene List:\n----------------------------------------------");
                    foreach (UUID rID in regions)
                    {
                        Types.Grid.RegionInfo rInfo;
                        if (m_RegionStorage.TryGetValue(rID, out rInfo))
                        {
                            Vector3 gridcoord = rInfo.Location;
                            output.AppendFormat("\nRegion {0} [{1}]:\n  Location={2} (grid coordinate {5})\n  Size={3}\n  Owner={4}\n", rInfo.Name, rInfo.ID, gridcoord.ToString(), rInfo.Size.ToString(), ResolveName(rInfo.Owner).FullName, gridcoord.X_String + "," + gridcoord.Y_String);
                        }
                    }
                    io.Write(output.ToString());
                }
                else
                {
                    try
                    {
                        if (!m_EstateService.Remove(estateID))
                        {
                            throw new InvalidOperationException();
                        }
                    }
                    catch (Exception e)
                    {
                        io.WriteFormatted("Could not delete estate {0}: {1}", estateID, e.Message);
                    }
                }
            }
        }
        public bool Run()
        {
            m_Log.Info("Creating estate");
            EstateInfo info = new EstateInfo()
            {
                Name  = "Test Estate",
                ID    = 101,
                Owner = m_EstateOwner
            };

            m_EstateService.Add(info);

            m_Log.Info("Testing non-existence of Estate Accessor 1");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor1])
            {
                return(false);
            }

            m_Log.Info("Testing non-existence of Estate Accessor 2");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor2])
            {
                return(false);
            }

            m_Log.Info("Testing returned entries to match");
            if (m_EstateService.EstateAccess.All[info.ID].Count != 0)
            {
                return(false);
            }

            m_Log.Info("Enabling Estate Accessor 1");
            m_EstateService.EstateAccess[info.ID, m_EstateAccessor1] = true;

            m_Log.Info("Testing existence of Estate Accessor 1");
            if (!m_EstateService.EstateAccess[info.ID, m_EstateAccessor1])
            {
                return(false);
            }

            m_Log.Info("Testing non-existence of Estate Accessor 2");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor2])
            {
                return(false);
            }

            m_Log.Info("Testing returned entries to match");
            if (m_EstateService.EstateAccess.All[info.ID].Count != 1)
            {
                return(false);
            }

            m_Log.Info("Enabling Estate Accessor 2");
            m_EstateService.EstateAccess[info.ID, m_EstateAccessor2] = true;

            m_Log.Info("Testing existence of Estate Accessor 1");
            if (!m_EstateService.EstateAccess[info.ID, m_EstateAccessor1])
            {
                return(false);
            }

            m_Log.Info("Testing existence of Estate Accessor 2");
            if (!m_EstateService.EstateAccess[info.ID, m_EstateAccessor2])
            {
                return(false);
            }

            m_Log.Info("Testing returned entries to match");
            if (m_EstateService.EstateAccess.All[info.ID].Count != 2)
            {
                return(false);
            }

            m_Log.Info("Disabling Estate Accessor 1");
            m_EstateService.EstateAccess[info.ID, m_EstateAccessor1] = false;

            m_Log.Info("Testing non-existence of Estate Accessor 1");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor1])
            {
                return(false);
            }

            m_Log.Info("Testing existence of Estate Accessor 2");
            if (!m_EstateService.EstateAccess[info.ID, m_EstateAccessor2])
            {
                return(false);
            }

            m_Log.Info("Testing returned entries to match");
            if (m_EstateService.EstateAccess.All[info.ID].Count != 1)
            {
                return(false);
            }

            m_Log.Info("Disabling Estate Accessor 2");
            m_EstateService.EstateAccess[info.ID, m_EstateAccessor2] = false;

            m_Log.Info("Testing non-existence of Estate Accessor 1");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor1])
            {
                return(false);
            }

            m_Log.Info("Testing non-existence of Estate Accessor 2");
            if (m_EstateService.EstateAccess[info.ID, m_EstateAccessor2])
            {
                return(false);
            }

            m_Log.Info("Testing returned entries to match");
            if (m_EstateService.EstateAccess.All[info.ID].Count != 0)
            {
                return(false);
            }

            m_Log.Info("Testing deletion");
            if (!m_EstateService.Remove(info.ID))
            {
                return(false);
            }
            return(true);
        }
예제 #4
0
        public bool Run()
        {
            m_Log.Info("Creating estates");
            EstateInfo info1 = new EstateInfo()
            {
                Name  = "Test Estate 1",
                ID    = 101,
                Owner = m_EstateOwner1
            };

            m_EstateService.Add(info1);

            EstateInfo info2 = new EstateInfo()
            {
                Name  = "Test Estate 2",
                ID    = 102,
                Owner = m_EstateOwner2
            };

            m_EstateService.Add(info2);

            m_Log.Info("Adding regions");
            m_EstateService.RegionMap[m_EstateRegion1] = 101;
            m_EstateService.RegionMap[m_EstateRegion2] = 102;

            m_Log.Info("Test that estate 101 has region 1 on list");
            List <UUID> infoList1 = m_EstateService.RegionMap[101];

            if (infoList1.Count != 1 || !infoList1.Contains(m_EstateRegion1))
            {
                return(false);
            }

            m_Log.Info("Test that estate 101 has region 1 on explicit");
            if (m_EstateService.RegionMap[m_EstateRegion1] != 101)
            {
                return(false);
            }

            m_Log.Info("Test that estate 102 has region 2");
            List <UUID> infoList2 = m_EstateService.RegionMap[102];

            if (infoList2.Count != 1 || !infoList2.Contains(m_EstateRegion2))
            {
                return(false);
            }

            m_Log.Info("Test that estate 102 has region 2 on explicit");
            if (m_EstateService.RegionMap[m_EstateRegion2] != 102)
            {
                return(false);
            }

            m_Log.Info("exchange regions between estates");
            m_EstateService.RegionMap[m_EstateRegion1] = 102;
            m_EstateService.RegionMap[m_EstateRegion2] = 101;

            m_Log.Info("Test that estate 101 has region 2 on list");
            infoList1 = m_EstateService.RegionMap[101];
            if (infoList1.Count != 1 || !infoList1.Contains(m_EstateRegion2))
            {
                return(false);
            }

            m_Log.Info("Test that estate 101 has region 2 on explicit");
            if (m_EstateService.RegionMap[m_EstateRegion2] != 101)
            {
                return(false);
            }

            m_Log.Info("Test that estate 102 has region 1");
            infoList2 = m_EstateService.RegionMap[102];
            if (infoList2.Count != 1 || !infoList2.Contains(m_EstateRegion1))
            {
                return(false);
            }

            m_Log.Info("Test that estate 102 has region 1 on explicit");
            if (m_EstateService.RegionMap[m_EstateRegion2] != 101)
            {
                return(false);
            }

            m_Log.Info("Testing deletion");
            if (!m_EstateService.Remove(info1.ID))
            {
                return(false);
            }
            if (!m_EstateService.Remove(info2.ID))
            {
                return(false);
            }
            return(true);
        }
        public bool Run()
        {
            m_Log.Info("Creating estates");
            EstateInfo info1 = new EstateInfo()
            {
                Name  = "Test Estate 1",
                ID    = 101,
                Owner = m_EstateOwner1
            };

            m_EstateService.Add(info1);

            EstateInfo info2 = new EstateInfo()
            {
                Name  = "Test Estate 2",
                ID    = 102,
                Owner = m_EstateOwner2
            };

            m_EstateService.Add(info2);

            m_Log.Info("Test that owner 1 has estate 101 on list");
            List <uint> infoList1 = m_EstateService.EstateOwner[m_EstateOwner1];

            if (infoList1.Count != 1 || !infoList1.Contains(101))
            {
                return(false);
            }

            m_Log.Info("Test that owner 1 has estate 101 on explicit");
            if (!m_EstateService.EstateOwner[info1.ID].EqualsGrid(m_EstateOwner1))
            {
                return(false);
            }

            m_Log.Info("Test that owner 2 has estate 102");
            List <uint> infoList2 = m_EstateService.EstateOwner[m_EstateOwner2];

            if (infoList2.Count != 1 || !infoList2.Contains(102))
            {
                return(false);
            }

            m_Log.Info("Test that owner 2 has estate 102 on explicit");
            if (!m_EstateService.EstateOwner[info2.ID].EqualsGrid(m_EstateOwner2))
            {
                return(false);
            }

            m_Log.Info("exchange estates between owners");
            m_EstateService.EstateOwner[101] = m_EstateOwner2;
            m_EstateService.EstateOwner[102] = m_EstateOwner1;

            m_Log.Info("check that owner changes on EstateInfo");
            if (!m_EstateService[101].Owner.EqualsGrid(m_EstateOwner2))
            {
                return(false);
            }
            if (!m_EstateService[102].Owner.EqualsGrid(m_EstateOwner1))
            {
                return(false);
            }

            m_Log.Info("Test that owner 1 has estate 102 on list");
            infoList1 = m_EstateService.EstateOwner[m_EstateOwner1];
            if (infoList1.Count != 1 || !infoList1.Contains(102))
            {
                return(false);
            }

            m_Log.Info("Test that owner 1 has estate 102 on explicit");
            if (!m_EstateService.EstateOwner[info2.ID].EqualsGrid(m_EstateOwner1))
            {
                return(false);
            }

            m_Log.Info("Test that owner 2 has estate 101");
            infoList2 = m_EstateService.EstateOwner[m_EstateOwner2];
            if (infoList2.Count != 1 || !infoList2.Contains(101))
            {
                return(false);
            }

            m_Log.Info("Test that owner 2 has estate 101 on explicit");
            if (!m_EstateService.EstateOwner[info1.ID].EqualsGrid(m_EstateOwner2))
            {
                return(false);
            }

            m_Log.Info("Testing deletion");
            if (!m_EstateService.Remove(info1.ID))
            {
                return(false);
            }
            if (!m_EstateService.Remove(info2.ID))
            {
                return(false);
            }
            return(true);
        }
예제 #6
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);
        }