From 3fc2d86dfe9fa041097eb33a4d7d3660c72df373 Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Sat, 4 Aug 2007 00:56:56 +0000
Subject: * More work on PermissionManager
---
OpenSim/Region/Environment/EstateManager.cs | 9 +++---
OpenSim/Region/Environment/PermissionManager.cs | 40 +++++++++++++++++++++++++
2 files changed, 44 insertions(+), 5 deletions(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/Environment/EstateManager.cs b/OpenSim/Region/Environment/EstateManager.cs
index 67cfba6..83bfbb4 100644
--- a/OpenSim/Region/Environment/EstateManager.cs
+++ b/OpenSim/Region/Environment/EstateManager.cs
@@ -70,9 +70,8 @@ namespace OpenSim.Region.Environment
/// Which corner
/// Minimum height that texture range should cover
/// Maximum height that texture range should cover
- public void setEstateTextureRange(UInt16 corner, float lowValue, float highValue)
+ public void setEstateTextureRange(Int16 corner, float lowValue, float highValue)
{
-
switch (corner)
{
case 0:
@@ -99,7 +98,7 @@ namespace OpenSim.Region.Environment
///
/// Which texture band
/// The UUID of the texture
- public void setTerrainTexture(UInt16 band, LLUUID textureUUID)
+ public void setTerrainTexture(Int16 band, LLUUID textureUUID)
{
switch (band)
{
@@ -265,7 +264,7 @@ namespace OpenSim.Region.Environment
if (splitField.Length == 3)
{
- UInt16 corner = Convert.ToInt16(splitField[0]);
+ Int16 corner = Convert.ToInt16(splitField[0]);
float lowValue = (float)Convert.ToDecimal(splitField[1]);
float highValue = (float)Convert.ToDecimal(splitField[2]);
@@ -283,7 +282,7 @@ namespace OpenSim.Region.Environment
string[] splitField = s.Split(' ');
if (splitField.Length == 2)
{
- UInt16 corner = Convert.ToInt16(splitField[0]);
+ Int16 corner = Convert.ToInt16(splitField[0]);
LLUUID textureUUID = new LLUUID(splitField[1]);
setTerrainTexture(corner, textureUUID);
diff --git a/OpenSim/Region/Environment/PermissionManager.cs b/OpenSim/Region/Environment/PermissionManager.cs
index fc9e58d..e768d7f 100644
--- a/OpenSim/Region/Environment/PermissionManager.cs
+++ b/OpenSim/Region/Environment/PermissionManager.cs
@@ -20,6 +20,15 @@ namespace OpenSim.Region.Environment
m_scene = world;
}
+ public delegate void OnPermissionErrorDelegate(LLUUID user, string reason);
+ public event OnPermissionErrorDelegate OnPermissionError;
+
+ protected virtual void SendPermissionError(LLUUID user, string reason)
+ {
+ if (OnPermissionError != null)
+ OnPermissionError(user, reason);
+ }
+
protected virtual bool IsAdministrator(LLUUID user)
{
return m_scene.RegionInfo.MasterAvatarAssignedUUID == user;
@@ -104,5 +113,36 @@ namespace OpenSim.Region.Environment
{
return false;
}
+
+ public virtual bool CanEditEstateSettings(LLUUID user)
+ {
+ // Default: deny
+ bool canEdit = false;
+
+ // Estate admins should be able to use estate tools
+ if (IsEstateManager(user))
+ canEdit = true;
+
+ // Administrators always have permission
+ if (IsAdministrator(user))
+ canEdit = true;
+
+ return canEdit;
+ }
+
+ public virtual bool CanEditParcel(LLUUID user, Land parcel)
+ {
+ return false;
+ }
+
+ public virtual bool CanSellParcel(LLUUID user, Land parcel)
+ {
+ return false;
+ }
+
+ public virtual bool CanAbandonParcel(LLUUID user, Land parcel)
+ {
+ return false;
+ }
}
}
--
cgit v1.1