我使用Alfresco Share 4.2c和association.ftl来显示关联并允许选择存储库中的对象。我遇到问题是为没有权限查看关联对象的用户显示元数据。 我收到了一个错误:
模板处理错误: " get(properties)在org.alfresco.repo.template.TemplateNode"的实例上失败在org.alfresco.repo.template.TemplateNode的实例上get(properties)失败。 有问题的指示:---------- ==> $ {row.item.properties.name!""}转义$ {jsonUtils.encodeJSONString(row.item.properties.name!"")} [第36行,第36行42 in org / alfresco / repository / forms / pickerresults.lib.ftl] 在user-directive pickerResultsLib.pickerResultsJSON [第2行,org / alfresco / repository / forms / pickeritems.post.json.ftl中的第1列]
和AccessDeniedException。
对此问题的任何帮助或建议表示赞赏。 我还希望在文档详细信息页面上有一个标签,其中包含文本"访问被拒绝"。 也许我必须创建自定义association.ftl? 提前谢谢!
答案 0 :(得分:2)
将 /alfresco/templates/webscripts/org/alfresco/repository/forms/pickerresults.lib.ftl 复制到扩展程序文件夹并更改以下循环
<#list results as row>
{
"type": "${row.item.typeShort}",
"parentType": "${row.item.parentTypeShort!""}",
"isContainer": ${row.item.isContainer?string},
"name": "${row.item.properties.name!""}",
"title": "${row.item.properties.title!""}",
"description": "${row.item.properties.description!""}",
<#if row.item.properties.modified??>"modified": "${xmldate(row.item.properties.modified)}",</#if>
<#if row.item.properties.modifier??>"modifier": "${row.item.properties.modifier}",</#if>
<#if row.item.siteShortName??>"site": "${row.item.siteShortName}",</#if>
"displayPath": "${row.item.displayPath!""}",
"nodeRef": "${row.item.nodeRef}"<#if row.selectable?exists>,
"selectable" : ${row.selectable?string}</#if>
}<#if row_has_next>,</#if>
</#list>
如果row.item.hasPermission(“Read”),则使用额外的封装内部 像这样:
<#list results as row>
<#if row.item.hasPermission("Read")>
{
"type": "${row.item.typeShort}",
"parentType": "${row.item.parentTypeShort!""}",
"isContainer": ${row.item.isContainer?string},
"name": "${row.item.properties.name!""}",
"title": "${row.item.properties.title!""}",
"description": "${row.item.properties.description!""}",
<#if row.item.properties.modified??>"modified": "${xmldate(row.item.properties.modified)}",</#if>
<#if row.item.properties.modifier??>"modifier": "${row.item.properties.modifier}",</#if>
<#if row.item.siteShortName??>"site": "${row.item.siteShortName}",</#if>
"displayPath": "${row.item.displayPath!""}",
"nodeRef": "${row.item.nodeRef}"<#if row.selectable?exists>,
"selectable" : ${row.selectable?string}</#if>
}<#if row_has_next>,</#if>
</#if>
</#list>