* 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!GenericGridServerConcept
parent
7a649a758d
commit
1cadad9ec6
|
@ -332,9 +332,9 @@ namespace OpenSim.Data.MSSQL
|
||||||
// UUID uuid;
|
// UUID uuid;
|
||||||
// UUID.TryParse(reader["bannedUUID"].ToString(), out uuid);
|
// UUID.TryParse(reader["bannedUUID"].ToString(), out uuid);
|
||||||
|
|
||||||
eb.bannedUUID = new UUID((Guid)reader["bannedUUID"]); //uuid;
|
eb.BannedUserID = new UUID((Guid)reader["bannedUUID"]); //uuid;
|
||||||
eb.bannedIP = "0.0.0.0";
|
eb.BannedHostAddress = "0.0.0.0";
|
||||||
eb.bannedIPHostMask = "0.0.0.0";
|
eb.BannedHostIPMask = "0.0.0.0";
|
||||||
es.AddBan(eb);
|
es.AddBan(eb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -386,7 +386,7 @@ namespace OpenSim.Data.MSSQL
|
||||||
{
|
{
|
||||||
cmd.Parameters.Add(_Database.CreateParameter("@EstateID", es.EstateID));
|
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();
|
cmd.ExecuteNonQuery();
|
||||||
|
|
||||||
|
|
|
@ -314,9 +314,9 @@ namespace OpenSim.Data.MySQL
|
||||||
UUID uuid = new UUID();
|
UUID uuid = new UUID();
|
||||||
UUID.TryParse(r["bannedUUID"].ToString(), out uuid);
|
UUID.TryParse(r["bannedUUID"].ToString(), out uuid);
|
||||||
|
|
||||||
eb.bannedUUID = uuid;
|
eb.BannedUserID = uuid;
|
||||||
eb.bannedIP = "0.0.0.0";
|
eb.BannedHostAddress = "0.0.0.0";
|
||||||
eb.bannedIPHostMask = "0.0.0.0";
|
eb.BannedHostIPMask = "0.0.0.0";
|
||||||
es.AddBan(eb);
|
es.AddBan(eb);
|
||||||
}
|
}
|
||||||
r.Close();
|
r.Close();
|
||||||
|
@ -340,7 +340,7 @@ namespace OpenSim.Data.MySQL
|
||||||
foreach (EstateBan b in es.EstateBans)
|
foreach (EstateBan b in es.EstateBans)
|
||||||
{
|
{
|
||||||
cmd.Parameters.AddWithValue("?EstateID", es.EstateID.ToString());
|
cmd.Parameters.AddWithValue("?EstateID", es.EstateID.ToString());
|
||||||
cmd.Parameters.AddWithValue("?bannedUUID", b.bannedUUID.ToString());
|
cmd.Parameters.AddWithValue("?bannedUUID", b.BannedUserID.ToString());
|
||||||
|
|
||||||
cmd.ExecuteNonQuery();
|
cmd.ExecuteNonQuery();
|
||||||
cmd.Parameters.Clear();
|
cmd.Parameters.Clear();
|
||||||
|
|
|
@ -52,6 +52,17 @@
|
||||||
<index column="ArrayIndex" />
|
<index column="ArrayIndex" />
|
||||||
<element column="GroupID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
<element column="GroupID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" />
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
|
<array name="EstateBans" table="EstateBans" cascade="all">
|
||||||
|
<key column="EstateID" />
|
||||||
|
<index column="ArrayIndex" />
|
||||||
|
<composite-element class="OpenSim.Framework.EstateBan, OpenSim.Framework">
|
||||||
|
<property name="BannedUserID" column="BannedUserID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate"/>
|
||||||
|
<property name="BannedHostAddress" column="BannedHostAddress" type="String" length="16"/>
|
||||||
|
<property name="BannedHostIPMask" column="BannedHostIPMask" type="String" length="16"/>
|
||||||
|
<property name="BannedHostNameMask" column="BannedHostNameMask" type="String" length="16"/>
|
||||||
|
</composite-element>
|
||||||
|
</array>
|
||||||
|
|
||||||
</class>
|
</class>
|
||||||
</hibernate-mapping>
|
</hibernate-mapping>
|
||||||
|
|
|
@ -59,4 +59,14 @@ CREATE TABLE EstateGroups (
|
||||||
GroupID NVARCHAR(36) NOT NULL,
|
GroupID NVARCHAR(36) NOT NULL,
|
||||||
ArrayIndex INT NOT NULL,
|
ArrayIndex INT NOT NULL,
|
||||||
PRIMARY KEY (EstateID,ArrayIndex)
|
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)
|
||||||
);
|
);
|
|
@ -60,3 +60,12 @@ CREATE TABLE EstateGroups (
|
||||||
PRIMARY KEY (EstateID,ArrayIndex)
|
PRIMARY KEY (EstateID,ArrayIndex)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 1';
|
) 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';
|
||||||
|
|
|
@ -59,4 +59,14 @@ CREATE TABLE EstateGroups (
|
||||||
GroupID VARCHAR(36) NOT NULL,
|
GroupID VARCHAR(36) NOT NULL,
|
||||||
ArrayIndex INT NOT NULL,
|
ArrayIndex INT NOT NULL,
|
||||||
PRIMARY KEY (EstateID,ArrayIndex)
|
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)
|
||||||
);
|
);
|
|
@ -59,3 +59,13 @@ CREATE TABLE EstateGroups (
|
||||||
ArrayIndex INT NOT NULL,
|
ArrayIndex INT NOT NULL,
|
||||||
PRIMARY KEY (EstateID,ArrayIndex)
|
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)
|
||||||
|
);
|
||||||
|
|
|
@ -258,9 +258,9 @@ namespace OpenSim.Data.SQLite
|
||||||
UUID uuid = new UUID();
|
UUID uuid = new UUID();
|
||||||
UUID.TryParse(r["bannedUUID"].ToString(), out uuid);
|
UUID.TryParse(r["bannedUUID"].ToString(), out uuid);
|
||||||
|
|
||||||
eb.bannedUUID = uuid;
|
eb.BannedUserID = uuid;
|
||||||
eb.bannedIP = "0.0.0.0";
|
eb.BannedHostAddress = "0.0.0.0";
|
||||||
eb.bannedIPHostMask = "0.0.0.0";
|
eb.BannedHostIPMask = "0.0.0.0";
|
||||||
es.AddBan(eb);
|
es.AddBan(eb);
|
||||||
}
|
}
|
||||||
r.Close();
|
r.Close();
|
||||||
|
@ -282,7 +282,7 @@ namespace OpenSim.Data.SQLite
|
||||||
foreach (EstateBan b in es.EstateBans)
|
foreach (EstateBan b in es.EstateBans)
|
||||||
{
|
{
|
||||||
cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
|
cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
|
||||||
cmd.Parameters.Add(":bannedUUID", b.bannedUUID.ToString());
|
cmd.Parameters.Add(":bannedUUID", b.BannedUserID.ToString());
|
||||||
|
|
||||||
cmd.ExecuteNonQuery();
|
cmd.ExecuteNonQuery();
|
||||||
cmd.Parameters.Clear();
|
cmd.Parameters.Clear();
|
||||||
|
|
|
@ -223,10 +223,10 @@ namespace OpenSim.Data.Tests
|
||||||
EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID);
|
EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID);
|
||||||
|
|
||||||
EstateBan estateBan1 = new EstateBan();
|
EstateBan estateBan1 = new EstateBan();
|
||||||
estateBan1.bannedUUID = DataTestUtil.UUID_MIN;
|
estateBan1.BannedUserID = DataTestUtil.UUID_MIN;
|
||||||
|
|
||||||
EstateBan estateBan2 = new EstateBan();
|
EstateBan estateBan2 = new EstateBan();
|
||||||
estateBan2.bannedUUID = DataTestUtil.UUID_MAX;
|
estateBan2.BannedUserID = DataTestUtil.UUID_MAX;
|
||||||
|
|
||||||
originalSettings.EstateBans = new EstateBan[] { estateBan1, estateBan2 };
|
originalSettings.EstateBans = new EstateBan[] { estateBan1, estateBan2 };
|
||||||
|
|
||||||
|
@ -237,9 +237,9 @@ namespace OpenSim.Data.Tests
|
||||||
EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID);
|
EstateSettings loadedSettings = db.LoadEstateSettings(REGION_ID);
|
||||||
|
|
||||||
Assert.AreEqual(2, loadedSettings.EstateBans.Length);
|
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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,10 +31,85 @@ namespace OpenSim.Framework
|
||||||
{
|
{
|
||||||
public class EstateBan
|
public class EstateBan
|
||||||
{
|
{
|
||||||
public uint estateID = 1;
|
private uint m_estateID = 1;
|
||||||
public UUID bannedUUID = UUID.Zero;
|
/// <summary>
|
||||||
public string bannedIP = string.Empty;
|
/// ID of the estate this ban limits access to.
|
||||||
public string bannedIPHostMask = string.Empty;
|
/// </summary>
|
||||||
public string bannedNameMask = string.Empty;
|
public uint EstateID
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return m_estateID;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
m_estateID = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private UUID m_bannedUserID = UUID.Zero;
|
||||||
|
/// <summary>
|
||||||
|
/// ID of the banned user.
|
||||||
|
/// </summary>
|
||||||
|
public UUID BannedUserID
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return m_bannedUserID;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
m_bannedUserID = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string m_bannedHostAddress = string.Empty;
|
||||||
|
/// <summary>
|
||||||
|
/// IP address or domain name of the banned client.
|
||||||
|
/// </summary>
|
||||||
|
public string BannedHostAddress
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return m_bannedHostAddress;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
m_bannedHostAddress = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string m_bannedHostIPMask = string.Empty;
|
||||||
|
/// <summary>
|
||||||
|
/// IP address mask for banning group of client hosts.
|
||||||
|
/// </summary>
|
||||||
|
public string BannedHostIPMask
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return m_bannedHostIPMask;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
m_bannedHostIPMask = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string m_bannedHostNameMask = string.Empty;
|
||||||
|
/// <summary>
|
||||||
|
/// Domain name mask for banning group of client hosts.
|
||||||
|
/// </summary>
|
||||||
|
public string BannedHostNameMask
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return m_bannedHostNameMask;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
m_bannedHostNameMask = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -333,7 +333,7 @@ namespace OpenSim.Framework
|
||||||
public bool IsBanned(UUID avatarID)
|
public bool IsBanned(UUID avatarID)
|
||||||
{
|
{
|
||||||
foreach (EstateBan ban in l_EstateBans)
|
foreach (EstateBan ban in l_EstateBans)
|
||||||
if (ban.bannedUUID == avatarID)
|
if (ban.BannedUserID == avatarID)
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -342,7 +342,7 @@ namespace OpenSim.Framework
|
||||||
{
|
{
|
||||||
if (ban == null)
|
if (ban == null)
|
||||||
return;
|
return;
|
||||||
if (!IsBanned(ban.bannedUUID))
|
if (!IsBanned(ban.BannedUserID))
|
||||||
l_EstateBans.Add(ban);
|
l_EstateBans.Add(ban);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -354,7 +354,7 @@ namespace OpenSim.Framework
|
||||||
public void RemoveBan(UUID avatarID)
|
public void RemoveBan(UUID avatarID)
|
||||||
{
|
{
|
||||||
foreach (EstateBan ban in new List<EstateBan>(l_EstateBans))
|
foreach (EstateBan ban in new List<EstateBan>(l_EstateBans))
|
||||||
if (ban.bannedUUID == avatarID)
|
if (ban.BannedUserID == avatarID)
|
||||||
l_EstateBans.Remove(ban);
|
l_EstateBans.Remove(ban);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2992,9 +2992,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
{
|
{
|
||||||
if (bl[i] == null)
|
if (bl[i] == null)
|
||||||
continue;
|
continue;
|
||||||
if (bl[i].bannedUUID == UUID.Zero)
|
if (bl[i].BannedUserID == UUID.Zero)
|
||||||
continue;
|
continue;
|
||||||
BannedUsers.Add(bl[i].bannedUUID);
|
BannedUsers.Add(bl[i].BannedUserID);
|
||||||
}
|
}
|
||||||
|
|
||||||
EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket();
|
EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket();
|
||||||
|
|
|
@ -241,7 +241,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
|
|
||||||
for (int i = 0; i < banlistcheck.Length; i++)
|
for (int i = 0; i < banlistcheck.Length; i++)
|
||||||
{
|
{
|
||||||
if (user == banlistcheck[i].bannedUUID)
|
if (user == banlistcheck[i].BannedUserID)
|
||||||
{
|
{
|
||||||
alreadyInList = true;
|
alreadyInList = true;
|
||||||
break;
|
break;
|
||||||
|
@ -253,10 +253,10 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
|
|
||||||
EstateBan item = new EstateBan();
|
EstateBan item = new EstateBan();
|
||||||
|
|
||||||
item.bannedUUID = user;
|
item.BannedUserID = user;
|
||||||
item.estateID = m_scene.RegionInfo.EstateSettings.EstateID;
|
item.EstateID = m_scene.RegionInfo.EstateSettings.EstateID;
|
||||||
item.bannedIP = "0.0.0.0";
|
item.BannedHostAddress = "0.0.0.0";
|
||||||
item.bannedIPHostMask = "0.0.0.0";
|
item.BannedHostIPMask = "0.0.0.0";
|
||||||
|
|
||||||
m_scene.RegionInfo.EstateSettings.AddBan(item);
|
m_scene.RegionInfo.EstateSettings.AddBan(item);
|
||||||
m_scene.RegionInfo.EstateSettings.Save();
|
m_scene.RegionInfo.EstateSettings.Save();
|
||||||
|
@ -294,7 +294,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
|
|
||||||
for (int i = 0; i < banlistcheck.Length; i++)
|
for (int i = 0; i < banlistcheck.Length; i++)
|
||||||
{
|
{
|
||||||
if (user == banlistcheck[i].bannedUUID)
|
if (user == banlistcheck[i].BannedUserID)
|
||||||
{
|
{
|
||||||
alreadyInList = true;
|
alreadyInList = true;
|
||||||
listitem = banlistcheck[i];
|
listitem = banlistcheck[i];
|
||||||
|
@ -304,7 +304,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
}
|
}
|
||||||
if (alreadyInList && listitem != null)
|
if (alreadyInList && listitem != null)
|
||||||
{
|
{
|
||||||
m_scene.RegionInfo.EstateSettings.RemoveBan(listitem.bannedUUID);
|
m_scene.RegionInfo.EstateSettings.RemoveBan(listitem.BannedUserID);
|
||||||
m_scene.RegionInfo.EstateSettings.Save();
|
m_scene.RegionInfo.EstateSettings.Save();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue