From bf68255b86093afe68392973054af7c3e2f2121b Mon Sep 17 00:00:00 2001
From: Justin Clarke Casey
Date: Thu, 13 Nov 2008 19:16:15 +0000
Subject: * refactor: rename object inventory permission checks to distinguish
between task inventory and agent inventory
---
.../Modules/World/Permissions/PermissionsModule.cs | 13 ++--
.../Region/Environment/Scenes/Scene.Inventory.cs | 3 +-
.../Environment/Scenes/SceneExternalChecks.cs | 76 +++++++++++++---------
3 files changed, 53 insertions(+), 39 deletions(-)
diff --git a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs
index b6b7d4a..394690c 100644
--- a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs
@@ -184,12 +184,11 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
m_scene.ExternalChecks.addCheckCanLinkObject(CanLinkObject); //NOT YET IMPLEMENTED
m_scene.ExternalChecks.addCheckCanDelinkObject(CanDelinkObject); //NOT YET IMPLEMENTED
m_scene.ExternalChecks.addCheckCanBuyLand(CanBuyLand); //NOT YET IMPLEMENTED
- m_scene.ExternalChecks.addCheckCanCopyInventory(CanCopyInventory); //NOT YET IMPLEMENTED
- m_scene.ExternalChecks.addCheckCanDeleteInventory(CanDeleteInventory); //NOT YET IMPLEMENTED
- m_scene.ExternalChecks.addCheckCanCreateInventory(CanCreateInventory); //NOT YET IMPLEMENTED
+ m_scene.ExternalChecks.addCheckCanCopyObjectInventory(CanCopyObjectInventory); //NOT YET IMPLEMENTED
+ m_scene.ExternalChecks.addCheckCanDeleteObjectInventory(CanDeleteObjectInventory); //NOT YET IMPLEMENTED
+ m_scene.ExternalChecks.addCheckCanCreateObjectInventory(CanCreateObjectInventory); //NOT YET IMPLEMENTED
m_scene.ExternalChecks.addCheckCanTeleport(CanTeleport); //NOT YET IMPLEMENTED
-
//Register Debug Commands
Command bypassCommand = new Command("bypass", CommandIntentions.COMMAND_HAZARDOUS, InterfaceBypassPermissions, "Force the permissions a specific way to test permissions");
bypassCommand.AddArgument("enable_bypass_perms", "true to enable bypassing all perms", "Boolean");
@@ -1202,7 +1201,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
return true;
}
- public bool CanCopyInventory(UUID itemID, UUID objectID, UUID userID)
+ public bool CanCopyObjectInventory(UUID itemID, UUID objectID, UUID userID)
{
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
@@ -1210,7 +1209,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
return true;
}
- public bool CanDeleteInventory(UUID itemID, UUID objectID, UUID userID)
+ public bool CanDeleteObjectInventory(UUID itemID, UUID objectID, UUID userID)
{
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
@@ -1227,7 +1226,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions
///
///
///
- public bool CanCreateInventory(int invType, UUID objectID, UUID userID)
+ public bool CanCreateObjectInventory(int invType, UUID objectID, UUID userID)
{
m_log.Debug("[PERMISSIONS]: CanCreateInventory called");
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 19c9d08..d47e068 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -1387,7 +1387,8 @@ namespace OpenSim.Region.Environment.Scenes
if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0)
return;
- if (!ExternalChecks.ExternalChecksCanCreateInventory(itemBase.InvType, part.UUID, remoteClient.AgentId))
+ if (!ExternalChecks.ExternalChecksCanCreateObjectInventory(
+ itemBase.InvType, part.UUID, remoteClient.AgentId))
return;
AssetBase asset = CreateAsset(itemBase.Name, itemBase.Description, (sbyte)itemBase.AssetType, Encoding.ASCII.GetBytes("default\n{\n state_entry()\n {\n llSay(0, \"Script running\");\n }\n}"));
diff --git a/OpenSim/Region/Environment/Scenes/SceneExternalChecks.cs b/OpenSim/Region/Environment/Scenes/SceneExternalChecks.cs
index c5bbcdd..0e018e8 100644
--- a/OpenSim/Region/Environment/Scenes/SceneExternalChecks.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneExternalChecks.cs
@@ -1070,51 +1070,63 @@ namespace OpenSim.Region.Environment.Scenes
#endregion
- public delegate bool CanCreateInventory(int invType, UUID objectID, UUID userID);
- private List CanCreateInventoryCheckFunctions = new List();
+ public delegate bool CanCreateObjectInventory(int invType, UUID objectID, UUID userID);
+ private List CanCreateObjectInventoryCheckFunctions
+ = new List();
- public void addCheckCanCreateInventory(CanCreateInventory delegateFunc)
+
+ public void addCheckCanCreateObjectInventory(CanCreateObjectInventory delegateFunc)
{
- if (!CanCreateInventoryCheckFunctions.Contains(delegateFunc))
- CanCreateInventoryCheckFunctions.Add(delegateFunc);
+ if (!CanCreateObjectInventoryCheckFunctions.Contains(delegateFunc))
+ CanCreateObjectInventoryCheckFunctions.Add(delegateFunc);
}
- public void removeCheckCanCreateInventory(CanCreateInventory delegateFunc)
+ public void removeCheckCanCreateObjectInventory(CanCreateObjectInventory delegateFunc)
{
- if (CanCreateInventoryCheckFunctions.Contains(delegateFunc))
- CanCreateInventoryCheckFunctions.Remove(delegateFunc);
+ if (CanCreateObjectInventoryCheckFunctions.Contains(delegateFunc))
+ CanCreateObjectInventoryCheckFunctions.Remove(delegateFunc);
}
- public bool ExternalChecksCanCreateInventory(int invType, UUID objectID, UUID userID)
+ ///
+ /// Check whether the specified user is allowed to directly create the given inventory type in a prim's
+ /// inventory (e.g. the New Script button in the 1.21 Linden Lab client). This permission check does not
+ /// apply to existing items that are being dragged in to that prim's inventory.
+ ///
+ ///
+ ///
+ ///
+ ///
+ public bool ExternalChecksCanCreateObjectInventory(int invType, UUID objectID, UUID userID)
{
- foreach (CanCreateInventory check in CanCreateInventoryCheckFunctions)
+ foreach (CanCreateObjectInventory check in CanCreateObjectInventoryCheckFunctions)
{
if (check(invType, objectID, userID) == false)
{
return false;
}
}
+
return true;
}
- public delegate bool CanCopyInventory(UUID itemID, UUID objectID, UUID userID);
- private List CanCopyInventoryCheckFunctions = new List();
+ public delegate bool CanCopyObjectInventory(UUID itemID, UUID objectID, UUID userID);
+ private List CanCopyObjectInventoryCheckFunctions = new List();
- public void addCheckCanCopyInventory(CanCopyInventory delegateFunc)
+ public void addCheckCanCopyObjectInventory(CanCopyObjectInventory delegateFunc)
{
- if (!CanCopyInventoryCheckFunctions.Contains(delegateFunc))
- CanCopyInventoryCheckFunctions.Add(delegateFunc);
+ if (!CanCopyObjectInventoryCheckFunctions.Contains(delegateFunc))
+ CanCopyObjectInventoryCheckFunctions.Add(delegateFunc);
}
- public void removeCheckCanCopyInventory(CanCopyInventory delegateFunc)
+ public void removeCheckCanCopyObjectInventory(CanCopyObjectInventory delegateFunc)
{
- if (CanCopyInventoryCheckFunctions.Contains(delegateFunc))
- CanCopyInventoryCheckFunctions.Remove(delegateFunc);
+ if (CanCopyObjectInventoryCheckFunctions.Contains(delegateFunc))
+ CanCopyObjectInventoryCheckFunctions.Remove(delegateFunc);
}
-
- public bool ExternalChecksCanCopyInventory(UUID itemID, UUID objectID, UUID userID)
+
+ public bool ExternalChecksCanCopyObjectInventory(UUID itemID, UUID objectID, UUID userID)
{
- foreach (CanCopyInventory check in CanCopyInventoryCheckFunctions)
+ foreach (CanCopyObjectInventory check in CanCopyObjectInventoryCheckFunctions)
{
if (check(itemID, objectID, userID) == false)
{
@@ -1124,30 +1136,32 @@ namespace OpenSim.Region.Environment.Scenes
return true;
}
- public delegate bool CanDeleteInventory(UUID itemID, UUID objectID, UUID userID);
- private List CanDeleteInventoryCheckFunctions = new List();
+ public delegate bool CanDeleteObjectInventory(UUID itemID, UUID objectID, UUID userID);
+ private List CanDeleteObjectInventoryCheckFunctions
+ = new List();
- public void addCheckCanDeleteInventory(CanDeleteInventory delegateFunc)
+ public void addCheckCanDeleteObjectInventory(CanDeleteObjectInventory delegateFunc)
{
- if (!CanDeleteInventoryCheckFunctions.Contains(delegateFunc))
- CanDeleteInventoryCheckFunctions.Add(delegateFunc);
+ if (!CanDeleteObjectInventoryCheckFunctions.Contains(delegateFunc))
+ CanDeleteObjectInventoryCheckFunctions.Add(delegateFunc);
}
- public void removeCheckCanDeleteInventory(CanDeleteInventory delegateFunc)
+ public void removeCheckCanDeleteObjectInventory(CanDeleteObjectInventory delegateFunc)
{
- if (CanDeleteInventoryCheckFunctions.Contains(delegateFunc))
- CanDeleteInventoryCheckFunctions.Remove(delegateFunc);
+ if (CanDeleteObjectInventoryCheckFunctions.Contains(delegateFunc))
+ CanDeleteObjectInventoryCheckFunctions.Remove(delegateFunc);
}
- public bool ExternalChecksCanDeleteInventory(UUID itemID, UUID objectID, UUID userID)
+ public bool ExternalChecksCanDeleteObjectInventory(UUID itemID, UUID objectID, UUID userID)
{
- foreach (CanDeleteInventory check in CanDeleteInventoryCheckFunctions)
+ foreach (CanDeleteObjectInventory check in CanDeleteObjectInventoryCheckFunctions)
{
if (check(itemID, objectID, userID) == false)
{
return false;
}
}
+
return true;
}
--
cgit v1.1