From 1cadad9ec62c54fe8ebde8a895817bd980fed975 Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Sat, 21 Feb 2009 09:39:33 +0000
Subject: * Applied a patch that: Added estate ban table to migration scripts
and nhibernate mapping. Refactored property getters and setters for estate
ban object to support NHibernate. * Added estate ban table to migration
scripts of all supported databases. * Added nhibernate mapping for EstateBans
property of EstateSettings * Refactored property accessors for EstateBan
object. * Added comments for EstateBan properties. * Ensured that NHibernate
tests pass with NUnitGUI. * Ensured that nant test target passes.
This fixes mantis #3210. Thank you, tlaukkan!
---
OpenSim/Data/MSSQL/MSSQLEstateData.cs | 8 +-
OpenSim/Data/MySQL/MySQLEstateData.cs | 8 +-
.../NHibernate/Resources/EstateSettings.hbm.xml | 11 +++
.../Resources/MsSql2005Dialect/001_EstateStore.sql | 10 +++
.../Resources/MySQLDialect/001_EstateStore.sql | 9 +++
.../PostgreSQLDialect/001_EstateStore.sql | 10 +++
.../Resources/SQLiteDialect/001_EstateStore.sql | 10 +++
OpenSim/Data/SQLite/SQLiteEstateData.cs | 8 +-
OpenSim/Data/Tests/BasicEstateTest.cs | 8 +-
OpenSim/Framework/EstateBan.cs | 85 ++++++++++++++++++++--
OpenSim/Framework/EstateSettings.cs | 6 +-
.../Region/ClientStack/LindenUDP/LLClientView.cs | 4 +-
.../World/Estate/EstateManagementModule.cs | 14 ++--
13 files changed, 158 insertions(+), 33 deletions(-)
(limited to 'OpenSim')
diff --git a/OpenSim/Data/MSSQL/MSSQLEstateData.cs b/OpenSim/Data/MSSQL/MSSQLEstateData.cs
index 4d5c116..3002fe3 100644
--- a/OpenSim/Data/MSSQL/MSSQLEstateData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLEstateData.cs
@@ -332,9 +332,9 @@ namespace OpenSim.Data.MSSQL
// UUID uuid;
// UUID.TryParse(reader["bannedUUID"].ToString(), out uuid);
- eb.bannedUUID = new UUID((Guid)reader["bannedUUID"]); //uuid;
- eb.bannedIP = "0.0.0.0";
- eb.bannedIPHostMask = "0.0.0.0";
+ eb.BannedUserID = new UUID((Guid)reader["bannedUUID"]); //uuid;
+ eb.BannedHostAddress = "0.0.0.0";
+ eb.BannedHostIPMask = "0.0.0.0";
es.AddBan(eb);
}
}
@@ -386,7 +386,7 @@ namespace OpenSim.Data.MSSQL
{
cmd.Parameters.Add(_Database.CreateParameter("@EstateID", es.EstateID));
- cmd.Parameters.Add(_Database.CreateParameter("@bannedUUID", b.bannedUUID));
+ cmd.Parameters.Add(_Database.CreateParameter("@bannedUUID", b.BannedUserID));
cmd.ExecuteNonQuery();
diff --git a/OpenSim/Data/MySQL/MySQLEstateData.cs b/OpenSim/Data/MySQL/MySQLEstateData.cs
index 0db624d..133ee7a 100644
--- a/OpenSim/Data/MySQL/MySQLEstateData.cs
+++ b/OpenSim/Data/MySQL/MySQLEstateData.cs
@@ -314,9 +314,9 @@ namespace OpenSim.Data.MySQL
UUID uuid = new UUID();
UUID.TryParse(r["bannedUUID"].ToString(), out uuid);
- eb.bannedUUID = uuid;
- eb.bannedIP = "0.0.0.0";
- eb.bannedIPHostMask = "0.0.0.0";
+ eb.BannedUserID = uuid;
+ eb.BannedHostAddress = "0.0.0.0";
+ eb.BannedHostIPMask = "0.0.0.0";
es.AddBan(eb);
}
r.Close();
@@ -340,7 +340,7 @@ namespace OpenSim.Data.MySQL
foreach (EstateBan b in es.EstateBans)
{
cmd.Parameters.AddWithValue("?EstateID", es.EstateID.ToString());
- cmd.Parameters.AddWithValue("?bannedUUID", b.bannedUUID.ToString());
+ cmd.Parameters.AddWithValue("?bannedUUID", b.BannedUserID.ToString());
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
diff --git a/OpenSim/Data/NHibernate/Resources/EstateSettings.hbm.xml b/OpenSim/Data/NHibernate/Resources/EstateSettings.hbm.xml
index d8c8975..d300b93 100644
--- a/OpenSim/Data/NHibernate/Resources/EstateSettings.hbm.xml
+++ b/OpenSim/Data/NHibernate/Resources/EstateSettings.hbm.xml
@@ -52,6 +52,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_EstateStore.sql b/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_EstateStore.sql
index b852cbc..dd579f9 100644
--- a/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_EstateStore.sql
+++ b/OpenSim/Data/NHibernate/Resources/MsSql2005Dialect/001_EstateStore.sql
@@ -59,4 +59,14 @@ CREATE TABLE EstateGroups (
GroupID NVARCHAR(36) NOT NULL,
ArrayIndex INT NOT NULL,
PRIMARY KEY (EstateID,ArrayIndex)
+);
+
+CREATE TABLE EstateBans (
+ EstateID INT NOT NULL,
+ ArrayIndex INT NOT NULL,
+ BannedUserID NVARCHAR(36) NOT NULL,
+ BannedHostAddress NVARCHAR(16) NOT NULL,
+ BannedHostIPMask NVARCHAR(16) NOT NULL,
+ BannedHostNameMask NVARCHAR(16) NOT NULL,
+ PRIMARY KEY (EstateID,ArrayIndex)
);
\ No newline at end of file
diff --git a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql
index 69635d8..e9ae07e 100644
--- a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql
+++ b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_EstateStore.sql
@@ -60,3 +60,12 @@ CREATE TABLE EstateGroups (
PRIMARY KEY (EstateID,ArrayIndex)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1';
+CREATE TABLE EstateBans (
+ EstateID INT NOT NULL,
+ ArrayIndex INT NOT NULL,
+ BannedUserID VARCHAR(36) NOT NULL,
+ BannedHostAddress VARCHAR(16) NOT NULL,
+ BannedHostIPMask VARCHAR(16) NOT NULL,
+ BannedHostNameMask VARCHAR(16) NOT NULL,
+ PRIMARY KEY (EstateID,ArrayIndex)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1';
diff --git a/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_EstateStore.sql b/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_EstateStore.sql
index d13a4d3..3f47930 100644
--- a/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_EstateStore.sql
+++ b/OpenSim/Data/NHibernate/Resources/PostgreSQLDialect/001_EstateStore.sql
@@ -59,4 +59,14 @@ CREATE TABLE EstateGroups (
GroupID VARCHAR(36) NOT NULL,
ArrayIndex INT NOT NULL,
PRIMARY KEY (EstateID,ArrayIndex)
+);
+
+CREATE TABLE EstateBans (
+ EstateID INT NOT NULL,
+ ArrayIndex INT NOT NULL,
+ BannedUserID VARCHAR(36) NOT NULL,
+ BannedHostAddress VARCHAR(16) NOT NULL,
+ BannedHostIPMask VARCHAR(16) NOT NULL,
+ BannedHostNameMask VARCHAR(16) NOT NULL,
+ PRIMARY KEY (EstateID,ArrayIndex)
);
\ No newline at end of file
diff --git a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_EstateStore.sql b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_EstateStore.sql
index 6e67630..afe702f 100644
--- a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_EstateStore.sql
+++ b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_EstateStore.sql
@@ -59,3 +59,13 @@ CREATE TABLE EstateGroups (
ArrayIndex INT NOT NULL,
PRIMARY KEY (EstateID,ArrayIndex)
);
+
+CREATE TABLE EstateBans (
+ EstateID INT NOT NULL,
+ ArrayIndex INT NOT NULL,
+ BannedUserID VARCHAR(36) NOT NULL,
+ BannedHostAddress VARCHAR(16) NOT NULL,
+ BannedHostIPMask VARCHAR(16) NOT NULL,
+ BannedHostNameMask VARCHAR(16) NOT NULL,
+ PRIMARY KEY (EstateID,ArrayIndex)
+);
diff --git a/OpenSim/Data/SQLite/SQLiteEstateData.cs b/OpenSim/Data/SQLite/SQLiteEstateData.cs
index 3fb33c2..dea5624 100644
--- a/OpenSim/Data/SQLite/SQLiteEstateData.cs
+++ b/OpenSim/Data/SQLite/SQLiteEstateData.cs
@@ -258,9 +258,9 @@ namespace OpenSim.Data.SQLite
UUID uuid = new UUID();
UUID.TryParse(r["bannedUUID"].ToString(), out uuid);
- eb.bannedUUID = uuid;
- eb.bannedIP = "0.0.0.0";
- eb.bannedIPHostMask = "0.0.0.0";
+ eb.BannedUserID = uuid;
+ eb.BannedHostAddress = "0.0.0.0";
+ eb.BannedHostIPMask = "0.0.0.0";
es.AddBan(eb);
}
r.Close();
@@ -282,7 +282,7 @@ namespace OpenSim.Data.SQLite
foreach (EstateBan b in es.EstateBans)
{
cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
- cmd.Parameters.Add(":bannedUUID", b.bannedUUID.ToString());
+ cmd.Parameters.Add(":bannedUUID", b.BannedUserID.ToString());
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
diff --git a/OpenSim/Data/Tests/BasicEstateTest.cs b/OpenSim/Data/Tests/BasicEstateTest.cs
index b37a392..f94ac46 100644
--- a/OpenSim/Data/Tests/BasicEstateTest.cs
+++ b/OpenSim/Data/Tests/BasicEstateTest.cs
@@ -223,10 +223,10 @@ namespace OpenSim.Data.Tests
EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID);
EstateBan estateBan1 = new EstateBan();
- estateBan1.bannedUUID = DataTestUtil.UUID_MIN;
+ estateBan1.BannedUserID = DataTestUtil.UUID_MIN;
EstateBan estateBan2 = new EstateBan();
- estateBan2.bannedUUID = DataTestUtil.UUID_MAX;
+ estateBan2.BannedUserID = DataTestUtil.UUID_MAX;
originalSettings.EstateBans = new EstateBan[] { estateBan1, estateBan2 };
@@ -237,9 +237,9 @@ namespace OpenSim.Data.Tests
EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID);
Assert.AreEqual(2, loadedSettings.EstateBans.Length);
- Assert.AreEqual(DataTestUtil.UUID_MIN, loadedSettings.EstateBans[0].bannedUUID);
+ Assert.AreEqual(DataTestUtil.UUID_MIN, loadedSettings.EstateBans[0].BannedUserID);
- Assert.AreEqual(DataTestUtil.UUID_MAX, loadedSettings.EstateBans[1].bannedUUID);
+ Assert.AreEqual(DataTestUtil.UUID_MAX, loadedSettings.EstateBans[1].BannedUserID);
}
diff --git a/OpenSim/Framework/EstateBan.cs b/OpenSim/Framework/EstateBan.cs
index 5c3aa42..64d32e8 100644
--- a/OpenSim/Framework/EstateBan.cs
+++ b/OpenSim/Framework/EstateBan.cs
@@ -31,10 +31,85 @@ namespace OpenSim.Framework
{
public class EstateBan
{
- public uint estateID = 1;
- public UUID bannedUUID = UUID.Zero;
- public string bannedIP = string.Empty;
- public string bannedIPHostMask = string.Empty;
- public string bannedNameMask = string.Empty;
+ private uint m_estateID = 1;
+ ///
+ /// ID of the estate this ban limits access to.
+ ///
+ public uint EstateID
+ {
+ get
+ {
+ return m_estateID;
+ }
+ set
+ {
+ m_estateID = value;
+ }
+ }
+
+ private UUID m_bannedUserID = UUID.Zero;
+ ///
+ /// ID of the banned user.
+ ///
+ public UUID BannedUserID
+ {
+ get
+ {
+ return m_bannedUserID;
+ }
+ set
+ {
+ m_bannedUserID = value;
+ }
+ }
+
+ private string m_bannedHostAddress = string.Empty;
+ ///
+ /// IP address or domain name of the banned client.
+ ///
+ public string BannedHostAddress
+ {
+ get
+ {
+ return m_bannedHostAddress;
+ }
+ set
+ {
+ m_bannedHostAddress = value;
+ }
+ }
+
+ private string m_bannedHostIPMask = string.Empty;
+ ///
+ /// IP address mask for banning group of client hosts.
+ ///
+ public string BannedHostIPMask
+ {
+ get
+ {
+ return m_bannedHostIPMask;
+ }
+ set
+ {
+ m_bannedHostIPMask = value;
+ }
+ }
+
+ private string m_bannedHostNameMask = string.Empty;
+ ///
+ /// Domain name mask for banning group of client hosts.
+ ///
+ public string BannedHostNameMask
+ {
+ get
+ {
+ return m_bannedHostNameMask;
+ }
+ set
+ {
+ m_bannedHostNameMask = value;
+ }
+ }
+
}
}
diff --git a/OpenSim/Framework/EstateSettings.cs b/OpenSim/Framework/EstateSettings.cs
index 81f85cd..b84d1d7 100644
--- a/OpenSim/Framework/EstateSettings.cs
+++ b/OpenSim/Framework/EstateSettings.cs
@@ -333,7 +333,7 @@ namespace OpenSim.Framework
public bool IsBanned(UUID avatarID)
{
foreach (EstateBan ban in l_EstateBans)
- if (ban.bannedUUID == avatarID)
+ if (ban.BannedUserID == avatarID)
return true;
return false;
}
@@ -342,7 +342,7 @@ namespace OpenSim.Framework
{
if (ban == null)
return;
- if (!IsBanned(ban.bannedUUID))
+ if (!IsBanned(ban.BannedUserID))
l_EstateBans.Add(ban);
}
@@ -354,7 +354,7 @@ namespace OpenSim.Framework
public void RemoveBan(UUID avatarID)
{
foreach (EstateBan ban in new List(l_EstateBans))
- if (ban.bannedUUID == avatarID)
+ if (ban.BannedUserID == avatarID)
l_EstateBans.Remove(ban);
}
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 34ad0f1..c715949 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -2992,9 +2992,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
if (bl[i] == null)
continue;
- if (bl[i].bannedUUID == UUID.Zero)
+ if (bl[i].BannedUserID == UUID.Zero)
continue;
- BannedUsers.Add(bl[i].bannedUUID);
+ BannedUsers.Add(bl[i].BannedUserID);
}
EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket();
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index b567047..7a200d4 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -241,7 +241,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
for (int i = 0; i < banlistcheck.Length; i++)
{
- if (user == banlistcheck[i].bannedUUID)
+ if (user == banlistcheck[i].BannedUserID)
{
alreadyInList = true;
break;
@@ -253,10 +253,10 @@ namespace OpenSim.Region.CoreModules.World.Estate
EstateBan item = new EstateBan();
- item.bannedUUID = user;
- item.estateID = m_scene.RegionInfo.EstateSettings.EstateID;
- item.bannedIP = "0.0.0.0";
- item.bannedIPHostMask = "0.0.0.0";
+ 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();
@@ -294,7 +294,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
for (int i = 0; i < banlistcheck.Length; i++)
{
- if (user == banlistcheck[i].bannedUUID)
+ if (user == banlistcheck[i].BannedUserID)
{
alreadyInList = true;
listitem = banlistcheck[i];
@@ -304,7 +304,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
}
if (alreadyInList && listitem != null)
{
- m_scene.RegionInfo.EstateSettings.RemoveBan(listitem.bannedUUID);
+ m_scene.RegionInfo.EstateSettings.RemoveBan(listitem.BannedUserID);
m_scene.RegionInfo.EstateSettings.Save();
}
else
--
cgit v1.1