我如何允许用户创建文件夹但不能删除文件夹?
-
16-10-2019 - |
题
我如何允许用户创建文件夹但不能在SharePoint 2007中删除文件夹?
解决方案
使用以下代码创建事件接收器,然后将事件回收器附加到您的文档库。
private bool CanDeleteFolder(SPWeb web)
{
// check to see if the user is in the owners group
SPUser user = web.CurrentUser;
if (!user.IsSiteAdmin)
{
return false;
}
else
{
//admins can delete folder
return true;
}
}
public override void ItemDeleting(SPItemEventProperties properties)
{
try
{
if (properties.AfterProperties["ContentType"].ToString() == "Folder")
{
using (SPWeb web = properties.OpenWeb())
{
if (!CanDeleteFolder(web))
{
properties.Cancel = true;
properties.ErrorMessage = "Cannot add folder at this location. Please select a sub folder";
properties.Status = SPEventReceiverStatus.CancelWithError;
}
}
}
}
catch { }
}
其他提示
或创建一个不允许删除选项的自定义权限级别,并将该权限级别应用于所需用户的库。他们将能够添加/编辑项目,但不能删除。事件接收器似乎对简单的权限更改似乎过于杀伤。
可以使用自定义事件接收器捕获登录,以查看当前项目是否为文件夹,并在这样做时取消错误消息。