2012-04-24 52 views
1

我有这这样创建一个特定的数据库一份公开文件:的XPages sessionAsSigner和Domino数据源

<xp:dominoDocument var="newDoc" formName="frmMyForm" 
    databaseName="#{javascript:applicationScope.aspMyDBPath}"> 
</xp:dominoDocument> 

在该数据库的ACL设置为匿名的读者与公共文件的写权限。我无法保存此文档,因为Xpages作为Web用户运行。如果我以代理签名者身份运行,并且如果使用sessionAsSigner初始化数据库,则可以保存它。我怎么能用dominoDocument数据源来做到这一点?有任何想法吗?

任何帮助,将不胜感激。我不想让Editor级别访问这个数据库只是为了解决这个问题。

回答

4

你可以给用户不能访问数据库中创建公共文件这样的可能性:

  1. 添加表格到你的数据库与$ PublicAccess场(文字,值“1”)
  2. 启用属性“供公众访问”的形式
  3. 添加属性的“computewithform都=”你的数据源
  4. 您的XPage的
  5. 更改安全设置为“允许公共访问”
  6. 更改DB的ACL,允许创建和读取公共文档

这应该也适用于读者。

希望这有助于

斯文

+0

会给这个去,非常感谢Sven – pipalia 2012-04-25 07:21:19

+0

它的工作原理 - 谢谢你斯文 - 我不得不创建一个计算时,组成$ PublicAccess领域的工作。出于兴趣,如果“可供公众使用”被勾选,为什么需要$ publicaccess? – pipalia 2012-04-25 21:24:27

+0

$ PublicAccess字段是读取文档所必需的。设计元素甚至是文档:如果公共用户应该使用它们,它们也必须是可读的。通过激活“可用于公共访问”,设计元素将从Designer中获得$ PublicAccess字段。 – 2012-04-26 10:09:18

1

应该可以使用一个DataContext这一点。在XPage的属性中设置一个新的DataContext并将其设置为正确的DB/Doc,但使用sessionAsSigner来返回数据库。

对于任何数据控件,您都无法轻松访问表单上的字段,因此您需要在每个字段的EL中手动输入。

+0

我试过了dataContext,但是我在页面加载后设置了一些值,如果我使用dataContext的话会中断。在这个场合Sven建议工作。谢谢Declan,非常感谢。 – pipalia 2012-04-25 21:22:43

相关问题