none
Тэги в Sharepont 2010 RRS feed

  • Вопрос

  • Здравствуйте.

    На портале SP существует механизм под названием "Тэги". при назначении тэгов на интересующие ресурсы данные тэги появляются в облаке тэгов в личном узле. Причем, щелкая по своим тэгам, я справа вижу ссылку на ресурс, которому этот тэг присвоен. Но на страницах других пользователей я могу видеть только само облако тэгов, а при щелчке по ним ничего не происходит и высвечивается только название самого тэга. Тэги не помечались как личные.

    Это такая "фишка" работы SP? или у меня что-то неправильно настроено и из-за этого я не вижу ресурсы, на которые назначены тэги у других пользователей?

    P.S.: Возможно, я не совсем правильно понимаю механизм и предназначение тэгов в SP...


    http://social.technet.microsoft.com

    17 марта 2015 г. 13:05

Ответы

  • Такое же поведение в SP2013.
    А теперь чуточку о том, что там происходит.
    За показ элементов отвечает страница (thoughts.aspx), которая наследуется от класса ThoughtViewerContol.
    При клике по тегу идёт postback через updatepanel, там уже вызывается событие  _ctlTag_TagSelectedChanged.
    В нём происходит загрузка информации о тегах (т.е. url, на который ведёт тэг).
    У объекта _ctlItems (класс  ThoughtItemList, который отвечает за загрузку и вывод нужной информации) вызывается метод UpdateManuall().
    Собственно после ещё нескольких вызовов происходит обращение (в методе GetTags) к Sql (через SocialTagManager), где вызывается stored procedure (dbo.proc_SocialTags_GetForUser). В нёй (процедуре) всё ок. Возвращается информация с учётом private tags. А вот в самом конце метода GetTags выполняется следующий код:
    if (!user.IsSelf)
    {
        list6 = base.SecurityTrim<SocialTag>(list6);
    }
    Где объект user - это "хозяин тэгов". Метод IsSelf проверяет, является ли пользователь (user) текущим пользователем, если нет, то выполняется "обрезка" тех тэгов. Вот из-за неё и не отображется.
    К сожалению, почему так сделано, пока ответить не готов )




     

    [custom.development]

    • Помечено в качестве ответа Kirill_R 18 марта 2015 г. 10:07
    17 марта 2015 г. 16:52
  • Углубляясь в тему, нашёл, что фильтрация того что показывать, а что нет происходит в классе PluggableSocialSecurityTrimmer.
    Оказывается, что в SharePoint есть такой механизм (компонент) Security Trimmer.
    О нём можно почитать здесь - Privacy and security implications of social tagging (SharePoint Server 2010)

    В этой статье есть чёткое определение того, что будет показано, а что нет:
    When you select a tag in the tag cloud, activities that are associated with the tag are displayed in the Activities section. If you are viewing someone else’s My Profile page, the activities are security trimmed. Therefore, you could see a tag that did not appear to have any activities associated with it.

    Т.е. перед выводом информации будет применён security trimmer. Он (trimmer) собственно произведёт фильтрацию по какому-то правилу. По какому? Тут же в статье даётся ответ - на основе прав страниц, данные о которых получает Search Service во время обхода.

    As the search service crawls Web pages, it records the permissions that are required to view each Web page. The security trimmer uses this information to determine whether a given user has permission to view a specific Web page. If the security trimmer has insufficient information to determine whether a user has permission to view a Web page, it errs on the side of caution and reports that the user does not have permission to view the Web page. As a result, if the search service has not crawled a Web page, activities that relate to that Web page will not be displayed.

    Таким образом, осмелюсь предположить, что у вас не настроен Search Service Crawl.
    Кстати, в этой же статье есть примечание о том, что когда вы смотрите свою страницу, то Security Trimmer не применяется. Это объясняет, почему вы видите свои активити (инфу по тегам) даже, если не настроен Search Service.


    [custom.development]

    • Помечено в качестве ответа Kirill_R 18 марта 2015 г. 10:07
    18 марта 2015 г. 7:18

