我在sharepoint 2007中创建了一个启用电子邮件的文档库。我们的客户正在使用水晶报表并在此文档中存储报表。图书馆。我现在在该库中有大约900个文档,客户端要求我提供项目明智的权限。他们使用员工ID命名文件。他们希望这些文件能够被适当的员工和他/她的秘书看到。
任何人都可以帮我如何以编程方式实现这一目标吗?有没有正确的方法呢?
谢谢,
答案 0 :(得分:0)
您可以创建一个event handler来破坏文件权限继承并更改所需的权限。
另一种选择是将文件移动到预先配置了您所需权限的文件夹(甚至是单独的文档库)。
第一个选项更容易实现,但安全管理可能变得......凌乱。
Here是一些代码,可帮助您开始破解和设置文档权限。
public string ItemPermission(string SitePath)
{
string ReturnVal = "";
try
{
SPSite WebApp = new SPSite(SitePath);
SPWeb Site = WebApp.OpenWeb();
SPList list = Site.Lists["TestDocLib"];
SPListItem item = list.Items[0];
SPRoleDefinition RoleDefinition = Site.RoleDefinitions.GetByType(SPRoleType.Contributor);
SPRoleAssignment RoleAssignment = new SPRoleAssignment("<domain>\\<user>", "email", "name", "notes");
RoleAssignment.RoleDefinitionBindings.Add(RoleDefinition);
if(!item.HasUniqueRoleAssignments)
{
item.BreakRoleInheritance(true);
}
item.RoleAssignments.Add(RoleAssignment);
item.Update();
}
catch (Exception ex)
{
ReturnVal += "Permission not set, reason: " + ex.Message;
}
return ReturnVal;
}
答案 1 :(得分:0)
无需编写代码,您可以为每个员工创建一个文件夹,并设置文件夹权限,只有该员工和经理才能访问。
对于经理,您仍然可以制作视图,显示所有没有文件夹的列表项。