我想向某些用户公开Web部件,但不是所有用户。如何在“添加Web部件”弹出窗口中显示或隐藏Web部件?我想通过代码执行此操作,并且我希望使用SharePoint角色来实现此目的。
答案 0 :(得分:2)
我知道您可以在Web部件库的“添加Web部件”窗口中管理显示哪些Web部件。
虽然我还没有这样做...因为它只是另一个SharePoint列表,您应该能够以编程方式将角色分配给组/用户?
更新 - 因为您想查看一些代码。没什么特别的,只是一个快速的黑客。你肯定想要进行标准错误检查等.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部件。