Как позволить пользователям создавать папки, но не удалять папки?
-
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 { }
}
Другие советы
Или создайте пользовательский уровень разрешений, который не разрешает опцию удаления и примените этот уровень разрешения в библиотеку для желаемых пользователей. Они смогут добавлять/редактировать элементы, но не удалять. Приемник мероприятия кажется излишним для простого изменения разрешений.
Можно использовать пользовательский приемник событий для ловушки онделета, чтобы увидеть, является ли удаляемый текущий элемент папкой, и отменить, если да, представляя сообщение об ошибке во время этого.
Не связан с sharepoint.stackexchange