diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index c1056d565c..68258d80ff 100755 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs @@ -529,7 +529,7 @@ namespace OpenSim.Region.CoreModules.World.Land if (avatar.IsChildAgent) return; - if ( m_allowedForcefulBans && m_showBansLines) + if ( m_allowedForcefulBans && m_showBansLines && m_scene.RegionInfo.EstateSettings.TaxFree) SendOutNearestBanLine(avatar.ControllingClient); } @@ -579,8 +579,11 @@ namespace OpenSim.Region.CoreModules.World.Land if(ldata.PassHours == 0) return; + if (!m_scene.RegionInfo.EstateSettings.TaxFree) + return; + // 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); return; @@ -691,6 +694,9 @@ namespace OpenSim.Region.CoreModules.World.Land if ((flags & 0x03) == 0) return; // we only have access and ban + if(!m_scene.RegionInfo.EstateSettings.TaxFree) + return; + ILandObject land; lock (m_landList) { diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs index 9111d28bc0..3063acba2d 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs @@ -541,28 +541,30 @@ namespace OpenSim.Region.CoreModules.World.Land ParcelFlags.UseEstateVoiceChan); } - // don't allow passes on group owned until we can give money to groups - if (!newData.IsGroupOwned && m_scene.Permissions.CanEditParcelProperties(remote_client.AgentId,this, GroupPowers.LandManagePasses, false)) + if(m_scene.RegionInfo.EstateSettings.TaxFree) { - newData.PassHours = args.PassHours; - newData.PassPrice = args.PassPrice; + // don't allow passes on group owned until we can give money to groups + 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) { uint preserve = LandData.Flags & ~allowedDelta; @@ -691,6 +693,9 @@ namespace OpenSim.Region.CoreModules.World.Land { ExpireAccessList(); + if (!m_scene.RegionInfo.EstateSettings.TaxFree) // region access control only + return false; + if (m_scene.Permissions.IsAdministrator(avatar)) return false; @@ -718,6 +723,9 @@ namespace OpenSim.Region.CoreModules.World.Land public bool IsRestrictedFromLand(UUID avatar) { + if (!m_scene.RegionInfo.EstateSettings.TaxFree) // estate access only + return false; + if ((LandData.Flags & (uint) ParcelFlags.UseAccessList) == 0) return false;