Все ответы

  • Добрый день, А у вас есть доступ на просмотр этих ресурсов?
    17 марта 2015 г. 14:27
  • Такое же поведение в SP2013.
    А теперь чуточку о том, что там происходит.
    За показ элементов отвечает страница (thoughts.aspx), которая наследуется от класса ThoughtViewerContol.
    При клике по тегу идёт postback через updatepanel, там уже вызывается событие  _ctlTag_TagSelectedChanged.
    В нём происходит загрузка информации о тегах (т.е. url, на который ведёт тэг).
    У объекта _ctlItems (класс  ThoughtItemList, который отвечает за загрузку и вывод нужной информации) вызывается метод UpdateManuall().
    Собственно после ещё нескольких вызовов происходит обращение (в методе GetTags) к Sql (через SocialTagManager), где вызывается stored procedure (dbo.proc_SocialTags_GetForUser). В нёй (процедуре) всё ок. Возвращается информация с учётом private tags. А вот в самом конце метода GetTags выполняется следующий код:
    if (!user.IsSelf)
    {
        list6 = base.SecurityTrim<SocialTag>(list6);
    }
    Где объект user - это "хозяин тэгов". Метод IsSelf проверяет, является ли пользователь (user) текущим пользователем, если нет, то выполняется "обрезка" тех тэгов. Вот из-за неё и не отображется.
    К сожалению, почему так сделано, пока ответить не готов )




     

    [custom.development]

    • Помечено в качестве ответа Kirill_R 18 марта 2015 г. 10:07
    17 марта 2015 г. 16:52
  • Да, доступ есть. Теги создавались на общедоступные ресурсы

    http://social.technet.microsoft.com

    18 марта 2015 г. 6:30
  • Спасибо за подробный ответ. 

    Очень странное решение отображать только названия тегов и не показывать их содержимое...

    Исправить это, как я понимаю, нельзя, т.к. данный механизм заложен в ядро системы?


    http://social.technet.microsoft.com

    18 марта 2015 г. 6:37
  • Углубляясь в тему, нашёл, что фильтрация того что показывать, а что нет происходит в классе PluggableSocialSecurityTrimmer.
    Оказывается, что в SharePoint есть такой механизм (компонент) Security Trimmer.
    О нём можно почитать здесь - Privacy and security implications of social tagging (SharePoint Server 2010)

    В этой статье есть чёткое определение того, что будет показано, а что нет:
    When you select a tag in the tag cloud, activities that are associated with the tag are displayed in the Activities section. If you are viewing someone else’s My Profile page, the activities are security trimmed. Therefore, you could see a tag that did not appear to have any activities associated with it.

    Т.е. перед выводом информации будет применён security trimmer. Он (trimmer) собственно произведёт фильтрацию по какому-то правилу. По какому? Тут же в статье даётся ответ - на основе прав страниц, данные о которых получает Search Service во время обхода.

    As the search service crawls Web pages, it records the permissions that are required to view each Web page. The security trimmer uses this information to determine whether a given user has permission to view a specific Web page. If the security trimmer has insufficient information to determine whether a user has permission to view a Web page, it errs on the side of caution and reports that the user does not have permission to view the Web page. As a result, if the search service has not crawled a Web page, activities that relate to that Web page will not be displayed.

    Таким образом, осмелюсь предположить, что у вас не настроен Search Service Crawl.
    Кстати, в этой же статье есть примечание о том, что когда вы смотрите свою страницу, то Security Trimmer не применяется. Это объясняет, почему вы видите свои активити (инфу по тегам) даже, если не настроен Search Service.


    [custom.development]

    • Помечено в качестве ответа Kirill_R 18 марта 2015 г. 10:07
    18 марта 2015 г. 7:18
  • Проверил настройки службы поиска. Все настройки в порядке. обход происходит по расписанию...

    http://social.technet.microsoft.com

    18 марта 2015 г. 8:43
  • оффтоп: в SharePoint Online и вовсе убрали этот функционал - пруф.

    [custom.development]

    18 марта 2015 г. 9:12
  • Сейчас заметил, что у одного пользователя один тег отображается, а у остальных также видно только название.

    http://social.technet.microsoft.com

    18 марта 2015 г. 12:31
  • Нашел еще одну особенность работы блогов: при создании совершенно нового тега и добавления его в интересы личного профиля, остальные пользователи начинают видеть содержимое данного тега у этого пользователя.

    При добавлении в личные интересы уже созданных тегов, они по-прежнему остаются не видны остальным пользователям.

    В общем, теперь еще менее понятен механизм работы тегов.


    http://social.technet.microsoft.com

    19 марта 2015 г. 11:20