【问题标题】:Permission error when saving a document保存文档时出现权限错误
【发布时间】:2014-05-16 22:04:55
【问题描述】:
我有一个使用 8 个 xpages 的工作流应用程序。到目前为止它工作正常,突然为任何 xpage 保存新文档时,它开始出现以下错误:
意外的运行时错误
运行时遇到意外错误。
错误来源
页面名称:/XpNew.xsp
例外
保存数据源 document1 时出错
无法保存文档 44F2A NotesException: Notes error: You cannot update or delete the document(s) because you are not listed as an allowed Author for this document
即使我拥有对数据库的管理员访问权限。它开始在测试和生产服务器上出错也很奇怪。我也用 -c 运行紧凑,但仍然是同样的问题。
Ran Fixup 仍然是同样的问题。
【问题讨论】:
标签:
xpages
xpages-extlib
xpages-ssjs
【解决方案1】:
在这种情况下,由于它似乎是核心 Notes 异常,而不是 XSP 层的任何异常,我会先研究 ACL。你是一个团队的管理者吗?如果是这样,该组最近是否发生了任何变化,或者它是否在通过目录服务引用的辅助目录中指定?我遇到过这样的情况,HTTP 任务只是从辅助目录“忘记”组成员身份,直到我重新启动它。
另一个潜在的问题来源可能是数据库 ACL 的“高级”选项卡上的“最大 Internet 名称和密码”字段 - 如果将其设置为“作者”,它将覆盖您的实际访问权限。
作为故障排除步骤,我会在计算文本项中使用它制作一个 XPage:
database.queryAccess(session.getEffectiveUserName());
这应该会返回您的数字访问级别。此外,要检查第一段的理论,您可以添加一个表单或页面,其计算值为:
@UserNamesList
这将为您提供当前数据库中当前用户的所有有效名称、组和角色的列表。
【解决方案2】:
Notes 表单上有一个 Authors 字段,其值为 @Username,它以分层形式返回值作为名字/公司。
将公式更改为 @Name([Canonicalize];@UserName) 并通过网络保留默认编辑器的最大访问级别。这解决了问题。现在它可以毫无问题地保存文档了。
感谢大家的帮助