Как позволить пользователям создавать папки, но не удалять папки?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/5706

  •  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 { }
}

Другие советы

Или создайте пользовательский уровень разрешений, который не разрешает опцию удаления и примените этот уровень разрешения в библиотеку для желаемых пользователей. Они смогут добавлять/редактировать элементы, но не удалять. Приемник мероприятия кажется излишним для простого изменения разрешений.

Можно использовать пользовательский приемник событий для ловушки онделета, чтобы увидеть, является ли удаляемый текущий элемент папкой, и отменить, если да, представляя сообщение об ошибке во время этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top