我有一个包含许多xpages的数据库,有时xpage还没有准备好生产,有时我只想在数据库中保留一些xpages而不允许用户访问它们。
在Domino Designer xpages视图中,有一些用于显示和隐藏设计的列,它们来自注释和Web,但没有地方可以更改这些列值。
我想知道是否有办法在不更改xpage本身的情况下隐藏从Web浏览器访问的xpage。即改变Notes / Web值或给它们一个特殊名称?
注意:我正在寻找一种方法,无需添加或更改代码
答案 0 :(得分:6)
您可以使用XPage的ACL将其设置为普通用户不具备的角色:
<xp:this.acl>
<xp:acl>
<xp:this.entries>
<xp:aclEntry right="NOACCESS" fullName="Anonymous"
loaded="true" name="Anonymous" type="ANONYMOUS">
</xp:aclEntry>
</xp:this.entries></xp:acl>
</xp:this.acl>
答案 1 :(得分:4)
虽然我不知道在没有实际修改这些页面的情况下在特定页面上实现此目的的任何方法,但我建议使用页面ACL功能:
EDITOR
访问权限NOACCESS
因此XML源代码类似于以下内容:
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.acl>
<xp:acl>
<xp:this.entries>
<xp:aclEntry right="EDITOR" type="ROLE">
<xp:this.name><![CDATA[[Developer]]]></xp:this.name>
</xp:aclEntry>
<xp:aclEntry right="NOACCESS" type="DEFAULT" />
</xp:this.entries>
</xp:acl>
</xp:this.acl>
当最终用户准备好访问页面时,您可以更改默认条目的访问级别,也可以完全删除页面ACL。与此同时,只有[Developer]
角色的人才能访问该页面。
免责声明:到目前为止,更优雅的方法是使用版本控制。我强烈建议您观看NotesIn9 episode 131以了解如何使用GitFlow / HgFlow等流程轻松管理“功能分支”。这允许您开始实验或长期更改的开发,并偶尔在它们上取得进展,但只要您想要对用户推送精美的更改而不用感染生产的代码或丢失您的内容,切换回“主”进步特征。
答案 2 :(得分:2)
没有遗憾地隐藏的选项(为增强请求创建PMR)。
您可以尝试使用无权在生产服务器上运行的签名对XPage进行签名。这样,用户将无法呈现页面。
答案 3 :(得分:0)
我很可能不会遇到这个问题:除了Notes客户端,我们没有菜单,用户可以从中选择“受限”页面。如果可以从某种导航器访问它,那么您可能应该首先删除任何链接。
除此之外:如果在所有用户设法访问受限制的页面之后,他们很可能会收到某种丑陋的标准http错误代码,我们通常应该首先避免这些代码。
因此,不是限制或隐藏页面,一个简单的解决方案可以是使用
的无条件(或条件)重定向context.redirectToPage("/someUnrestrictedPage.xsp")
我在具有匿名起始页的应用程序中使用它。将该页面显示给经过身份验证的用户是没有用的,因为它很可能会使他们感到困惑。因此,如果非匿名用户设法访问它,例如通过浏览器书签,它们会立即重定向到其他页面。我将代码放入了startpage的afterPageLoad。