Ajax Russia : Аякс по-русски

Свежие новости из мира IT

Плагины для Rails: restful_authentication

railsПродолжаю тему про плагины для Ruby on Rails. На этот раз расскажу про плагин, без которого не обходится ни один мой проект - restful_authentication. Ruby on Rails, как известно, не содержит никакой системы для управления юзерами, ролями и аутентификацией. Я думаю это верное решение. Универсальной системы не напишешь и всегда кто то будет недоволен. Поэтому для этой задачи появилось несколько плагинов.

Мой любимый плагин это restful_authentication. Плагин очень прост в установке. Через 5 минут будет готова безопасная и удобная система для регистрации и логина.

  1. Установка:
    RUBY:
    1. ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/

    После этого в папке с проектом надо запустить следующее:

    RUBY:
    1. ruby script/generate authenticated user sessions --include-activation

    Эта команда сгенерирует нужные модели и миграции.
    --include-activation это опциональный параметр, на случай если хотите проверить емайл юзера. В этом случае, после регистрации, юзеру будет выслан линк для активации.

  2. Следующий шаг, это добавление двух строк в config/routes.rb

    RUBY:
    1. map.resources :users
    2. map.resource  :session

    И наконец добавление observer-a в environment.rb

    RUBY:
    1. config.active_record.observers = :user_observer

    Он будет следить за регистрацией юзеров и высылать емайлы. Настройки для емайлов можно подправить в user_mailer.rb

  3. Использование:
    Тут всё просто. В контроллерах и View появляются некоторые полезные функции:
    logged_in? проверяет залогинен ли пользователь.
    current_user возвращает объект залогиненного юзера.

    Кроме этого контроллеры теперь можно защищать логином:

    RUBY:
    1. before_filter :login_required

    Теперь если юзер попытается зайти на страницу, его сначала средиректит на формуляр для логина.

del.icio.us Забобрить!

1 Comment so far

  1. Петрович June 1st, 2008 14:58

    Захватывающе

Leave a reply