Здається, забезпечення SharePoint список/документ бібліотека переглядів (Сортувати) Це можливо з jQuery

Це ще один пост в моєму поточної серії про те, як використовувати jQuery з SharePoint.
Якщо ви хочете дізнатися більше про jQuery, Я настійно рекомендую: jQuery в дії Ведмідь Bibeault і Ієгуда Кац.

Одна з перших речей, які я думав, як тільки я почав грати з jQuery, було, чи ми могли б використовувати для забезпечення подання SharePoint. Відповідь "ні" (або, принаймні, Я не стверджую, можна). Однак, Звичайно можна зробити це важко для людей, щоб побачити певного подання.

Я почав з мого пісочницю навколишнього середовища при роботі з цього. Я писав про що навколишнє середовище: Швидкий і простий: Створіть свій власний jQuery пісочниці для SharePoint.

"Забезпечити" подання, виконайте такі дії.:

  1. Створити подання, щоб забезпечити. Я зробив це і назвав його "Забезпечені видом".

    Це, як він виглядає, коли він не "захищений":

    image

  2. Додати веб-частини редактора вмісту в поданні сторінки за допомогою трюк, описані у статті пісочниці (тобто. Додати "переглядах = спільний&ToolPaneView = 2" за URL-адресою).
  3. З'ясувати _spUserId вашого SharePoint, виконавши такі божевільні, вірити чи ні:
    1. Увійти у вашому середовищі SharePoint.
    2. У полі адреси веб-браузера, тип: "javascript:оповіщення(_spUserId").
    3. Запис результат (Це "13" в моєму випадку).

      image

  4. Наступні javascript додати на ваші CEWP у поданні коду:

    <скрипт типу ="текст/javascript"
        src ="../../JQuery Library/Jquery-1.3.2.min.js">
    </сценарій>
    
    <скрипт типу ="текст/javascript">
      $(функція() {
    
        оповіщення(_spUserId);
    
        VAR theSecuredView = $(' iframe[FilterLink * = забезпечені % 20View]');
    
        Якщо ((theSecuredView.length > 0) && (_spUserId = = 13))
          $(' iframe[FilterLink * = забезпечені % 20View]').батьків().батьків().батьків().HTML("<TR bgcolor = червоний><TD>Немає подання для вас!</TD></TR>");
      });
    
    </сценарій>
    

Я включив це попередження(_spUserId) лінія продемонструвати, як це не там дійсно є "забезпечення" подання, але просто робить його більш важким, щоб побачити. Докладніше про це в хвилину.

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

image

Я натискаю кнопку ОК і дані замінюються великий червоний повідомлення:

image

Як ви можете сказати, шляху, я вже реалізації цього рішення "безпеки" є дозволити веб-частини, щоб зробити сам. Після того, як вона закінчується, Я перезаписати його зміст з моєї "немає подання для вас!"повідомлення.

Незважаючи на те, що це не дійсно є "забезпечених '" подання, Це потенційно корисний і деякі розумні роботи, Врешті-решт може бути захищеним в більш формальної сенсі. Фундаментальні питання в тому, що клієнт отримує всі дані і потім, тільки після того, як вона отримує дані, Це призводить до видалення його. Якщо клієнт отримує дані, розумний користувач може запобігти працює на всіх jQuery і бачити те, що він/вона хоче бачити.

Є й інші недоліки. Такий підхід «безпека» побудована на базі за _spUserId. Ми хотіли б дійсно безпечною на основі повної модель безпеки SharePoint, або, принаймні, ім'я користувача. Що стає все важче, але я бачу, що деякі хороші речі на цю тему написано, так що я сподіваюся, що є хороший відповідь на цю проблему.

До списку виглядів, самі повинні бути обрізані, Якщо це можливо. Я не пробував, щоб з'ясувати, що. Я припускаю, що це можливо, але дійсно не вирішить проблему фундаментальних безпеки, тому що хтось міг ще тільки Введіть URL-вважає, що вони хочуть (Якби вони знали, що це). Однак, підрізання має сенс. Це функція, хороший юзабіліті і це допомагає затуманити речей. Якщо кінцевий користувач не знає, що існує перегляд подій, вони, ймовірно, не буде намагатися використовувати його. Іноді, Це достатньо.

Якщо пощастить, Я ще писати на цю тему з часом.

</кінець>

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

Йди за мною на Twitter в http://www.twitter.com/pagalvin

Бірки Technorati: ,,

del.icio.us Мітки: ,,

Дати відповідь

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