Sharepoint 2013 按当前用户查看任务列表

Sharepoint 2013 按当前用户查看任务列表,sharepoint-2013,sharepoint-online,tasklist,Sharepoint 2013,Sharepoint Online,Tasklist,我有一份任务清单。如果任务未分配给当前用户或任务未分配给其部门,我想对其隐藏任务。 必须有三个级别:老板、经理和用户。 老板可以看到每一项任务。 经理可以看到他部门的所有任务。此外,他/她还可以担任多个部门的经理。 用户可以查看其部门的所有任务。在给出明确答案之前,有许多问题需要回答,因为所问的问题包含一些模糊性。因此,在这个回答中,我将为此目的对一些挑战进行概述 隐藏或无权限 如果用户没有查看任务列表项的权限,则该任务列表项也将被“隐藏”。但也可以隐藏列表项(例如,使用最简单形式的视图)。在后

我有一份任务清单。如果任务未分配给当前用户或任务未分配给其部门,我想对其隐藏任务。 必须有三个级别:老板、经理和用户。 老板可以看到每一项任务。 经理可以看到他部门的所有任务。此外,他/她还可以担任多个部门的经理。
用户可以查看其部门的所有任务。

在给出明确答案之前,有许多问题需要回答,因为所问的问题包含一些模糊性。因此,在这个回答中,我将为此目的对一些挑战进行概述

隐藏或无权限

如果用户没有查看任务列表项的权限,则该任务列表项也将被“隐藏”。但也可以隐藏列表项(例如,使用最简单形式的视图)。在后一种情况下,仍然可以通过对任务列表项的适当导航来检索任务列表项的信息。在某些情况下,这是一个完美的解决方案,在另一些情况下则不是。然后,解决方案必须包括对网站集、web、任务列表或任务列表中的特定项(或者可能是所有创建的任务列表?)设置正确的权限。根据要求,这可能采取不同的形式。在最简单的形式中,您只有一个任务列表

观众

如果部门数量较少,则可以在Sharepoint中配置相同的访问群体,并且在任务列表上启用访问群体后,可以将适当的内容查询web部件添加到页面。这将解决仅显示属于用户部门的任务列表项的问题。在内容查询web部件上添加一个简单的过滤器可以避免显示分配给当前登录用户以外的其他用户的任务列表项

如果受众设置正确,属于许多广告组的任何用户也应该受益于此解决方案

然而:

  • 受众增加了复杂性,因为您必须创建和配置它们 并在任务列表项上设置正确的受众
  • 内容查询web部件已经成为过去的潮流
  • 访问群体不适用于列表视图web部件
因此,在大多数情况下,受众远远不能满足要求

手动添加更多列数据(不好)

当然,有一种解决方案是向任务列表中添加更多列,并要求所有或部分列必须设置为对应于链上的不同经理以及部门。然后可以在过滤器视图中使用这些列来仅显示相关项。但这些解决方案最终往往导致用户抱怨将数据输入Sharepoint太困难,因此无法使用它。他们将通过其他方式解决问题(Outlook,我在看你!)

我的网站

如果配置了“我的站点”,则工作管理api正在发挥作用,并且用户应在其中显示其所有分配的任务列表项。另一方面,经理将无法自动查看其所属部门的所有任务。所有这些任务的内容汇总都可以通过添加搜索web部件来完成,该web部件检索管理器具有查看(或更多)权限的所有任务。这将有效地显示经理的所有任务(分配给经理用户)以及经理所属部门的所有其他任务。(至少如果网站、web、任务列表上的权限设置正确!如果Sharepoint中的权限设置不正确(例如,包括manager在内的所有用户都是所有网站的成员),那么最好在任务列表上添加一个查找列表列,用户可以在其中添加负责的部门(然而,我也注意到,这种解决方案并不是最优的。)

有了这个解决方案,你会有很大的进步。缺点是用户将不得不导航到我的网站

搜索

假设权限设置正确(搜索服务应用程序也是如此!)我解决这个问题的方法是使用搜索。使用搜索REST api端点检索所有任务是完全可能的,基本上只使用分配给登录用户的任务。对于所有管理者来说,这同样容易,因为所有返回的任务列表项都是管理者用户拥有的所有项目权限。(同样,如果在Sharepoint中未正确设置权限,您会遇到一些问题,负责筛选任务列表项的逻辑将更加复杂,可能无法实际执行。)将代码web部件添加到页面并不是一件小事,但有一个json格式的任务列表项数组,并且添加这些项需要经验丰富的开发人员一天也不能完成。我有使用knockout轻松创建此表的经验。在“internet”上应该有很多这样的例子:-/。表格的样式设置可能需要很长时间,但无法随时间而变化。单击任务列表项可以将用户导航到单击的任务列表项的编辑页面

将web部件保存到库中也将使其可用于其他网站