这个用例似乎适用于几乎所有表单,但我还没有为它找到一个好的开箱即用的解决方案。想象一下基于InfoPath和SharePoint的HR Complaint表单。所有员工都应该能够填写并提交,并可能看到他们提交的人员,但只有HR的成员才能查看他人的表格。如何配置表单和/或表单库以适应这种情况?我试过的一些事情:
[[NFL-LIVE]] #Fickles Eagles vs Jacksonville Jaguars:2018直播(NFL-FOOTBALL)电视频道
- 创建表单库视图已过滤CreatedBy = [Me]。无法在视图上设置安全性,因此如果用户选择其他视图,则仍可以查看所有提交的表单。
- 调整库的安全性。 (AFAIK)不可能给予用户“提交”权利,而不给予他们“查看”权利。
- 创建自定义工作流程。这可能有效,但我们更倾向于使用开箱即用的解决方案或第三方功能来启用此方案,而无需为每个表单编写代码。我们希望非开发人员最终用户能够使用此行为创建InfoPath表单。
答案 0 :(得分:1)
我已经用Holiday Requests表单完成了这个(我们现在将它用于我们创建的所有表单)。只有HR,用户的经理或表单的“创建者”才能打开完整视图。我不是Sharepoint或Infopath专家,所以我的解决方案可能不适合所有场景。
后台 - 使用SharePoint wss3.0的InfoPath 2010表单填充(不是浏览器表单)(虽然我不明白为什么它不适用于更高版本)。
我设计了一个Infopath表单,其中有几个视图,在表单加载时打开,具体取决于用户是谁以及状态是什么。其中一个观点是“抱歉,您无法打开此表单”视图。
创建表单时,我将userid(表单上的内置函数 - userName())移动到'由'创建'字段。打开表单时,规则会根据当前用户字段检查该字段,并可以采取措施显示相应的视图(取决于其他字段值)。我还将他们经理的用户ID移动到另一个字段 - 这也是从数据连接检索到另一个列表
然后我有一个SharePoint列表(称为权限) - 此列表包含用户ID及其权限(高级经理,HR等),我使用数据连接读取此内容,并在用户ID上过滤(在表单时检索)打开了。)
因此,总而言之 - 当表单打开时,表单加载规则: 1)检索当前用户ID 2)从我的列表中检索该用户的权限 3)检查表单状态
然后显示表单的适当视图(更新,只读,私有等)
我创建了一个新的权限类型,它是“贡献”设置的副本,但没有删除权限。因此,默认情况下,每个人都可以在理论上添加,阅读和更新所有表单,但我的规则会阻止某些操作。
有更多SharePoint和SharePoint知识的人InfoPath比我可能能够找到它的错误,它可能不是真正意义上的100%安全,但它适用于我们。我还从工具栏中删除了“在Windows资源管理器中打开”选项,这样他们就看不到原始的xml数据了。
我希望这会有所帮助
答案 1 :(得分:0)
你的要求在开箱即用中有点棘手。没有选项可以让用户只查看他的项目而不是其他项目。虽然您可以使用“项目级别权限”来获取此项,但您必须手动为每个要创建的项目执行此操作。您可以做的最好的选择是为列表创建一个事件处理程序,它将为添加的项目分配列表项的项级别权限。我过去使用事件处理程序做了类似的事情。
答案 2 :(得分:0)
这可以通过编辑相关列表/库中的设置,然后将HR用户添加到管理员组来完成。
可以通过转到列表/媒体库标签并点击列表/媒体库设置来找到这些设置。然后点击高级设置,您要查找的部分是第二部分,称为项目级预设。
要设置列表,以便人们只能看到用户创建的那些,请选择读取用户创建的项目旁边的单选按钮。
要设置列表以便只有创建项目的人可以编辑它,请选择创建项目并编辑用户创建的项目旁边的单选按钮。
然后创建一个具有完全控制权限的权限组,并将HR用户添加到该权限组。因此,他们应该能够看到所有项目。
答案 3 :(得分:0)
我希望通过启用图书馆设置的内容审批,我说我相信Out of The Box解决方案存在时,我正确理解你。只要内容永远不会被切换为接受,就可以设置为只有看到该表单的人才是提交者,并且批准访问此列表的人员。因此,如果您已批准访问权限,则可以看到每个人的结果。如果您将其切换为接受内容,则每个人都会看到该表单。
答案 4 :(得分:0)
一种方法是使用InfoPath创建自定义列表,而不是表单库。不幸的是,这可能需要您重建整个事情(但可能会查看“转换现有表单”选项)。要使用InfoPath构建自定义列表,只需打开InfoPath Designer并选择“SharePoint List”作为要构建的模板。然后开始设计表格。这肯定存在缺点,例如您不能简单地将表单重定向到新位置,但您可以在一个位置构建列表,将其导出为模板,然后将其导入新位置。另一个问题是,在提交表单之前,您无法在本地保存表单。但是,自定义列表设计器几乎存在所有其他功能。我甚至发现了一些列表构建的小东西可以比InfoPath表单做得更好,移动兼容性就是其中之一。
答案 5 :(得分:0)
JP上面的回答对我有用。
假设您想要两个用户组“表单用户”和“表单所有者”。表单所有者可以完全控制整个站点,表单用户只能获得列表的Contribute访问权限。
首先转到“网站设置 - >下的高级设置”。站点库和&列表 - >你的清单'。
在“项目级别权限”部分中选择您的首选项,该部分授予对项目创建者的读取/创建/编辑访问权限。单击“确定”。
然后单击“此列表的权限”并单击该列表的“停止继承权限”,然后将“表单用户”添加到具有贡献级别访问权限的允许组中。您可以将“所有人”添加到“表单用户”组,并共享指向Intranet上表单的链接,供所有员工访问。表单所有者可以看到所有项目。