SharePoint/MOSS - удаление не отмеченных элементов других людей из списка
Простой сценарий:
Я хочу удалить постраничный макет, который устарел с нашего сайта публикации MOSS. Бывший коллега создал новую страницу, используя этот макет страницы, и он не зарегистрировал ее. Я не могу удалить макет страницы, поскольку его файл ссылается на него. Я не могу "увидеть" файл, потому что он не был зарегистрирован, чтобы удалить его.
Я пробовал SPFolder.Items, SPList.GetItemById(), пару других методов объектной модели. Но SharePoint просто не покажет мне этот элемент. Я даже копался в SPList.GetItem(new SPQuery() { IncludeAllUserPermissions = true; })
Кто-нибудь знает, как избавиться от этого предмета?:-)
5 ответов
Если вы являетесь администратором семейства сайтов, вы также можете принудительно зарегистрировать извлеченный файл другого человека. Хитрость в том, что вы должны знать, в какой библиотеке она находится. Если вы это знаете, вы можете перейти к этой библиотеке, а затем сделать следующее:
- Нажмите Настройки -> Настройки библиотеки документов (или, я полагаю, Настройки списка)
- Нажмите " Управление извлеченными файлами" в столбце " Разрешения и управление".
- Теперь вы должны увидеть список извлеченных файлов, которые вы можете выбрать, а затем нажать " Взять на себя ответственность за выбор" на панели инструментов.
- Сделав это, вы можете проверить файл в себе.
Ответ Abs заставил нас дать нам подсказку - эй, как страница ManageCheckedOutFiles видит файлы, еще не проверенные другими пользователями?
- перейти к ~ раскладкам /ManageCheckedOutFiles.aspx
- наследуется от Microsoft.SharePoint.ApplicationPages.ManageCheckedOutFilesPage
- отражатель 12\CONFIG\BIN\Microsoft.SharePoint.ApplicationPages.dll
- в защищенном void PrepareContent() мы читаем ключевые строки:
- IList checkOutFiles = this.CurrentList.CheckedOutFiles;
Итак, вернемся в нашем коде
SPDocumentLibrary doclib = PublishingWeb.PagesList as SPDocumentLibrary;
foreach(var checkedoutfile in doclib.CheckedOutFiles)
{
checkedoutfile.TakeOverCheckOut();
var file = doclib.GetItemById(checkedoutfile.ListItemId);
file.CheckIn();
}
Спасибо всем:-)
Сначала вы должны иметь права администратора для семейства сайтов. Затем:
- Нажмите на Действия сайта, Управление контентом и структурой.
- Перейдите к макету страницы, которую вы хотите удалить в Галерее главных страниц.
- Поставьте галочку рядом с макетом страницы, которую вы хотите удалить.
- Нажмите Показать связанные ресурсы.
Это должно позволить вам видеть каждую страницу, связанную с этим макетом страницы.
Быстрое и простое решение, не относящееся к SharePoint: если это бывший экс- рабочий, есть ли возможность запросить временное использование его учетной записи с новым паролем, чтобы вы могли войти на портал и проверить его обратно или отменить регистрацию?