Показать веб-часть на основе разрешений - PullRequest
0 голосов
/ 18 мая 2010

Итак, я собираю данные из списка объявлений sharepoint 2007 и отображаю их на другом сайте. Мне нужно убедиться, что созданная мной веб-часть не отображается для людей, у которых нет прав доступа к сайту, с которого я получаю данные. Как «отключить» веб-часть, если у пользователя нет прав?

Я пробовал this.enabled = false в событии onload (), но не сработало.

Ответы [ 4 ]

1 голос
/ 19 мая 2010
protected override void Render(HtmlTextWriter output) {
    if (i have permissions) {
      base.Render(output);
    }
}

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

0 голосов
/ 29 апреля 2018

В SharePoint 2013. В другой версии обновите идентификатор и текст соответственно. Вы можете скрыть веб-часть (и) для пользователей, не имеющих разрешения, с помощью этого простого кода jQuery:

$( "td:contains('There are no documents in this view.')" ).parentsUntil( ".ms-webpartzone-cell" ).hide();

Например, у меня есть веб-часть просмотра списка на странице. Разрешения применяются в списке. Если у пользователя нет разрешения, веб-часть покажет сообщение:

Нет документов в этом представлении.

Теперь я поместил веб-часть «Редактор скриптов» поверх всех веб-частей и вставил этот скрипт:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
       $(document).ready(function(){
            $( "td:contains('There are no documents in this view.')" ).parentsUntil( ".ms-webpartzone-cell" ).hide();
       });
</script>
0 голосов
/ 18 мая 2010

Чтобы полностью скрыть веб-часть, установите для свойства Hidden веб-части значение true. Мы придерживаемся этого подхода, чтобы скрыть веб-часть на основе наличия / отсутствия некоторых свойств в профиле пользователя.

Скрытая веб-часть все еще находится на странице и принимает участие в жизненном цикле страницы, но невидима для пользователей. Если у вас по-прежнему возникают проблемы с ошибками прав доступа, попробуйте перехватить конкретное исключение и использовать его в качестве теста, чтобы скрыть деталь или нет.

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

0 голосов
/ 18 мая 2010

Я не уверен, что вы подразумеваете под "отключением" веб-части. Ваша часть может просто не отображать никакой разметки, если текущий пользователь не имеет прав на просмотр списка объявлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...