Ejemplo n.º 1
0
        private void LoadBanList(EstateSettings es)
        {
            es.ClearBans();

            using (MySqlConnection dbcon = new MySqlConnection(m_connectionString))
            {
                dbcon.Open();

                using (MySqlCommand cmd = dbcon.CreateCommand())
                {
                    cmd.CommandText = "select bannedUUID from estateban where EstateID = ?EstateID";
                    cmd.Parameters.AddWithValue("?EstateID", es.EstateID);

                    using (IDataReader r = cmd.ExecuteReader())
                    {
                        while (r.Read())
                        {
                            EstateBan eb = new EstateBan();

                            UUID uuid = new UUID();
                            UUID.TryParse(r["bannedUUID"].ToString(), out uuid);

                            eb.BannedUserID      = uuid;
                            eb.BannedHostAddress = "0.0.0.0";
                            eb.BannedHostIPMask  = "0.0.0.0";
                            es.AddBan(eb);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private void LoadBanList(EstateSettings es)
        {
            es.ClearBans();

            string sql = "select bannedUUID from estateban where EstateID = @EstateID";

            using (AutoClosingSqlCommand cmd = _Database.Query(sql))
            {
                SqlParameter idParameter = new SqlParameter("@EstateID", SqlDbType.Int);
                idParameter.Value = es.EstateID;
                cmd.Parameters.Add(idParameter);

                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        EstateBan eb = new EstateBan();

                        eb.BannedUserID      = new UUID((Guid)reader["bannedUUID"]); //uuid;
                        eb.BannedHostAddress = "0.0.0.0";
                        eb.BannedHostIPMask  = "0.0.0.0";
                        es.AddBan(eb);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private void LoadBanList(EstateSettings es)
        {
            es.ClearBans();

            List <string> query = null;

            try
            {
                query = GD.Query(new string[] { "ID", "`Key`" }, new object[] { es.EstateID, "EstateBans" }, "estates", "Value");
            }
            catch
            {
            }
            if (query == null || query.Count == 0)
            {
                return; //Couldn't find it, return then.
            }
            OSDMap estateInfo = (OSDMap)OSDParser.DeserializeLLSDXml(query[0]);

            foreach (OSD map in estateInfo.Values)
            {
                OSDMap    estateBan = (OSDMap)map;
                EstateBan eb        = new EstateBan();

                eb.BannedUserID      = estateBan["BannedUserID"].AsUUID();
                eb.BannedHostAddress = estateBan["BannedHostAddress"].AsString();
                eb.BannedHostIPMask  = estateBan["BannedHostIPMask"].AsString();
                es.AddBan(eb);
            }
        }
Ejemplo n.º 4
0
        public List <UUID> GetEstateRegions(uint estateID)
        {
            using (MySqlConnection conn = GetConnection())
            {
                using (MySqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select RegionID from estate_map where EstateID = ?EstateID";
                    cmd.Parameters.AddWithValue("?EstateID", estateID);

                    IDataReader r = cmd.ExecuteReader();

                    List <UUID> regions = new List <UUID>();
                    while (r.Read())
                    {
                        EstateBan eb = new EstateBan();

                        UUID uuid = new UUID();
                        UUID.TryParse(r["RegionID"].ToString(), out uuid);

                        regions.Add(uuid);
                    }
                    r.Close();
                    return(regions);
                }
            }
        }
Ejemplo n.º 5
0
        private void LoadBanList(EstateSettings es)
        {
            es.ClearBans();

            IDataReader r;

            using (SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand())
            {
                cmd.CommandText = "select * from estateban where EstateID = :EstateID";
                cmd.Parameters.AddWithValue(":EstateID", es.EstateID);

                r = cmd.ExecuteReader();
            }

            while (r.Read())
            {
                EstateBan eb = new EstateBan();

                eb.BannedUserID      = DBGuid.FromDB(r["bannedUUID"]);;
                eb.BannedHostAddress = "0.0.0.0";
                eb.BannedHostIPMask  = "0.0.0.0";
                eb.BanningUserID     = DBGuid.FromDB(r["banningUUID"]);
                eb.BanTime           = Convert.ToInt32(r["banTime"]);
                es.AddBan(eb);
            }
            r.Close();
        }
Ejemplo n.º 6
0
        private void LoadBanList(EstateSettings es)
        {
            es.ClearBans();

            string sql = "select \"bannedUUID\" from estateban where \"EstateID\" = :EstateID";

            using (NpgsqlConnection conn = new NpgsqlConnection(m_connectionString))
                using (NpgsqlCommand cmd = new NpgsqlCommand(sql, conn))
                {
                    NpgsqlParameter idParameter = new NpgsqlParameter("EstateID", DbType.Int32);
                    idParameter.Value = es.EstateID;
                    cmd.Parameters.Add(idParameter);
                    conn.Open();
                    using (NpgsqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            EstateBan eb = new EstateBan();

                            eb.BannedUserID      = new UUID((Guid)reader["bannedUUID"]); //uuid;
                            eb.BannedHostAddress = "0.0.0.0";
                            eb.BannedHostIPMask  = "0.0.0.0";
                            es.AddBan(eb);
                        }
                    }
                }
        }
        public void T022_EstateSettingsBanList()
        {
            TestHelpers.InMethod();

            // Letting estate store generate rows to database for us
            EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID, true);

            EstateBan estateBan1 = new EstateBan();

            estateBan1.BannedUserID = DataTestUtil.UUID_MIN;

            EstateBan estateBan2 = new EstateBan();

            estateBan2.BannedUserID = DataTestUtil.UUID_MAX;

            originalSettings.EstateBans = new EstateBan[] { estateBan1, estateBan2 };

            // Saving settings.
            db.StoreEstateSettings(originalSettings);

            // Loading settings to another instance variable.
            EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID, true);

            Assert.AreEqual(2, loadedSettings.EstateBans.Length);
            Assert.AreEqual(DataTestUtil.UUID_MIN, loadedSettings.EstateBans[0].BannedUserID);

            Assert.AreEqual(DataTestUtil.UUID_MAX, loadedSettings.EstateBans[1].BannedUserID);
        }
Ejemplo n.º 8
0
        private void LoadBanList(EstateSettings es)
        {
            es.ClearBans();

            SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();

            cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID";
            cmd.Parameters.AddWithValue(":EstateID", es.EstateID);

            IDataReader r = cmd.ExecuteReader();

            while (r.Read())
            {
                EstateBan eb = new EstateBan();

                UUID uuid = new UUID();
                UUID.TryParse(r["bannedUUID"].ToString(), out uuid);

                eb.BannedUserID      = uuid;
                eb.BannedHostAddress = "0.0.0.0";
                eb.BannedHostIPMask  = "0.0.0.0";
                es.AddBan(eb);
            }
            r.Close();
        }
Ejemplo n.º 9
0
 public void AddBan(EstateBan ban)
 {
     if (ban == null)
     {
         return;
     }
     if (!IsBanned(ban.BannedUserID))
     {
         l_EstateBans.Add(ban);
     }
 }
Ejemplo n.º 10
0
        public override void FromOSD(OSDMap v)
        {
            OSDMap values = (OSDMap) v;
            EstateID = (uint) values["EstateID"].AsInteger();
            EstateName = values["EstateName"].AsString();
            AbuseEmailToEstateOwner = values["AbuseEmailToEstateOwner"].AsBoolean();
            DenyAnonymous = values["DenyAnonymous"].AsBoolean();
            ResetHomeOnTeleport = values["ResetHomeOnTeleport"].AsBoolean();
            FixedSun = values["FixedSun"].AsBoolean();
            DenyTransacted = values["DenyTransacted"].AsBoolean();
            BlockDwell = values["BlockDwell"].AsBoolean();
            DenyIdentified = values["DenyIdentified"].AsBoolean();
            AllowVoice = values["AllowVoice"].AsBoolean();
            UseGlobalTime = values["UseGlobalTime"].AsBoolean();
            PricePerMeter = values["PricePerMeter"].AsInteger();
            TaxFree = values["TaxFree"].AsBoolean();
            AllowDirectTeleport = values["AllowDirectTeleport"].AsBoolean();
            RedirectGridX = values["RedirectGridX"].AsInteger();
            RedirectGridY = values["RedirectGridY"].AsInteger();
            ParentEstateID = (uint) values["ParentEstateID"].AsInteger();
            SunPosition = values["SunPosition"].AsReal();
            EstateSkipScripts = values["EstateSkipScripts"].AsBoolean();
            BillableFactor = (float) values["BillableFactor"].AsReal();
            PublicAccess = values["PublicAccess"].AsBoolean();
            AbuseEmail = values["AbuseEmail"].AsString();
            EstateOwner = values["EstateOwner"].AsUUID();
            AllowLandmark = values["AllowLandmark"].AsBoolean();
            AllowParcelChanges = values["AllowParcelChanges"].AsBoolean();
            AllowSetHome = values["AllowSetHome"].AsBoolean();
            DenyMinors = values["DenyMinors"].AsBoolean();

            OSDArray Managers = values["EstateManagers"] as OSDArray;
            if (Managers != null)
            {
#if (!ISWIN)
                List<UUID> list = new List<UUID>();
                foreach (OSD id in Managers)
                {
                    list.Add(id.AsUUID());
                }
                EstateManagers = list.ToArray();
#else
                EstateManagers = Managers.Select(id => id.AsUUID()).ToArray();
#endif
            }

            OSDArray Ban = values["EstateBans"] as OSDArray;
            if (Ban != null)
            {
                List<EstateBan> NewBan = new List<EstateBan>();
                foreach (OSD BannedUser in Ban)
                {
                    EstateBan ban = new EstateBan();
                    ban.FromOSD(BannedUser);
                    NewBan.Add(ban);
                }
                EstateBans = NewBan.ToArray();
            }

            OSDArray Access = values["EstateAccess"] as OSDArray;
            if (Access != null)
            {
#if (!ISWIN)
                List<UUID> list1 = new List<UUID>();
                foreach (OSD uuid in Access)
                {
                    list1.Add(uuid.AsUUID());
                }
                EstateAccess = list1.ToArray();
#else
                EstateAccess = Access.Select(uuid => uuid.AsUUID()).ToArray();
#endif
            }

            OSDArray Groups = values["EstateGroups"] as OSDArray;
            if (Groups != null)
            {
#if (!ISWIN)
                List<UUID> list2 = new List<UUID>();
                foreach (OSD uuid in Groups)
                {
                    list2.Add(uuid.AsUUID());
                }
                EstateGroups = list2.ToArray();
#else
                EstateGroups = Groups.Select(uuid => uuid.AsUUID()).ToArray();
#endif
            }
        }
Ejemplo n.º 11
0
        public Hashtable ProcessRequest(Hashtable request, UUID AgentId, Caps cap)
        {
            Hashtable responsedata = new Hashtable();

            responsedata["int_response_code"] = 200; //501; //410; //404;
            responsedata["content_type"]      = "text/plain";

            ScenePresence avatar;

            if (!m_scene.TryGetScenePresence(AgentId, out avatar))
            {
                responsedata["str_response_string"] = "<llsd><array /></llsd>";;
                responsedata["keepalive"]           = false;
                return(responsedata);
            }

            if (m_scene.RegionInfo == null ||
                m_scene.RegionInfo.EstateSettings == null ||
                !m_scene.Permissions.CanIssueEstateCommand(AgentId, false))
            {
                responsedata["str_response_string"] = "<llsd><array /></llsd>";;
                return(responsedata);
            }

            EstateSettings regionSettings = m_scene.RegionInfo.EstateSettings;

            UUID[]      managers   = regionSettings.EstateManagers;
            UUID[]      allowed    = regionSettings.EstateAccess;
            UUID[]      groups     = regionSettings.EstateGroups;
            EstateBan[] EstateBans = regionSettings.EstateBans;

            StringBuilder sb = LLSDxmlEncode.Start();

            LLSDxmlEncode.AddMap(sb);

            if (allowed != null && allowed.Length > 0)
            {
                LLSDxmlEncode.AddArray("AllowedAgents", sb);
                for (int i = 0; i < allowed.Length; ++i)
                {
                    UUID id = allowed[i];
                    if (id == UUID.Zero)
                    {
                        continue;
                    }
                    LLSDxmlEncode.AddMap(sb);
                    LLSDxmlEncode.AddElem("id", id, sb);
                    LLSDxmlEncode.AddEndMap(sb);
                }
                LLSDxmlEncode.AddEndArray(sb);
            }

            if (groups != null && groups.Length > 0)
            {
                LLSDxmlEncode.AddArray("AllowedGroups", sb);
                for (int i = 0; i < groups.Length; ++i)
                {
                    UUID id = groups[i];
                    if (id == UUID.Zero)
                    {
                        continue;
                    }
                    LLSDxmlEncode.AddMap(sb);
                    LLSDxmlEncode.AddElem("id", id, sb);
                    LLSDxmlEncode.AddEndMap(sb);
                }
                LLSDxmlEncode.AddEndArray(sb);
            }

            if (EstateBans != null && EstateBans.Length > 0)
            {
                LLSDxmlEncode.AddArray("BannedAgents", sb);
                for (int i = 0; i < EstateBans.Length; ++i)
                {
                    EstateBan ban = EstateBans[i];
                    UUID      id  = ban.BannedUserID;
                    if (id == UUID.Zero)
                    {
                        continue;
                    }
                    LLSDxmlEncode.AddMap(sb);
                    LLSDxmlEncode.AddElem("id", id, sb);
                    LLSDxmlEncode.AddElem("banning_id", ban.BanningUserID, sb);
                    LLSDxmlEncode.AddElem("last_login_date", "na", sb);     // We will not have this. This information is far at grid
                    if (ban.BanTime == 0)
                    {
                        LLSDxmlEncode.AddElem("ban_date", "0000-00-00 00:00", sb);
                    }
                    else
                    {
                        LLSDxmlEncode.AddElem("ban_date", (Util.ToDateTime(ban.BanTime)).ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture), sb);
                    }
                    LLSDxmlEncode.AddEndMap(sb);
                }
                LLSDxmlEncode.AddEndArray(sb);
            }

            if (managers != null && managers.Length > 0)
            {
                LLSDxmlEncode.AddArray("Managers", sb);
                for (int i = 0; i < managers.Length; ++i)
                {
                    LLSDxmlEncode.AddMap(sb);
                    LLSDxmlEncode.AddElem("agent_id", managers[i], sb);
                    LLSDxmlEncode.AddEndMap(sb);
                }
                LLSDxmlEncode.AddEndArray(sb);
            }

            LLSDxmlEncode.AddEndMap(sb);
            responsedata["str_response_string"] = LLSDxmlEncode.End(sb);

            return(responsedata);
        }
Ejemplo n.º 12
0
        public override void FromOSD(OSDMap v)
        {
            OSDMap values = (OSDMap)v;

            EstateID   = (uint)values["EstateID"].AsInteger();
            EstateName = values["EstateName"].AsString();
            AbuseEmailToEstateOwner = values["AbuseEmailToEstateOwner"].AsBoolean();
            DenyAnonymous           = values["DenyAnonymous"].AsBoolean();
            ResetHomeOnTeleport     = values["ResetHomeOnTeleport"].AsBoolean();
            FixedSun            = values["FixedSun"].AsBoolean();
            DenyTransacted      = values["DenyTransacted"].AsBoolean();
            BlockDwell          = values["BlockDwell"].AsBoolean();
            DenyIdentified      = values["DenyIdentified"].AsBoolean();
            AllowVoice          = values["AllowVoice"].AsBoolean();
            UseGlobalTime       = values["UseGlobalTime"].AsBoolean();
            PricePerMeter       = values["PricePerMeter"].AsInteger();
            TaxFree             = values["TaxFree"].AsBoolean();
            AllowDirectTeleport = values["AllowDirectTeleport"].AsBoolean();
            ParentEstateID      = (uint)values["ParentEstateID"].AsInteger();
            SunPosition         = values["SunPosition"].AsReal();
            EstateSkipScripts   = values["EstateSkipScripts"].AsBoolean();
            BillableFactor      = (float)values["BillableFactor"].AsReal();
            PublicAccess        = values["PublicAccess"].AsBoolean();
            AbuseEmail          = values["AbuseEmail"].AsString();
            EstateOwner         = values["EstateOwner"].AsUUID();
            AllowLandmark       = values["AllowLandmark"].AsBoolean();
            AllowParcelChanges  = values["AllowParcelChanges"].AsBoolean();
            AllowSetHome        = values["AllowSetHome"].AsBoolean();
            DenyMinors          = values["DenyMinors"].AsBoolean();

            OSDArray Managers = values["EstateManagers"] as OSDArray;

            if (Managers != null)
            {
                EstateManagers = Managers.ConvertAll <UUID>((o) => o);
            }

            OSDArray Ban = values["EstateBans"] as OSDArray;

            if (Ban != null)
            {
                EstateBans = Ban.ConvertAll <EstateBan>((o) =>
                {
                    EstateBan ban = new EstateBan();
                    ban.FromOSD(o);
                    return(ban);
                });
            }

            OSDArray Access = values["EstateAccess"] as OSDArray;

            if (Access != null)
            {
                EstateAccess = Access.ConvertAll <UUID>((o) => o);
            }

            OSDArray Groups = values["EstateGroups"] as OSDArray;

            if (Groups != null)
            {
                EstateGroups = Groups.ConvertAll <UUID>((o) => o);
            }
        }
Ejemplo n.º 13
0
 /// <summary>
 ///     remove an entry from the region banlist
 /// </summary>
 /// <param name="item"></param>
 public void RemoveFromRegionBanlist(EstateBan item)
 {
 }
Ejemplo n.º 14
0
        protected void SetRegionInfoOption(IScene scene, string[] cmdparams)
        {
            #region 3 Params needed

            if (cmdparams.Length < 4)
            {
                MainConsole.Instance.Warn("Not enough parameters!");
                return;
            }
            if (cmdparams[2] == "Maturity")
            {
                switch (cmdparams[3])
                {
                case "PG":
                    m_scene.RegionInfo.AccessLevel = Util.ConvertMaturityToAccessLevel(0);
                    break;

                case "Mature":
                    m_scene.RegionInfo.AccessLevel = Util.ConvertMaturityToAccessLevel(1);
                    break;

                case "Adult":
                    m_scene.RegionInfo.AccessLevel = Util.ConvertMaturityToAccessLevel(2);
                    break;

                default:
                    MainConsole.Instance.Warn(
                        "Your parameter did not match any existing parameters. Try PG, Mature, or Adult");
                    return;
                }
                //Tell the grid about the changes
                IGridRegisterModule gridRegModule = m_scene.RequestModuleInterface <IGridRegisterModule>();
                if (gridRegModule != null)
                {
                    gridRegModule.UpdateGridRegion(m_scene);
                }
            }

            #endregion

            #region 4 Params needed

            if (cmdparams.Length < 4)
            {
                MainConsole.Instance.Warn("Not enough parameters!");
                return;
            }
            if (cmdparams[2] == "AddEstateBan".ToLower())
            {
                EstateBan EB = new EstateBan
                {
                    BannedUserID =
                        m_scene.UserAccountService.GetUserAccount(null, cmdparams[3],
                                                                  cmdparams[4]).PrincipalID
                };
                m_scene.RegionInfo.EstateSettings.AddBan(EB);
            }
            if (cmdparams[2] == "AddEstateManager".ToLower())
            {
                m_scene.RegionInfo.EstateSettings.AddEstateManager(
                    m_scene.UserAccountService.GetUserAccount(null, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "AddEstateAccess".ToLower())
            {
                m_scene.RegionInfo.EstateSettings.AddEstateUser(
                    m_scene.UserAccountService.GetUserAccount(null, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "RemoveEstateBan".ToLower())
            {
                m_scene.RegionInfo.EstateSettings.RemoveBan(
                    m_scene.UserAccountService.GetUserAccount(null, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "RemoveEstateManager".ToLower())
            {
                m_scene.RegionInfo.EstateSettings.RemoveEstateManager(
                    m_scene.UserAccountService.GetUserAccount(null, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "RemoveEstateAccess".ToLower())
            {
                m_scene.RegionInfo.EstateSettings.RemoveEstateUser(
                    m_scene.UserAccountService.GetUserAccount(null, cmdparams[3], cmdparams[4]).PrincipalID);
            }

            #endregion

            Aurora.Framework.Utilities.DataManager.RequestPlugin <IEstateConnector>().
            SaveEstateSettings(m_scene.RegionInfo.EstateSettings);
        }
Ejemplo n.º 15
0
 /// <summary>
 ///     Add en entry into region banlist
 /// </summary>
 /// <param name="item"></param>
 public void AddToRegionBanlist(EstateBan item)
 {
 }
Ejemplo n.º 16
0
        public void ProcessRequest(IOSHttpRequest request, IOSHttpResponse response, UUID AgentId)
        {
            if (request.HttpMethod != "GET")
            {
                response.StatusCode = (int)HttpStatusCode.NotFound;
                return;
            }

            ScenePresence avatar;

            if (!m_scene.TryGetScenePresence(AgentId, out avatar) || m_scene.RegionInfo == null || m_scene.RegionInfo.EstateSettings == null)
            {
                response.StatusCode = (int)HttpStatusCode.Gone;
                return;
            }

            if (!m_scene.Permissions.CanIssueEstateCommand(AgentId, false))
            {
                response.StatusCode = (int)HttpStatusCode.Unauthorized;
                return;
            }

            EstateSettings regionSettings = m_scene.RegionInfo.EstateSettings;

            UUID[]      managers   = regionSettings.EstateManagers;
            UUID[]      allowed    = regionSettings.EstateAccess;
            UUID[]      groups     = regionSettings.EstateGroups;
            EstateBan[] EstateBans = regionSettings.EstateBans;

            StringBuilder sb = LLSDxmlEncode.Start();

            LLSDxmlEncode.AddMap(sb);

            if (allowed != null && allowed.Length > 0)
            {
                LLSDxmlEncode.AddArray("AllowedAgents", sb);
                for (int i = 0; i < allowed.Length; ++i)
                {
                    UUID id = allowed[i];
                    if (id == UUID.Zero)
                    {
                        continue;
                    }
                    LLSDxmlEncode.AddMap(sb);
                    LLSDxmlEncode.AddElem("id", id, sb);
                    LLSDxmlEncode.AddEndMap(sb);
                }
                LLSDxmlEncode.AddEndArray(sb);
            }
            else
            {
                LLSDxmlEncode.AddEmptyArray("AllowedAgents", sb);
            }

            if (groups != null && groups.Length > 0)
            {
                LLSDxmlEncode.AddArray("AllowedGroups", sb);
                for (int i = 0; i < groups.Length; ++i)
                {
                    UUID id = groups[i];
                    if (id == UUID.Zero)
                    {
                        continue;
                    }
                    LLSDxmlEncode.AddMap(sb);
                    LLSDxmlEncode.AddElem("id", id, sb);
                    LLSDxmlEncode.AddEndMap(sb);
                }
                LLSDxmlEncode.AddEndArray(sb);
            }
            else
            {
                LLSDxmlEncode.AddEmptyArray("AllowedGroups", sb);
            }

            if (EstateBans != null && EstateBans.Length > 0)
            {
                LLSDxmlEncode.AddArray("BannedAgents", sb);
                for (int i = 0; i < EstateBans.Length; ++i)
                {
                    EstateBan ban = EstateBans[i];
                    UUID      id  = ban.BannedUserID;
                    if (id == UUID.Zero)
                    {
                        continue;
                    }
                    LLSDxmlEncode.AddMap(sb);
                    LLSDxmlEncode.AddElem("id", id, sb);
                    LLSDxmlEncode.AddElem("banning_id", ban.BanningUserID, sb);
                    LLSDxmlEncode.AddElem("last_login_date", "na", sb); // We will not have this. This information is far at grid
                    if (ban.BanTime == 0)
                    {
                        LLSDxmlEncode.AddElem("ban_date", "0000-00-00 00:00", sb);
                    }
                    else
                    {
                        LLSDxmlEncode.AddElem("ban_date", (Util.ToDateTime(ban.BanTime)).ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture), sb);
                    }
                    LLSDxmlEncode.AddEndMap(sb);
                }
                LLSDxmlEncode.AddEndArray(sb);
            }
            else
            {
                LLSDxmlEncode.AddEmptyArray("BannedAgents", sb);
            }

            if (managers != null && managers.Length > 0)
            {
                LLSDxmlEncode.AddArray("Managers", sb);
                for (int i = 0; i < managers.Length; ++i)
                {
                    LLSDxmlEncode.AddMap(sb);
                    LLSDxmlEncode.AddElem("agent_id", managers[i], sb);
                    LLSDxmlEncode.AddEndMap(sb);
                }
                LLSDxmlEncode.AddEndArray(sb);
            }
            else
            {
                LLSDxmlEncode.AddEmptyArray("Managers", sb);
            }

            LLSDxmlEncode.AddEndMap(sb);

            response.RawBuffer  = Util.UTF8.GetBytes(LLSDxmlEncode.End(sb));
            response.StatusCode = (int)HttpStatusCode.OK;
        }
Ejemplo n.º 17
0
        protected void SetRegionInfoOption(string[] cmdparams)
        {
            IScene scene = MainConsole.Instance.ConsoleScene;
            if (scene == null)
                scene = m_scenes[0];

            #region 3 Params needed

            if (cmdparams.Length < 4)
            {
                MainConsole.Instance.Warn("Not enough parameters!");
                return;
            }
            if (cmdparams[2] == "Maturity")
            {
                if (cmdparams[3] == "PG")
                {
                    scene.RegionInfo.AccessLevel = Util.ConvertMaturityToAccessLevel(0);
                }
                else if (cmdparams[3] == "Mature")
                {
                    scene.RegionInfo.AccessLevel = Util.ConvertMaturityToAccessLevel(1);
                }
                else if (cmdparams[3] == "Adult")
                {
                    scene.RegionInfo.AccessLevel = Util.ConvertMaturityToAccessLevel(2);
                }
                else
                {
                    MainConsole.Instance.Warn("Your parameter did not match any existing parameters. Try PG, Mature, or Adult");
                    return;
                }
                scene.RegionInfo.RegionSettings.Save();
                //Tell the grid about the changes
                IGridRegisterModule gridRegModule = scene.RequestModuleInterface<IGridRegisterModule>();
                if (gridRegModule != null)
                    gridRegModule.UpdateGridRegion(scene);
            }

            #endregion

            #region 4 Params needed

            if (cmdparams.Length < 4)
            {
                MainConsole.Instance.Warn("Not enough parameters!");
                return;
            }
            if (cmdparams[2] == "AddEstateBan".ToLower())
            {
                EstateBan EB = new EstateBan
                                   {
                                       BannedUserID =
                                           m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3],
                                                                                         cmdparams[4]).PrincipalID
                                   };
                scene.RegionInfo.EstateSettings.AddBan(EB);
            }
            if (cmdparams[2] == "AddEstateManager".ToLower())
            {
                scene.RegionInfo.EstateSettings.AddEstateManager(
                    m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "AddEstateAccess".ToLower())
            {
                scene.RegionInfo.EstateSettings.AddEstateUser(
                    m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "RemoveEstateBan".ToLower())
            {
                scene.RegionInfo.EstateSettings.RemoveBan(
                    m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "RemoveEstateManager".ToLower())
            {
                scene.RegionInfo.EstateSettings.RemoveEstateManager(
                    m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "RemoveEstateAccess".ToLower())
            {
                scene.RegionInfo.EstateSettings.RemoveEstateUser(
                    m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3], cmdparams[4]).PrincipalID);
            }

            #endregion

            scene.RegionInfo.RegionSettings.Save();
            scene.RegionInfo.EstateSettings.Save();
        }
Ejemplo n.º 18
0
        private void handleEstateAccessDeltaRequest(IClientAPI remote_client, UUID invoice, int estateAccessType, UUID user)
        {
            // EstateAccessDelta handles Estate Managers, Sim Access, Sim Banlist, allowed Groups..  etc.

            if (user == m_scene.RegionInfo.EstateSettings.EstateOwner)
                return; // never process EO

            if ((estateAccessType & (int)AccessDeltaRequest.AddAllowedUser) != 0) // User add
            {
                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true))
                {
                    IEstateConnector connector = Aurora.DataManager.DataManager.RequestPlugin<IEstateConnector> ();
                    if ((estateAccessType & 1) != 0 && connector != null) // All estates
                    {
                        List<EstateSettings> estateIDs = connector.GetEstates (remote_client.AgentId);
                        foreach (EstateSettings estate in estateIDs)
                        {
                            if (estate.EstateID != m_scene.RegionInfo.EstateSettings.EstateID)
                            {
                                estate.AddEstateUser (user);
                                estate.Save ();
                            }
                        }
                    }
                    m_scene.RegionInfo.EstateSettings.AddEstateUser(user);
                    if ((estateAccessType & (int)AccessDeltaRequest.MoreToCome) == 0) //1024 means more than one is being sent
                    {
                        m_scene.RegionInfo.EstateSettings.Save();
                        TriggerEstateInfoChange();
                    }
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }
            }
            if ((estateAccessType & (int)AccessDeltaRequest.RemoveAllowedUser) != 0) // User remove
            {
                IEstateConnector connector = Aurora.DataManager.DataManager.RequestPlugin<IEstateConnector> ();
                if ((estateAccessType & 1) != 0 && connector != null) // All estates
                {
                    List<EstateSettings> estateIDs = connector.GetEstates (remote_client.AgentId);
                    foreach (EstateSettings estate in estateIDs)
                    {
                        if (estate.EstateID != m_scene.RegionInfo.EstateSettings.EstateID)
                        {
                            estate.RemoveEstateUser (user);
                            estate.Save ();
                        }
                    }
                }
                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions())
                {
                    m_scene.RegionInfo.EstateSettings.RemoveEstateUser(user);
                    if ((estateAccessType & (int)AccessDeltaRequest.MoreToCome) == 0) //1024 means more than one is being sent
                    {
                        m_scene.RegionInfo.EstateSettings.Save();
                        TriggerEstateInfoChange();
                    }
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }
            }
            if ((estateAccessType & (int)AccessDeltaRequest.AddAllowedGroup) != 0) // Group add
            {
                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions())
                {
                    IEstateConnector connector = Aurora.DataManager.DataManager.RequestPlugin<IEstateConnector> ();
                    if ((estateAccessType & 1) != 0 && connector != null) // All estates
                    {
                        List<EstateSettings> estateIDs = connector.GetEstates (remote_client.AgentId);
                        foreach (EstateSettings estate in estateIDs)
                        {
                            if (estate.EstateID != m_scene.RegionInfo.EstateSettings.EstateID)
                            {
                                estate.AddEstateGroup (user);
                                estate.Save ();
                            }
                        }
                    }
                    m_scene.RegionInfo.EstateSettings.AddEstateGroup(user);
                    if ((estateAccessType & (int)AccessDeltaRequest.MoreToCome) == 0) //1024 means more than one is being sent
                    {
                        m_scene.RegionInfo.EstateSettings.Save();
                        TriggerEstateInfoChange();
                    }
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }
            }
            if ((estateAccessType & (int)AccessDeltaRequest.RemoveAllowedGroup) != 0) // Group remove
            {
                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions())
                {
                    IEstateConnector connector = Aurora.DataManager.DataManager.RequestPlugin<IEstateConnector> ();
                    if ((estateAccessType & 1) != 0 && connector != null) // All estates
                    {
                        List<EstateSettings> estateIDs = connector.GetEstates (remote_client.AgentId);
                        foreach (EstateSettings estate in estateIDs)
                        {
                            if (estate.EstateID != m_scene.RegionInfo.EstateSettings.EstateID)
                            {
                                estate.RemoveEstateGroup (user);
                                estate.Save ();
                            }
                        }
                    }
                    m_scene.RegionInfo.EstateSettings.RemoveEstateGroup(user);
                    if ((estateAccessType & (int)AccessDeltaRequest.MoreToCome) == 0) //1024 means more than one is being sent
                    {
                        m_scene.RegionInfo.EstateSettings.Save();
                        TriggerEstateInfoChange();
                    }
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }
            }
            if ((estateAccessType & (int)AccessDeltaRequest.AddBannedUser) != 0) // Ban add
            {
                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, false) || m_scene.Permissions.BypassPermissions())
                {
                    IEstateConnector connector = Aurora.DataManager.DataManager.RequestPlugin<IEstateConnector> ();
                    if ((estateAccessType & 1) != 0 && connector != null) // All estates
                    {
                        List<EstateSettings> estateIDs = connector.GetEstates (remote_client.AgentId);
                        foreach (EstateSettings estate in estateIDs)
                        {
                            if (estate.EstateID != m_scene.RegionInfo.EstateSettings.EstateID)
                            {
                                EstateBan[] innerbanlistcheck = estate.EstateBans;

#if (!ISWIN)
                                bool inneralreadyInList = false;
                                foreach (EstateBan t in innerbanlistcheck)
                                {
                                    if (user == t.BannedUserID)
                                    {
                                        inneralreadyInList = true;
                                        break;
                                    }
                                }
#else
                                bool inneralreadyInList = innerbanlistcheck.Any(t => user == t.BannedUserID);
#endif

                                if (!inneralreadyInList)
                                {
                                    EstateBan item = new EstateBan {BannedUserID = user, EstateID = estate.EstateID};

                                    IScenePresence SP = m_scene.GetScenePresence (user);
                                    item.BannedHostAddress = (SP != null) ? ((System.Net.IPEndPoint)SP.ControllingClient.GetClientEP ()).Address.ToString () : "0.0.0.0";
                                    item.BannedHostIPMask = (SP != null) ? ((System.Net.IPEndPoint)SP.ControllingClient.GetClientEP ()).Address.ToString () : "0.0.0.0";
                                    item.BannedHostNameMask = (SP != null) ? ((System.Net.IPEndPoint)SP.ControllingClient.GetClientEP ()).Address.ToString () : "0.0.0.0";
                                    estate.AddBan (item);
                                    estate.Save ();
                                }
                            }
                        }
                    }
                    EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans;

#if (!ISWIN)
                    bool alreadyInList = false;
                    foreach (EstateBan t in banlistcheck)
                    {
                        if (user == t.BannedUserID)
                        {
                            alreadyInList = true;
                            break;
                        }
                    }
#else
                    bool alreadyInList = banlistcheck.Any(t => user == t.BannedUserID);
#endif

                    if (!alreadyInList)
                    {
                        EstateBan item = new EstateBan
                                             {
                                                 BannedUserID = user,
                                                 EstateID = m_scene.RegionInfo.EstateSettings.EstateID,
                                                 BannedHostAddress = "0.0.0.0"
                                             };

                        IScenePresence SP = m_scene.GetScenePresence (user);
                        item.BannedHostIPMask = (SP != null) ? ((System.Net.IPEndPoint)SP.ControllingClient.GetClientEP()).Address.ToString() : "0.0.0.0";

                        m_scene.RegionInfo.EstateSettings.AddBan(item);

                        //Trigger the event
                        m_scene.AuroraEventManager.FireGenericEventHandler("BanUser", user);

                        if ((estateAccessType & (int)AccessDeltaRequest.MoreToCome) == 0) //1024 means more than one is being sent
                        {
                            m_scene.RegionInfo.EstateSettings.Save();
                            TriggerEstateInfoChange();
                        }

                        if (SP != null)
                        {
                            if (!SP.IsChildAgent)
                            {
                                IEntityTransferModule transferModule = m_scene.RequestModuleInterface<IEntityTransferModule>();
                                if (transferModule != null)
                                    transferModule.TeleportHome(user, SP.ControllingClient);
                            }
                            else
                            {
                                //Close them in the sim
                                IEntityTransferModule transferModule = SP.Scene.RequestModuleInterface<IEntityTransferModule> ();
                                if (transferModule != null)
                                    transferModule.IncomingCloseAgent (SP.Scene, SP.UUID);
                            }
                        }
                    }
                    else
                    {
                        remote_client.SendAlertMessage("User is already on the region ban list");
                    }
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }
            }
            if ((estateAccessType & (int)AccessDeltaRequest.RemoveBannedUser) != 0) // Ban remove
            {
                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, false) || m_scene.Permissions.BypassPermissions())
                {
                    IEstateConnector connector = Aurora.DataManager.DataManager.RequestPlugin<IEstateConnector> ();
                    if ((estateAccessType & 1) != 0 && connector != null) // All estates
                    {
                        List<EstateSettings> estateIDs = connector.GetEstates (remote_client.AgentId);
                        foreach (EstateSettings estate in estateIDs)
                        {
                            if (estate.EstateID != m_scene.RegionInfo.EstateSettings.EstateID)
                            {
                                EstateBan[] innerbanlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans;

                                bool inneralreadyInList = false;
                                EstateBan innerlistitem = null;

                                foreach (EstateBan t in innerbanlistcheck)
                                {
                                    if (user == t.BannedUserID)
                                    {
                                        inneralreadyInList = true;
                                        innerlistitem = t;
                                        break;
                                    }
                                }

                                if (inneralreadyInList)
                                {
                                    m_scene.RegionInfo.EstateSettings.RemoveBan (innerlistitem.BannedUserID);
                                }
                                estate.Save ();
                            }
                        }
                    }
                    EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans;

                    bool alreadyInList = false;
                    EstateBan listitem = null;

                    foreach (EstateBan t in banlistcheck)
                    {
                        if (user == t.BannedUserID)
                        {
                            alreadyInList = true;
                            listitem = t;
                            break;
                        }
                    }

                    //Trigger the event
                    m_scene.AuroraEventManager.FireGenericEventHandler("UnBanUser", user);

                    if (alreadyInList)
                    {
                        m_scene.RegionInfo.EstateSettings.RemoveBan(listitem.BannedUserID);
                        if ((estateAccessType & (int)AccessDeltaRequest.MoreToCome) == 0) //1024 means more than one is being sent
                        {
                            m_scene.RegionInfo.EstateSettings.Save();
                            TriggerEstateInfoChange();
                        }
                    }
                    else
                    {
                        remote_client.SendAlertMessage("User is not on the region ban list");
                    }
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }
            }
            if ((estateAccessType & (int)AccessDeltaRequest.AddEstateManager) != 0) // Manager add
            {
                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions())
                {
                    IEstateConnector connector = Aurora.DataManager.DataManager.RequestPlugin<IEstateConnector> ();
                    if ((estateAccessType & 1) != 0 && connector != null) // All estates
                    {
                        List<EstateSettings> estateIDs = connector.GetEstates (remote_client.AgentId);
                        foreach (EstateSettings estate in estateIDs)
                        {
                            if (estate.EstateID != m_scene.RegionInfo.EstateSettings.EstateID)
                            {
                                estate.AddEstateManager (user);
                                estate.Save ();
                            }
                        }
                    }
                    m_scene.RegionInfo.EstateSettings.AddEstateManager(user);
                    if ((estateAccessType & (int)AccessDeltaRequest.MoreToCome) == 0) //1024 means more than one is being sent
                    {
                        m_scene.RegionInfo.EstateSettings.Save();
                        TriggerEstateInfoChange();
                    }
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }
            }
            if ((estateAccessType & (int)AccessDeltaRequest.RemoveEstateManager) != 0) // Manager remove
            {
                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions())
                {
                    IEstateConnector connector = Aurora.DataManager.DataManager.RequestPlugin<IEstateConnector> ();
                    if ((estateAccessType & 1) != 0 && connector != null) // All estates
                    {
                        List<EstateSettings> estateIDs = connector.GetEstates (remote_client.AgentId);
                        foreach (EstateSettings estate in estateIDs)
                        {
                            if (estate.EstateID != m_scene.RegionInfo.EstateSettings.EstateID)
                            {
                                estate.RemoveEstateManager (user);
                                estate.Save ();
                            }
                        }
                    }
                    m_scene.RegionInfo.EstateSettings.RemoveEstateManager(user);
                    if ((estateAccessType & (int)AccessDeltaRequest.MoreToCome) == 0) //1024 means more than one is being sent
                    {
                        m_scene.RegionInfo.EstateSettings.Save();
                        TriggerEstateInfoChange();
                    }
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }
            }
            if ((estateAccessType & (int)AccessDeltaRequest.MoreToCome) == 0) //1024 means more than one is being sent
            {
                remote_client.SendEstateList(invoice, (int)EstateTools.EstateAccessReplyDelta.AllowedUsers, m_scene.RegionInfo.EstateSettings.EstateAccess, m_scene.RegionInfo.EstateSettings.EstateID);
                remote_client.SendEstateList(invoice, (int)EstateTools.EstateAccessReplyDelta.AllowedGroups, m_scene.RegionInfo.EstateSettings.EstateGroups, m_scene.RegionInfo.EstateSettings.EstateID);
                remote_client.SendBannedUserList(invoice, m_scene.RegionInfo.EstateSettings.EstateBans, m_scene.RegionInfo.EstateSettings.EstateID);
                remote_client.SendEstateList(invoice, (int)EstateTools.EstateAccessReplyDelta.EstateManagers, m_scene.RegionInfo.EstateSettings.EstateManagers, m_scene.RegionInfo.EstateSettings.EstateID);
            }
        }
