Properties 在共享配置的操作bean链接中将用户名添加到url

Properties 在共享配置的操作bean链接中将用户名添加到url,properties,action,alfresco-share,Properties,Action,Alfresco Share,我在共享配置xml文件中定义了一个有效的露天共享操作,如下所示: <action id="myAction" type="link" label="sv.menu.label" icon="my-icon"> <evaluator>my.custom.evaluator</evaluator> <param name="itemKind">action</param> <param name="itemId

我在共享配置xml文件中定义了一个有效的露天共享操作,如下所示:

<action id="myAction" type="link" label="sv.menu.label" icon="my-icon">
    <evaluator>my.custom.evaluator</evaluator>
    <param name="itemKind">action</param>
    <param name="itemId">scanvelopAction</param>
    <param name="href">/myapp/prefilled?prop1={node.properties.custom_prop}&amp;prop2={node.properties.custom_prop2}</param>
    <param name="target">_blank</param>
</action>
API、
{person.properties.name}
和简单的
{person.name}

该操作继续像以前一样工作,但只将新输入作为文本打印到URL中,就好像这个属性没有定义一样(所以我想它没有定义)。我已经尝试了上述方法的变体,但结果保持不变。我根本找不到关于的person-specific
properties
的文档,我找到的示例也没有成功(见上文)

我怎样才能做到这一点

编辑


我还尝试了
user.name
user.userName

的变体,我不确定您是否可以完全按照您的尝试执行(我还查找了共享配置根范围的对象)。“魔法”动作对象或多或少地在硬编码的地方连接起来(有人知道在哪里吗?)

您可以使用根作用域对象“user”或存储库服务器javaScript中的存储库根作用域对象“person”,在共享/冲浪服务器javaScript中获取当前用户

在Java存储库中使用AuthentificationUtils

因此,您通常不需要将当前登录的用户传递给WebScript,他们已经知道了

在共享客户端上,您的值通常为:Alfresco.constants.USERNAME


因此,无论您真正执行的是什么,服务器上都有spring配置连接,我猜用户信息不能从那里配置的任何东西中派生出来。因此,我使用自定义javascript操作处理程序解决了这个问题

首先,我在share config custom.xml中输入了自定义javascript,如下所示:

<config>
    <forms>
        <dependencies>
            <js src="/components/documentlibrary/my-actions.js" />
        </dependencies>
    </forms>
</config>
然后,我为几个操作上下文注册了处理程序:

(function() {

    if (Alfresco.DocumentList) {
        YAHOO.lang.augmentProto(Alfresco.DocumentList, MY.doclib.FolderActions);
    }

    if (Alfresco.DocListToolbar) {
        YAHOO.lang.augmentProto(Alfresco.DocListToolbar, MY.doclib.FolderActions);
    }

    if (Alfresco.DocumentActions) {
        YAHOO.lang.augmentProto(Alfresco.DocumentActions, MY.doclib.FolderActions);
    }

    if (Alfresco.FolderActions) {
        YAHOO.lang.augmentProto(Alfresco.FolderActions, MY.doclib.FolderActions);
    }

    if (Alfresco.doclib.Actions) {
        YAHOO.lang.augmentProto(Alfresco.doclib.Actions, MY.doclib.FolderActions);
    }

    if (Alfresco.doclib.FolderActions) {
        YAHOO.lang.augmentProto(Alfresco.doclib.FolderActions, MY.doclib.FolderActions);
    }

})();
我在share config custom.xml中相应地更改了我的action bean配置以使用它:

<action id="myaction" type="javascript" label="actions.mine.menu.label" icon="my-icon">
    <param name="function">onMyUserActionLink</param>
    <param name="itemKind">action</param>
    <param name="itemId">myAction</param>
    <param name="mode">create</param>
    <param name="destination">{node.nodeRef}</param>
    <param name="successMessage">actions.mine.success</param>
    <param name="failureMessage">actions.mine.fail</param>
    <param name="href">/mylink/linky?id={node.properties.my_idProp}&amp;prop2={node.properties.my_prop2}</param>
    <param name="name">_blank</param>
    <evaluator>evaluator.oa.action.isWhatIWant</evaluator>
</action>

onMyUserActionLink
行动
我的行动
创造
{node.nodeRef}
行动、我的、成功
我的行动失败了
/mylink/linky?id={node.properties.my_idProp}&;prop2={node.properties.my_prop2}
_空白
evaluator.oa.action.isWhatIWant
该操作调用我的自定义javascript,该javascript附加用户名,然后作为链接继续工作

遗憾的是,即使是alfresco的员工也无法对此做出回应,但我确实希望,由于目前互联网上缺乏共享客户端javascript,这将对很多开发人员有所帮助


提示:例如bean配置,请查看
share\WEB-INF\classes\alfresco\share documentlibrary config.xml
。例如javascript,看看
share\js\documentlibrary actions.js

好吧,我正在共享客户端上执行,但是url是通过spring连接的,如您所见。我想知道节点对象是如何可用的,以及还有哪些其他对象。
<action id="myaction" type="javascript" label="actions.mine.menu.label" icon="my-icon">
    <param name="function">onMyUserActionLink</param>
    <param name="itemKind">action</param>
    <param name="itemId">myAction</param>
    <param name="mode">create</param>
    <param name="destination">{node.nodeRef}</param>
    <param name="successMessage">actions.mine.success</param>
    <param name="failureMessage">actions.mine.fail</param>
    <param name="href">/mylink/linky?id={node.properties.my_idProp}&amp;prop2={node.properties.my_prop2}</param>
    <param name="name">_blank</param>
    <evaluator>evaluator.oa.action.isWhatIWant</evaluator>
</action>