Это еще один пост в моем продолжается серия как пользоваться jQuery с SharePoint.
Если вы хотите узнать больше о jQuery, Я очень рекомендую: jQuery в действии Медведь Bibeault и Иегуда Кац.
Одна из первых вещей, котор я думал, как только я начал играть примерно с jQuery, был ли мы могли использовать его для обеспечения представления SharePoint. Ответ «нет» (или по крайней мере, Я не утверждаю, что это возможно). Однако, Это конечно возможно сделать его трудным для людей увидеть особое мнение.
Я начал с моей песочнице окружающей среды при работе на этом. Я писал об этой среде: Быстро и легко: Создайте свой собственный jQuery Песочница для SharePoint.
Для «обеспечения» вид, выполните следующие действия:
- Создайте представление, которое требуется защитить. Я сделал это и назвал его «Обеспеченных вид».
Это, как он выглядит, когда она не «защищена»:
- Добавьте веб-часть редактора контента на страницу представления, используя трюк, описанный в статье Песочница (т.е.. Добавить «PageView = Shared&ToolPaneView = 2 "в URL-адрес).
- Выяснить, ваш SharePoint _spUserId, следуя указаниям сумасшедший, верить или нет:
- Войти в вашей среде SharePoint.
- В поле адреса веб-браузера, Тип: «javascript:предупреждение(_spUserId»).
- Запишите результат (Это «13» в моем случае).
- Добавьте следующий яваскрипт для вашего 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 с мое сообщение. Я действительно не знаю, как надежные это (Я очень подозрительно, На самом деле), но он работал в моей песочнице. Если я найду способ лучше, Я блоге об этом. Это результат:
Я нажмите кнопку ОК и данных заменяется сообщением большой красный:
Как вы можете сказать, как я реализовать это решение «безопасность» должна позволить веб-часть для отображения самого. После его завершения, Замените «не моему для вас его содержание!«сообщение.
Несмотря на тот факт, что это не действительно "обеспеченного '» вид, Это потенциально полезных и некоторые умные работы, Это может быть в конечном итоге защищаемый в более формальном смысле. Основная проблема заключается, что клиент получает все данные и затем, только после того, как она получает данные, Он стирает. Если клиент получает данные, умный пользователь может запретить запуск всех jQuery и увидеть, что он хочет видеть.
Существуют другие недостатки. Этот подход «безопасность» основан покинуть _spUserId. Мы хотели бы, чтобы действительно безопасной на основе полной модели безопасности SharePoint, или по крайней мере по имени пользователя. Это становится все труднее, но я вижу некоторые хорошие вещи, написанные на эту тему, так что я надеюсь, что есть хороший ответ на эту проблему.
Список представлений, сами должны быть обрезаны, Если это возможно. Я не пытался выяснить. Я предполагаю, что это возможно, но не решает проблемы основных безопасности потому, что кто-то может еще просто введите URL-адрес представления, которое они хотят (Если они знали, что это). Однако, Обрезка имеет смысл. Это особенность хорошие удобства и помогает замечать вещи. Если конечный пользователь не знает, что существует мнение событие, они, вероятно, не будет пытаться использовать его. Иногда, что является достаточно хорошим.
С удачей, Я буду иметь больше писать на эту тему со временем.
</конец>
Подписаться на мой блог.
Следуй за мной по щебетать на http://www.twitter.com/pagalvin