Adjust permissions to work hand in hand with what the viewer believes they are.

This fixes the issue of "Show in Search" seeming resetting at random.
This commit is contained in:
Melanie
2014-04-25 00:34:44 +01:00
parent cf54df3ecf
commit 2572ed9ed9

View File

@@ -901,7 +901,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
return permission;
}
protected bool GenericParcelOwnerPermission(UUID user, ILandObject parcel, ulong groupPowers)
protected bool GenericParcelOwnerPermission(UUID user, ILandObject parcel, ulong groupPowers, bool allowEstateManager)
{
if (parcel.LandData.OwnerID == user)
{
@@ -916,7 +916,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
return true;
}
if (IsEstateManager(user))
if (allowEstateManager && IsEstateManager(user))
{
return true;
}
@@ -943,7 +943,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandRelease);
return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandRelease, false);
}
private bool CanReclaimParcel(UUID user, ILandObject parcel, Scene scene)
@@ -951,7 +951,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
return GenericParcelOwnerPermission(user, parcel, 0);
return GenericParcelOwnerPermission(user, parcel, 0,true);
}
private bool CanDeedParcel(UUID user, ILandObject parcel, Scene scene)
@@ -968,7 +968,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
if ((client.GetGroupPowers(parcel.LandData.GroupID) & (ulong)GroupPowers.LandDeed) == 0)
return false;
return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandDeed);
return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandDeed, false);
}
private bool CanDeedObject(UUID user, UUID group, Scene scene)
@@ -1055,7 +1055,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
return GenericParcelOwnerPermission(user, parcel, (ulong)p);
return GenericParcelOwnerPermission(user, parcel, (ulong)p, false);
}
/// <summary>
@@ -1501,7 +1501,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandSetSale);
return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandSetSale, false);
}
private bool CanTakeObject(UUID objectID, UUID stealer, Scene scene)