aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs21
1 files changed, 18 insertions, 3 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 15469db..5b634e0 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -278,10 +278,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
278 { 278 {
279 if (!m_FunctionPerms[function].Contains(UUID.Zero)) 279 if (!m_FunctionPerms[function].Contains(UUID.Zero))
280 { 280 {
281 if (!m_FunctionPerms[function].Contains(m_host.OwnerID)) 281 TaskInventoryItem ti = m_host.Inventory.GetInventoryItem(m_itemID);
282 if (ti == null)
283 {
284 OSSLError(
285 String.Format("{0} permission error. Can't find script in prim inventory.",
286 function));
287 }
288 if (!m_FunctionPerms[function].Contains(ti.CreatorID))
282 OSSLError( 289 OSSLError(
283 String.Format("{0} permission denied. Prim owner is not in the list of users allowed to execute this function.", 290 String.Format("{0} permission denied. Script creator is not in the list of users allowed to execute this function.",
284 function)); 291 function));
292 if (ti.CreatorID != ti.OwnerID)
293 {
294 if ((ti.CurrentPermissions & (uint)PermissionMask.Modify) != 0)
295 OSSLError(
296 String.Format("{0} permission denied. Script permissions error.",
297 function));
298
299 }
285 } 300 }
286 } 301 }
287 } 302 }
@@ -2137,4 +2152,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2137 } 2152 }
2138 } 2153 }
2139 } 2154 }
2140} \ No newline at end of file 2155}