Привет, ребята, я делаю личный сайт с блогом. Я хотел бы, чтобы определенные записи были защищены паролем, как я видел по крайней мере в одном WordPress. Это не важно. Но мне было интересно, есть ли что-то действительно гибкое, что позволит показывать скрытый текст после публикации? Например, в общедоступном сообщении может быть сказано: «Сегодня я встретил своего друга Боба за кофе», но после ввода личного пароля некоторый текст, помеченный как личный, будет выглядеть так: «Боб воняет!!» Кроме того, мне нужны разные уровни конфиденциальности для друзей, членов семьи и т. д. Не знаю, как связать все это вместе, но я даже не знаю много о мире блогов в Ruby — есть ли что-нибудь достаточно расширяемое, чтобы я мог собрать эти функции самостоятельно, не изобретая велосипед?
универсальный блог для ruby on rails, защита паролем?
Ответы (3)
Существует несколько плагинов авторизации для Rails, которые имеют вспомогательные функции представления, которые отображают эту разметку только тогда, когда у пользователя есть соответствующий доступ. Таким образом, член семьи мог видеть, как Боб воняет!, но гость мог видеть только общедоступную публикацию. Javascript, вероятно, является излишним для этого, если только вы не хотите показывать скрытые данные без обновления страницы.
acl_system2 имеет метод limited_to. У CanCan есть банка? просмотрите вспомогательный метод. Вот некоторые другие гемы/плагины авторизации.
Предполагается, что библиотека Cancan Райана Бейтса представляет собой гибкое решение для авторизации, которое может быть вам полезно при реализации различных уровней конфиденциальности: http://github.com/ryanb/cancan
Что касается реализации как таковой - я думаю, что это слишком общий вопрос, чтобы на него можно было ответить здесь, и вам, как разработчику программного обеспечения, решать, какой подход выбрать.
я не знаю о каких-либо уже существующих библиотеках (если они вообще есть) для вышеупомянутой функциональности; но я чувствую, что с учетом вышеуказанного требования; сначала вам понадобится структура разрешений; для управления разрешениями на детальном уровне.
Представление должно быть более простым, поскольку в него встроены обратные вызовы. (т.е. в HTML) с использованием Jquery (или любого другого JS-фреймворка) и JSON. После успешной аутентификации пользователя вы можете выполнить обратные вызовы для извлечения содержимого, которое будет отображаться с помощью json, и добавить его к отмеченным элементам div. ИЛИ вы можете полностью получить «контролируемый» контент и показать его пользователю.