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); } } } } }
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); } } } }
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); } }
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); } } }
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(); }
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); }
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(); }
public void AddBan(EstateBan ban) { if (ban == null) { return; } if (!IsBanned(ban.BannedUserID)) { l_EstateBans.Add(ban); } }
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 } }
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); }
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); } }
/// <summary> /// remove an entry from the region banlist /// </summary> /// <param name="item"></param> public void RemoveFromRegionBanlist(EstateBan item) { }
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); }
/// <summary> /// Add en entry into region banlist /// </summary> /// <param name="item"></param> public void AddToRegionBanlist(EstateBan item) { }
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; }
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(); }
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); } }
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; } }
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(); }
public void AddBan(EstateBan ban) { if (ban == null) return; if (!IsBanned(ban.BannedUserID)) l_EstateBans.Add(ban); }