From 5377997abe18d1dc73d590f914ba21f670778c4a Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Mon, 24 Jun 2013 22:34:22 +0200 Subject: Set agent in module scripts to either current user or system. --- src/main/java/com/c2kernel/process/module/Module.java | 2 +- .../java/com/c2kernel/process/module/ModuleScript.java | 15 ++++++++++++--- src/main/java/com/c2kernel/scripting/Script.java | 8 ++++++++ 3 files changed, 21 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main/java/com/c2kernel/process/module/Module.java b/src/main/java/com/c2kernel/process/module/Module.java index 16f2c29..a7a85bb 100644 --- a/src/main/java/com/c2kernel/process/module/Module.java +++ b/src/main/java/com/c2kernel/process/module/Module.java @@ -38,7 +38,7 @@ public class Module { for (ModuleScript script : scripts) { if (script.shouldRun(event, isServer)) { Logger.msg("Running "+script.event+" "+script.target+" script from "+name); - Object result = script.getScript().execute(); + Object result = script.getScript(ns).execute(); if (result instanceof ErrorInfo) { ErrorInfo error = (ErrorInfo) result; Logger.error(error.toString()); diff --git a/src/main/java/com/c2kernel/process/module/ModuleScript.java b/src/main/java/com/c2kernel/process/module/ModuleScript.java index 8612843..beed6f9 100644 --- a/src/main/java/com/c2kernel/process/module/ModuleScript.java +++ b/src/main/java/com/c2kernel/process/module/ModuleScript.java @@ -1,6 +1,7 @@ package com.c2kernel.process.module; -import com.c2kernel.scripting.ErrorInfo; +import com.c2kernel.entity.proxy.AgentProxy; +import com.c2kernel.process.Gateway; import com.c2kernel.scripting.Script; import com.c2kernel.scripting.ScriptingEngineException; @@ -22,8 +23,16 @@ public class ModuleScript { this.script = script; } - public Script getScript() throws ScriptingEngineException { - return new Script(lang, script, ErrorInfo.class); + public Script getScript(String ns) throws ScriptingEngineException { + AgentProxy user = Gateway.getCurrentUser(); + try { + if (user == null) user = (AgentProxy)Gateway.getProxyManager().getProxy( + Gateway.getLDAPLookup().getRoleManager().getAgentPath("system")); + } catch (Exception ex) { + throw new ScriptingEngineException("System agent unavailable"); + } + return new Script(lang, ns+" "+target+" "+event, script, user); + } public boolean shouldRun(String event, boolean isServer) { diff --git a/src/main/java/com/c2kernel/scripting/Script.java b/src/main/java/com/c2kernel/scripting/Script.java index ec03cc3..4faade5 100644 --- a/src/main/java/com/c2kernel/scripting/Script.java +++ b/src/main/java/com/c2kernel/scripting/Script.java @@ -96,6 +96,14 @@ public class Script addOutput(null, returnType); mScript = expr; } + + public Script(String lang, String name, String expr, AgentProxy agent) throws ScriptingEngineException + { + this(lang, expr, ErrorInfo.class); + mName = name; + addInputParam("agent", AgentProxy.class); + setInputParamValue("agent", agent); + } public Script(String lang, String expr) throws ScriptingEngineException { -- cgit v1.2.3