mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V2.1 to HEAD
6386: Fix for AR-1649 6387: Fix for AR-1645 6388: Updated Polish messages 6389: Updated security providers 6392: Add support to log in as guest with any password (if guest is allowed) 6393: AR-1562 : Cannot directly exit/disable Alfresco JavaScript Debugger window 6394: Allow creation of PropertyValue persisted properties without knowing the type QName 6397: Log Serializable properties don't cause infinte waits 6398: Build fix and tidy up for authentication chaining Resolved conflicted state of 'root\projects\repository\source\java\org\alfresco\repo\security\authentication\AuthenticationUtil.java' 6402: AR-1643 Web Script args object does not handle multi-value arguments 6407: Removed use of QName "{}silly" as a data type definition. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6728 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -29,11 +29,13 @@ import java.io.Writer;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.alfresco.repo.jscript.Scopeable;
|
||||
import org.alfresco.repo.jscript.ScriptableHashMap;
|
||||
import org.alfresco.repo.template.AbsoluteUrlMethod;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
@@ -50,6 +52,8 @@ import org.alfresco.web.scripts.WebScriptDescription.RequiredAuthentication;
|
||||
import org.alfresco.web.scripts.WebScriptDescription.RequiredTransaction;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.mozilla.javascript.Context;
|
||||
import org.mozilla.javascript.Scriptable;
|
||||
|
||||
|
||||
/**
|
||||
@@ -189,22 +193,79 @@ public abstract class AbstractWebScript implements WebScript
|
||||
//
|
||||
|
||||
/**
|
||||
* Create a map of arguments from Web Script Request
|
||||
* Create a map of arguments from Web Script Request (for scripting)
|
||||
*
|
||||
* @param req Web Script Request
|
||||
* @return argument map
|
||||
*/
|
||||
final protected Map<String, String> createArgModel(WebScriptRequest req)
|
||||
final protected Map<String, String> createScriptArgs(WebScriptRequest req)
|
||||
{
|
||||
Map<String, String> args = new ScriptableHashMap<String, String>();
|
||||
String[] names = req.getParameterNames();
|
||||
for (String name : names)
|
||||
{
|
||||
args.put(name, req.getParameter(name));
|
||||
args.put(name, req.getParameter(name));
|
||||
}
|
||||
return args;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a map of arguments from Web Script Request (for templating)
|
||||
*
|
||||
* @param req Web Script Request
|
||||
* @return argument map
|
||||
*/
|
||||
final protected Map<String, String> createTemplateArgs(WebScriptRequest req)
|
||||
{
|
||||
Map<String, String> args = new HashMap<String, String>();
|
||||
String[] names = req.getParameterNames();
|
||||
for (String name : names)
|
||||
{
|
||||
args.put(name, req.getParameter(name));
|
||||
}
|
||||
return args;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a map of (array) arguments from Web Script Request (for scripting)
|
||||
*
|
||||
* @param req Web Script Request
|
||||
* @return argument map
|
||||
*/
|
||||
final protected Map<String, Map<String, String>> createScriptArgsM(WebScriptRequest req)
|
||||
{
|
||||
Map<String, Map<String, String>> args = new ScriptableHashMap<String, Map<String, String>>();
|
||||
String[] names = req.getParameterNames();
|
||||
for (String name : names)
|
||||
{
|
||||
ScriptableHashMap<String, String> values = new ScriptableHashMap<String, String>();
|
||||
int i = 0;
|
||||
for (String value : req.getParameterValues(name))
|
||||
{
|
||||
values.put(new Integer(i++).toString(), value);
|
||||
}
|
||||
args.put(name, values);
|
||||
}
|
||||
return args;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a map of (array) arguments from Web Script Request (for scripting)
|
||||
*
|
||||
* @param req Web Script Request
|
||||
* @return argument map
|
||||
*/
|
||||
final protected Map<String, String[]> createTemplateArgsM(WebScriptRequest req)
|
||||
{
|
||||
Map<String, String[]> args = new HashMap<String, String[]>();
|
||||
String[] names = req.getParameterNames();
|
||||
for (String name : names)
|
||||
{
|
||||
args.put(name, req.getParameterValues(name));
|
||||
}
|
||||
return args;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a model for script usage
|
||||
*
|
||||
@@ -242,7 +303,8 @@ public abstract class AbstractWebScript implements WebScript
|
||||
}
|
||||
|
||||
// add web script context
|
||||
model.put("args", createArgModel(req));
|
||||
model.put("args", createScriptArgs(req));
|
||||
model.put("argsM", createScriptArgsM(req));
|
||||
if (req instanceof WebScriptServletRequest)
|
||||
{
|
||||
model.put("formdata", new FormData(((WebScriptServletRequest)req).getHttpServletRequest()));
|
||||
@@ -298,7 +360,8 @@ public abstract class AbstractWebScript implements WebScript
|
||||
}
|
||||
|
||||
// add web script context
|
||||
model.put("args", createArgModel(req));
|
||||
model.put("args", createTemplateArgs(req));
|
||||
model.put("argsM", createTemplateArgsM(req));
|
||||
model.put("guest", req.isGuest());
|
||||
model.put("url", new URLModel(req));
|
||||
model.put("webscript", getDescription());
|
||||
|
Reference in New Issue
Block a user