我如何允许用户创建文件夹但不能在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 { }
}

其他提示

或创建一个不允许删除选项的自定义权限级别,并将该权限级别应用于所需用户的库。他们将能够添加/编辑项目,但不能删除。事件接收器似乎对简单的权限更改似乎过于杀伤。

可以使用自定义事件接收器捕获登录,以查看当前项目是否为文件夹,并在这样做时取消错误消息。

许可以下: CC-BY-SA归因
scroll top