【问题标题】:Sharepoint 2007/2010 hiding list or library items (i.e. rows)Sharepoint 2007/2010 隐藏列表或库项目(即行)
【发布时间】:2011-12-07 08:36:22
【问题描述】:

我想知道是否有一种方法可以根据特定列的内容隐藏列表或库行项目。

这是一个用例场景:

我有一个任何类型的列表或库,我有一个名为 Permissions 的列,在该列中我可以将两种组名类型中的一种指定为字符串,例如“所有者”或“访问者” .后记,我有条件遍历列表或库中的每个单独的行项,并将该行项的可见性基于 Permissions 列的字符串内容。

行可见性逻辑伪:

If( current_row.Permissions_Col.Content == LoggedInUser.Group_Name)
 Show this row
Else
 Hide this row

是否可以通过 Sharepoint Web 界面或在 Sharepoint Designer 或 Visual Studio 中以编程方式完成此操作?洞察力值得赞赏。

更新:

感谢大家的反馈,只是为了澄清这样做的动机是我们的文档结构和安全/权限层非常动态,因此我们无法在 SharePoint 中创建静态层次结构。相反,我们希望拥有一个单一的资源库池,根据当前登录用户的组成员身份动态过滤这些资源库。我们希望将 Permissions 列内容视为元数据,以描述谁可以查看该行的数据。

我很抱歉,但我忽略提及的另一个要求是,当登录的用户尝试在 SharePoint 中上传文件或创建新元素(即列表、库、文件夹、表单等)时,会设置权限自动为用户组和“所有者”。这种情况的唯一例外是“所有者”。所以伪是这样的:

文件上传/项目创建逻辑:

If( (creatingElement OR uploadingFile) AND LoggedInUser.Group_Name != "Owners")
{
  SET Permissions_Col.Content to LoggedInUser.Group_Name; 
  SET read permissions for LoggedInUser.Group_Name and full control for "Owners";
}

【问题讨论】:

  • 您没有使用项目级权限是否有原因?
  • @Stefan 项目级别权限无法实现这一点。项目级别权限仅过滤非作者是否可以查看/编辑作者的列表项目。

标签: sharepoint sharepoint-2010 sharepoint-2007 sharepoint-designer sharepoint-api


【解决方案1】:

此处的解决方案取决于您操作的目的。如果访问者访问标记为“所有者”的项目时没有业务影响,则可以进行过滤。当您可以使用 Sharepoint 的“观众”功能时就是这种情况,正如 Nat 在他的回答中所建议的那样。但请记住,访问者可能会在不同的视图中打开您的列表(例如,在 Ms Excel 中)并查看列表中的所有项目。

但是,如果标记为“所有者”的行只能由系统所有者看到,则您必须考虑实际为列表项分配权限。我能想到的方法有两种:

  • 将两个文件夹中的项目分开,为文件夹分配不同的权限。然后使用递归视图列出单个列表中的所有项目
  • 使用项目级权限。如果选择此路径,则必须编写异步事件处理程序(在 ItemUpdated 上)来检查“权限”字段的值并设置适当的权限。

【讨论】:

  • 项目级别权限并不规定哪些安全组可以或不能查看列表项目;它仅规定每个人(有权访问列表的人)或他们自己(作为项目的作者)是否可以查看/编辑列表项。
【解决方案2】:

您不能使用“audience”功能吗?

【讨论】:

    【解决方案3】:

    您可以在列表中创建新视图,以便为列应用过滤器。 在您的情况下,创建两个视图 - 一个用于“所有者”,另一个用于“访客” 例如:当 'Permissions' 等于 'Authors' 时显示项目

    但是,此解决方案不限制“访客”组成员查看“所有者”组成员的视图。如果需要,请应用项目级安全性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多