如何限制“添加Web部件”窗口中显示的Web部件?

时间:2009-07-27 20:07:49

标签: sharepoint web-parts security-roles

我想向某些用户公开Web部件,但不是所有用户。如何在“添加Web部件”弹出窗口中显示或隐藏Web部件?我想通过代码执行此操作,并且我希望使用SharePoint角色来实现此目的。

2 个答案:

答案 0 :(得分:2)

我知道您可以在Web部件库的“添加Web部件”窗口中管理显示哪些Web部件。

虽然我还没有这样做...因为它只是另一个SharePoint列表,您应该能够以编程方式将角色分配给组/用户?

More Info...

更新 - 因为您想查看一些代码。没什么特别的,只是一个快速的黑客。你肯定想要进行标准错误检查等.HPH: - )

using (SPSite site = new SPSite("YOUR SP URL"))
{
  using (SPWeb web = site.OpenWeb())
  {
    SPList list = web.Lists["Web Part Gallery"];

    // Your code for choosing which web part(s) to modify perms on
    // will undoubtedly be more complex than this...
    SPListItem listItem = list.GetItemById(19);

    SPPrincipal groupToAdd = web.SiteGroups["YOUR GROUP NAME"] as SPPrincipal;

    SPRoleAssignment newRoleAssignment = new SPRoleAssignment(groupToAdd);
    SPRoleDefinition newRoleDefinition = web.RoleDefinitions["Read"];
    newRoleAssignment.RoleDefinitionBindings.Add(newRoleDefinition);

    listItem.RoleAssignments.Add(newRoleAssignment);
  }
}

答案 1 :(得分:1)

您可以使用SharePoint Groups执行此操作。

转到Web部件库,单击要作用域的Web部件上的“编辑”,然后单击“管理权限”。您可以在此处指定哪些用户或组可以使用Web部件。