Add permission mechanisms for group deeding land
parent
559355189a
commit
32ac388363
|
@ -128,6 +128,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
|
||||||
m_scene.Permissions.OnGenerateClientFlags += GenerateClientFlags;
|
m_scene.Permissions.OnGenerateClientFlags += GenerateClientFlags;
|
||||||
m_scene.Permissions.OnAbandonParcel += CanAbandonParcel;
|
m_scene.Permissions.OnAbandonParcel += CanAbandonParcel;
|
||||||
m_scene.Permissions.OnReclaimParcel += CanReclaimParcel;
|
m_scene.Permissions.OnReclaimParcel += CanReclaimParcel;
|
||||||
|
m_scene.Permissions.OnDeedParcel += CanDeedParcel;
|
||||||
m_scene.Permissions.OnIsGod += IsGod;
|
m_scene.Permissions.OnIsGod += IsGod;
|
||||||
m_scene.Permissions.OnDuplicateObject += CanDuplicateObject;
|
m_scene.Permissions.OnDuplicateObject += CanDuplicateObject;
|
||||||
m_scene.Permissions.OnDeleteObject += CanDeleteObject; //MAYBE FULLY IMPLEMENTED
|
m_scene.Permissions.OnDeleteObject += CanDeleteObject; //MAYBE FULLY IMPLEMENTED
|
||||||
|
@ -683,6 +684,23 @@ namespace OpenSim.Region.CoreModules.World.Permissions
|
||||||
return GenericParcelPermission(user, parcel);
|
return GenericParcelPermission(user, parcel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool CanDeedParcel(UUID user, ILandObject parcel, Scene scene)
|
||||||
|
{
|
||||||
|
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
|
||||||
|
if (m_bypassPermissions) return m_bypassPermissionsValue;
|
||||||
|
|
||||||
|
if (parcel.landData.OwnerID != user) // Only the owner can deed!
|
||||||
|
return false;
|
||||||
|
|
||||||
|
ScenePresence sp = scene.GetScenePresence(user);
|
||||||
|
IClientAPI client = sp.ControllingClient;
|
||||||
|
|
||||||
|
if ((client.GetGroupPowers(parcel.landData.GroupID) & (long)GroupPowers.LandDeed) == 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return GenericParcelPermission(user, parcel);
|
||||||
|
}
|
||||||
|
|
||||||
private bool IsGod(UUID user, Scene scene)
|
private bool IsGod(UUID user, Scene scene)
|
||||||
{
|
{
|
||||||
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
|
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
|
||||||
|
|
|
@ -67,6 +67,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
public delegate bool SellParcelHandler(UUID user, ILandObject parcel, Scene scene);
|
public delegate bool SellParcelHandler(UUID user, ILandObject parcel, Scene scene);
|
||||||
public delegate bool AbandonParcelHandler(UUID user, ILandObject parcel, Scene scene);
|
public delegate bool AbandonParcelHandler(UUID user, ILandObject parcel, Scene scene);
|
||||||
public delegate bool ReclaimParcelHandler(UUID user, ILandObject parcel, Scene scene);
|
public delegate bool ReclaimParcelHandler(UUID user, ILandObject parcel, Scene scene);
|
||||||
|
public delegate bool DeedParcelHandler(UUID user, ILandObject parcel, Scene scene);
|
||||||
public delegate bool BuyLandHandler(UUID user, ILandObject parcel, Scene scene);
|
public delegate bool BuyLandHandler(UUID user, ILandObject parcel, Scene scene);
|
||||||
public delegate bool LinkObjectHandler(UUID user, UUID objectID);
|
public delegate bool LinkObjectHandler(UUID user, UUID objectID);
|
||||||
public delegate bool DelinkObjectHandler(UUID user, UUID objectID);
|
public delegate bool DelinkObjectHandler(UUID user, UUID objectID);
|
||||||
|
@ -122,6 +123,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
public event SellParcelHandler OnSellParcel;
|
public event SellParcelHandler OnSellParcel;
|
||||||
public event AbandonParcelHandler OnAbandonParcel;
|
public event AbandonParcelHandler OnAbandonParcel;
|
||||||
public event ReclaimParcelHandler OnReclaimParcel;
|
public event ReclaimParcelHandler OnReclaimParcel;
|
||||||
|
public event DeedParcelHandler OnDeedParcel;
|
||||||
public event BuyLandHandler OnBuyLand;
|
public event BuyLandHandler OnBuyLand;
|
||||||
public event LinkObjectHandler OnLinkObject;
|
public event LinkObjectHandler OnLinkObject;
|
||||||
public event DelinkObjectHandler OnDelinkObject;
|
public event DelinkObjectHandler OnDelinkObject;
|
||||||
|
@ -696,6 +698,21 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool CanDeedParcel(UUID user, ILandObject parcel)
|
||||||
|
{
|
||||||
|
DeedParcelHandler handler = OnDeedParcel;
|
||||||
|
if (handler != null)
|
||||||
|
{
|
||||||
|
Delegate[] list = handler.GetInvocationList();
|
||||||
|
foreach (DeedParcelHandler h in list)
|
||||||
|
{
|
||||||
|
if (h(user, parcel, m_scene) == false)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public bool CanBuyLand(UUID user, ILandObject parcel)
|
public bool CanBuyLand(UUID user, ILandObject parcel)
|
||||||
{
|
{
|
||||||
BuyLandHandler handler = OnBuyLand;
|
BuyLandHandler handler = OnBuyLand;
|
||||||
|
|
Loading…
Reference in New Issue