SharePoint/MOSS - удаление не отмеченных элементов других людей из списка

Простой сценарий:

Я хочу удалить постраничный макет, который устарел с нашего сайта публикации MOSS. Бывший коллега создал новую страницу, используя этот макет страницы, и он не зарегистрировал ее. Я не могу удалить макет страницы, поскольку его файл ссылается на него. Я не могу "увидеть" файл, потому что он не был зарегистрирован, чтобы удалить его.

Я пробовал SPFolder.Items, SPList.GetItemById(), пару других методов объектной модели. Но SharePoint просто не покажет мне этот элемент. Я даже копался в SPList.GetItem(new SPQuery() { IncludeAllUserPermissions = true; })

Кто-нибудь знает, как избавиться от этого предмета?:-)

5 ответов

Решение

Если вы являетесь администратором семейства сайтов, вы также можете принудительно зарегистрировать извлеченный файл другого человека. Хитрость в том, что вы должны знать, в какой библиотеке она находится. Если вы это знаете, вы можете перейти к этой библиотеке, а затем сделать следующее:

  1. Нажмите Настройки -> Настройки библиотеки документов (или, я полагаю, Настройки списка)
  2. Нажмите " Управление извлеченными файлами" в столбце " Разрешения и управление".
  3. Теперь вы должны увидеть список извлеченных файлов, которые вы можете выбрать, а затем нажать " Взять на себя ответственность за выбор" на панели инструментов.
  4. Сделав это, вы можете проверить файл в себе.

Ответ Abs заставил нас дать нам подсказку - эй, как страница ManageCheckedOutFiles видит файлы, еще не проверенные другими пользователями?

  1. перейти к ~ раскладкам /ManageCheckedOutFiles.aspx
  2. наследуется от Microsoft.SharePoint.ApplicationPages.ManageCheckedOutFilesPage
  3. отражатель 12\CONFIG\BIN\Microsoft.SharePoint.ApplicationPages.dll
  4. в защищенном void PrepareContent() мы читаем ключевые строки:
  5. 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();
}

Спасибо всем:-)

Сначала вы должны иметь права администратора для семейства сайтов. Затем:

  1. Нажмите на Действия сайта, Управление контентом и структурой.
  2. Перейдите к макету страницы, которую вы хотите удалить в Галерее главных страниц.
  3. Поставьте галочку рядом с макетом страницы, которую вы хотите удалить.
  4. Нажмите Показать связанные ресурсы.

Это должно позволить вам видеть каждую страницу, связанную с этим макетом страницы.

Быстрое и простое решение, не относящееся к SharePoint: если это бывший экс- рабочий, есть ли возможность запросить временное использование его учетной записи с новым паролем, чтобы вы могли войти на портал и проверить его обратно или отменить регистрацию?

Попробуйте SharePoint Sushi из codeplex.

Удачи.

Другие вопросы по тегам