disable parcels access control if disabled at estate ( not that estate flag is still named TAXFREE

master
UbitUmarov 2020-01-11 14:11:46 +00:00
parent d92ef598c5
commit ea7dd150b1
2 changed files with 35 additions and 21 deletions

View File

@ -529,7 +529,7 @@ namespace OpenSim.Region.CoreModules.World.Land
if (avatar.IsChildAgent) if (avatar.IsChildAgent)
return; return;
if ( m_allowedForcefulBans && m_showBansLines) if ( m_allowedForcefulBans && m_showBansLines && m_scene.RegionInfo.EstateSettings.TaxFree)
SendOutNearestBanLine(avatar.ControllingClient); SendOutNearestBanLine(avatar.ControllingClient);
} }
@ -579,8 +579,11 @@ namespace OpenSim.Region.CoreModules.World.Land
if(ldata.PassHours == 0) if(ldata.PassHours == 0)
return; return;
if (!m_scene.RegionInfo.EstateSettings.TaxFree)
return;
// don't allow passes on group owned until we can give money to groups // don't allow passes on group owned until we can give money to groups
if(ldata.IsGroupOwned) if (ldata.IsGroupOwned)
{ {
remote_client.SendAgentAlertMessage("pass to group owned parcel not suported", false); remote_client.SendAgentAlertMessage("pass to group owned parcel not suported", false);
return; return;
@ -691,6 +694,9 @@ namespace OpenSim.Region.CoreModules.World.Land
if ((flags & 0x03) == 0) if ((flags & 0x03) == 0)
return; // we only have access and ban return; // we only have access and ban
if(!m_scene.RegionInfo.EstateSettings.TaxFree)
return;
ILandObject land; ILandObject land;
lock (m_landList) lock (m_landList)
{ {

View File

@ -541,28 +541,30 @@ namespace OpenSim.Region.CoreModules.World.Land
ParcelFlags.UseEstateVoiceChan); ParcelFlags.UseEstateVoiceChan);
} }
// don't allow passes on group owned until we can give money to groups if(m_scene.RegionInfo.EstateSettings.TaxFree)
if (!newData.IsGroupOwned && m_scene.Permissions.CanEditParcelProperties(remote_client.AgentId,this, GroupPowers.LandManagePasses, false))
{ {
newData.PassHours = args.PassHours; // don't allow passes on group owned until we can give money to groups
newData.PassPrice = args.PassPrice; if (!newData.IsGroupOwned && m_scene.Permissions.CanEditParcelProperties(remote_client.AgentId,this, GroupPowers.LandManagePasses, false))
{
newData.PassHours = args.PassHours;
newData.PassPrice = args.PassPrice;
allowedDelta |= (uint)ParcelFlags.UsePassList; allowedDelta |= (uint)ParcelFlags.UsePassList;
}
if (m_scene.Permissions.CanEditParcelProperties(remote_client.AgentId, this, GroupPowers.LandManageAllowed, false))
{
allowedDelta |= (uint)(ParcelFlags.UseAccessGroup |
ParcelFlags.UseAccessList);
}
if (m_scene.Permissions.CanEditParcelProperties(remote_client.AgentId, this, GroupPowers.LandManageBanned, false))
{
allowedDelta |= (uint)(ParcelFlags.UseBanList |
ParcelFlags.DenyAnonymous |
ParcelFlags.DenyAgeUnverified);
}
} }
if (m_scene.Permissions.CanEditParcelProperties(remote_client.AgentId, this, GroupPowers.LandManageAllowed, false))
{
allowedDelta |= (uint)(ParcelFlags.UseAccessGroup |
ParcelFlags.UseAccessList);
}
if (m_scene.Permissions.CanEditParcelProperties(remote_client.AgentId, this, GroupPowers.LandManageBanned, false))
{
allowedDelta |= (uint)(ParcelFlags.UseBanList |
ParcelFlags.DenyAnonymous |
ParcelFlags.DenyAgeUnverified);
}
if (allowedDelta != (uint)ParcelFlags.None) if (allowedDelta != (uint)ParcelFlags.None)
{ {
uint preserve = LandData.Flags & ~allowedDelta; uint preserve = LandData.Flags & ~allowedDelta;
@ -691,6 +693,9 @@ namespace OpenSim.Region.CoreModules.World.Land
{ {
ExpireAccessList(); ExpireAccessList();
if (!m_scene.RegionInfo.EstateSettings.TaxFree) // region access control only
return false;
if (m_scene.Permissions.IsAdministrator(avatar)) if (m_scene.Permissions.IsAdministrator(avatar))
return false; return false;
@ -718,6 +723,9 @@ namespace OpenSim.Region.CoreModules.World.Land
public bool IsRestrictedFromLand(UUID avatar) public bool IsRestrictedFromLand(UUID avatar)
{ {
if (!m_scene.RegionInfo.EstateSettings.TaxFree) // estate access only
return false;
if ((LandData.Flags & (uint) ParcelFlags.UseAccessList) == 0) if ((LandData.Flags & (uint) ParcelFlags.UseAccessList) == 0)
return false; return false;