Ejemplo n.º 19
0
        private void handleEstateAccessDeltaRequest(IClientAPI remote_client, UUID invoice, int estateAccessType, UUID user)
        {
            // EstateAccessDelta handles Estate Managers, Sim Access, Sim Banlist, allowed Groups..  etc.

            if (user == m_scene.RegionInfo.EstateSettings.EstateOwner)
            {
                return; // never process EO
            }
            if (user == m_scene.RegionInfo.MasterAvatarAssignedUUID)
            {
                return; // never process owner
            }
            switch (estateAccessType)
            {
            case 64:
                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, false) || m_scene.Permissions.BypassPermissions())
                {
                    EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans;

                    bool alreadyInList = false;

                    for (int i = 0; i < banlistcheck.Length; i++)
                    {
                        if (user == banlistcheck[i].BannedUserID)
                        {
                            alreadyInList = true;
                            break;
                        }
                    }
                    if (!alreadyInList)
                    {
                        EstateBan item = new EstateBan();

                        item.BannedUserID      = user;
                        item.EstateID          = m_scene.RegionInfo.EstateSettings.EstateID;
                        item.BannedHostAddress = "0.0.0.0";
                        item.BannedHostIPMask  = "0.0.0.0";

                        m_scene.RegionInfo.EstateSettings.AddBan(item);
                        m_scene.RegionInfo.EstateSettings.Save();

                        ScenePresence s = m_scene.GetScenePresence(user);
                        if (s != null)
                        {
                            if (!s.IsChildAgent)
                            {
                                s.ControllingClient.SendTeleportLocationStart();
                                m_scene.TeleportClientHome(user, s.ControllingClient);
                            }
                        }
                    }
                    else
                    {
                        remote_client.SendAlertMessage("User is already on the region ban list");
                    }
                    //m_scene.RegionInfo.regionBanlist.Add(Manager(user);
                    remote_client.SendBannedUserList(invoice, m_scene.RegionInfo.EstateSettings.EstateBans, m_scene.RegionInfo.EstateSettings.EstateID);
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }
                break;

            case 128:
                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, false) || m_scene.Permissions.BypassPermissions())
                {
                    EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans;

                    bool      alreadyInList = false;
                    EstateBan listitem      = null;

                    for (int i = 0; i < banlistcheck.Length; i++)
                    {
                        if (user == banlistcheck[i].BannedUserID)
                        {
                            alreadyInList = true;
                            listitem      = banlistcheck[i];
                            break;
                        }
                    }
                    if (alreadyInList && listitem != null)
                    {
                        m_scene.RegionInfo.EstateSettings.RemoveBan(listitem.BannedUserID);
                        m_scene.RegionInfo.EstateSettings.Save();
                    }
                    else
                    {
                        remote_client.SendAlertMessage("User is not on the region ban list");
                    }
                    //m_scene.RegionInfo.regionBanlist.Add(Manager(user);
                    remote_client.SendBannedUserList(invoice, m_scene.RegionInfo.EstateSettings.EstateBans, m_scene.RegionInfo.EstateSettings.EstateID);
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }
                break;

            case 256:

                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions())
                {
                    m_scene.RegionInfo.EstateSettings.AddEstateManager(user);
                    m_scene.RegionInfo.EstateSettings.Save();
                    remote_client.SendEstateManagersList(invoice, m_scene.RegionInfo.EstateSettings.EstateManagers, m_scene.RegionInfo.EstateSettings.EstateID);
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }

                break;

            case 512:
                if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions())
                {
                    m_scene.RegionInfo.EstateSettings.RemoveEstateManager(user);
                    m_scene.RegionInfo.EstateSettings.Save();

                    remote_client.SendEstateManagersList(invoice, m_scene.RegionInfo.EstateSettings.EstateManagers, m_scene.RegionInfo.EstateSettings.EstateID);
                }
                else
                {
                    remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
                }
                break;

            default:

                m_log.ErrorFormat("EstateOwnerMessage: Unknown EstateAccessType requested in estateAccessDelta: {0}", estateAccessType.ToString());
                break;
            }
        }
Ejemplo n.º 20
0
        protected void SetRegionInfoOption(string module, string[] cmdparams)
        {
            IScene scene = MainConsole.Instance.ConsoleScene;

            if (scene == null)
            {
                scene = m_scenes[0];
            }
            #region 3 Params needed
            if (cmdparams.Length < 4)
            {
                m_log.Warn("Not enough parameters!");
                return;
            }
            if (cmdparams[2] == "Maturity")
            {
                if (cmdparams[3] == "PG")
                {
                    scene.RegionInfo.AccessLevel = Util.ConvertMaturityToAccessLevel(0);
                }
                else if (cmdparams[3] == "Mature")
                {
                    scene.RegionInfo.AccessLevel = Util.ConvertMaturityToAccessLevel(1);
                }
                else if (cmdparams[3] == "Adult")
                {
                    scene.RegionInfo.AccessLevel = Util.ConvertMaturityToAccessLevel(2);
                }
                else
                {
                    m_log.Warn("Your parameter did not match any existing parameters. Try PG, Mature, or Adult");
                    return;
                }
                scene.RegionInfo.RegionSettings.Save();
                //Tell the grid about the changes
                IGridRegisterModule gridRegModule = scene.RequestModuleInterface <IGridRegisterModule>();
                if (gridRegModule != null)
                {
                    gridRegModule.UpdateGridRegion(scene);
                }
            }
            #endregion
            #region 4 Params needed
            if (cmdparams.Length < 4)
            {
                m_log.Warn("Not enough parameters!");
                return;
            }
            if (cmdparams[2] == "AddEstateBan".ToLower())
            {
                EstateBan EB = new EstateBan();
                EB.BannedUserID = m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3], cmdparams[4]).PrincipalID;
                scene.RegionInfo.EstateSettings.AddBan(EB);
            }
            if (cmdparams[2] == "AddEstateManager".ToLower())
            {
                scene.RegionInfo.EstateSettings.AddEstateManager(m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "AddEstateAccess".ToLower())
            {
                scene.RegionInfo.EstateSettings.AddEstateUser(m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "RemoveEstateBan".ToLower())
            {
                scene.RegionInfo.EstateSettings.RemoveBan(m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "RemoveEstateManager".ToLower())
            {
                scene.RegionInfo.EstateSettings.RemoveEstateManager(m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            if (cmdparams[2] == "RemoveEstateAccess".ToLower())
            {
                scene.RegionInfo.EstateSettings.RemoveEstateUser(m_scenes[0].UserAccountService.GetUserAccount(UUID.Zero, cmdparams[3], cmdparams[4]).PrincipalID);
            }
            #endregion
            scene.RegionInfo.RegionSettings.Save();
            scene.RegionInfo.EstateSettings.Save();
        }
Ejemplo n.º 21
0
 public void AddBan(EstateBan ban)
 {
     if (ban == null)
         return;
     if (!IsBanned(ban.BannedUserID))
         l_EstateBans.Add(ban);
 }