Кажется, обеспечение представления библиотеки SharePoint список/документа (вроде) Возможно с jQuery

Это еще один пост в моем продолжается серия как пользоваться jQuery с SharePoint.
Если вы хотите узнать больше о jQuery, Я очень рекомендую: jQuery в действии Медведь Bibeault и Иегуда Кац.

Одна из первых вещей, котор я думал, как только я начал играть примерно с jQuery, был ли мы могли использовать его для обеспечения представления SharePoint. Ответ «нет» (или по крайней мере, Я не утверждаю, что это возможно). Однако, Это конечно возможно сделать его трудным для людей увидеть особое мнение.

Я начал с моей песочнице окружающей среды при работе на этом. Я писал об этой среде: Быстро и легко: Создайте свой собственный jQuery Песочница для SharePoint.

Для «обеспечения» вид, выполните следующие действия:

  1. Создайте представление, которое требуется защитить. Я сделал это и назвал его «Обеспеченных вид».

    Это, как он выглядит, когда она не «защищена»:

    image

  2. Добавьте веб-часть редактора контента на страницу представления, используя трюк, описанный в статье Песочница (т.е.. Добавить «PageView = Shared&ToolPaneView = 2 "в URL-адрес).
  3. Выяснить, ваш SharePoint _spUserId, следуя указаниям сумасшедший, верить или нет:
    1. Войти в вашей среде SharePoint.
    2. В поле адреса веб-браузера, Тип: «javascript:предупреждение(_spUserId»).
    3. Запишите результат (Это «13» в моем случае).

      image

  4. Добавьте следующий яваскрипт для вашего CEWP в представлении «Код»:

    <сценарий типа =«text/javascript"
        src =".. /.. /jQuery Library/jQuery-1.3.2.min.js">
    </сценарий>
    
    <сценарий типа =«text/javascript">
      $(функция() {
    
        предупреждение(_spUserId);
    
        var theSecuredView = $(' iframe[FilterLink * = обеспеченных % 20View]');
    
        Если ((theSecuredView.length > 0) && (_spUserId == 13))
          $(' iframe[FilterLink * = обеспеченных % 20View]').родитель().родитель().родитель().HTML("<TR bgcolor = красный><ТД>Представление не для вас!</ТД></TR>");
      });
    
    </сценарий>
    

Я включил это предупреждение(_spUserId) линия там, чтобы продемонстрировать, как это не действительно «защита» мнение, но просто делает его более трудным увидеть. Подробнее об этом в момент.

В основном, jQuery ищет iFrame на странице, который имеет атрибут, содержащий «Secured % 20View» в его значение. После того, как он считает это, Мы проверяем, чтобы увидеть, если текущий пользователь является «13». Если это, Мы ходим вверх DOM для <TR> Тег (что я понял, просматривая источник и трассировка) и затем заменить этот тег TR с мое сообщение. Я действительно не знаю, как надежные это (Я очень подозрительно, На самом деле), но он работал в моей песочнице. Если я найду способ лучше, Я блоге об этом. Это результат:

image

Я нажмите кнопку ОК и данных заменяется сообщением большой красный:

image

Как вы можете сказать, как я реализовать это решение «безопасность» должна позволить веб-часть для отображения самого. После его завершения, Замените «не моему для вас его содержание!«сообщение.

Несмотря на тот факт, что это не действительно "обеспеченного '» вид, Это потенциально полезных и некоторые умные работы, Это может быть в конечном итоге защищаемый в более формальном смысле. Основная проблема заключается, что клиент получает все данные и затем, только после того, как она получает данные, Он стирает. Если клиент получает данные, умный пользователь может запретить запуск всех jQuery и увидеть, что он хочет видеть.

Существуют другие недостатки. Этот подход «безопасность» основан покинуть _spUserId. Мы хотели бы, чтобы действительно безопасной на основе полной модели безопасности SharePoint, или по крайней мере по имени пользователя. Это становится все труднее, но я вижу некоторые хорошие вещи, написанные на эту тему, так что я надеюсь, что есть хороший ответ на эту проблему.

Список представлений, сами должны быть обрезаны, Если это возможно. Я не пытался выяснить. Я предполагаю, что это возможно, но не решает проблемы основных безопасности потому, что кто-то может еще просто введите URL-адрес представления, которое они хотят (Если они знали, что это). Однако, Обрезка имеет смысл. Это особенность хорошие удобства и помогает замечать вещи. Если конечный пользователь не знает, что существует мнение событие, они, вероятно, не будет пытаться использовать его. Иногда, что является достаточно хорошим.

С удачей, Я буду иметь больше писать на эту тему со временем.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бирки Technorati: ,,

del.icio.us метки: ,,

Оставь ответ

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *