Навигация
Задача Е: администрирование
Чем заняться на досуге
несколько заданий, которые вы можете попробовать выполнить самостоя-неяьно.
• Попробуйте приспособить код оформления заказа из предыдущей главы под использование одного действия вместо двух.
11.5. Что нам удалось сделать
К завершению этого шага мы сделали следующее:
Выход
В нашем макете администрирования в меню боковой панели имеется пункт вы¬хода. Его реализация в контроллере авторизации вполне обычна.
Листинг файла app/controllers/login controller, rb
def logout
session[:user_id] = nil
flash[:notice] = "Вы вышли из административной области " redirect_to(:action => "login" )
end
Давайте оставим последнего администратора в покое
Жш удаления пользователя довольно прост. Действие, принадлежащее контроллеру агторизации, delete_user, вызывается, когда удаляемый пользователь опреде-лгя по параметру i d. Все, что оно должно сделать, выглядит следующим образом:user = User.find(params[:id]) user.destroy
end
redirect_to(:action => :list_users)
end
Вывод списка пользователей
Добавление функции вывода списка пользователей к контроллеру авториза-пл труда не составит. Действие контроллера помещает список в переменную эк-«ашляра.
Лктинг файла app/controllers/login_controller.rb
•ef list_users
#all_users = User.find(:all)
ff(C
11.4. Шаг Е4: боковая панель и расширение административных функций
Начнем с создания боковой панели. Из опыта работы с контроллером заказов мы знаем, что нам нужно создать модель. Поскольку она будет создана для контрол¬лера admin, ее место в файле admin.rhtml, который должен находиться в каталоге! app/views/layouts.
Листинг файла app/views/tayouts/admin.rhtml
11.3. Шаг ЕЗ: ограничение доступа
Мы хотим закрыть доступ людям, не прошедшим авторизацию и не имею¬щим прав администратора, к административным страницам нашего сайта. Ока¬зывается, это нетрудно сделать, если воспользоваться возможностями фильтра Rails.
11.2. Шаг E2: авторизация
Что означает установка системы авторизации для администраторов нашего ма-ехзнна?
• Нам нужно предоставить форму, позволяющую им вводить свои имена поль¬зователей и пароли.
Администрирование пользователей
А сделаем мы это, высматривая во входящем запросе HTTP-метод. Если он врндет в результате работы ссылки , мы будем рассматривать его как GET-запрос. Если вместо этого в нем содержатся данные формы (что про¬изойдет, когда пользователь щелкнет на кнопке передачи данных), мы будем рас¬сматривать его как POST.
11.1. Шаг Е1: добавление пользователей
Качнем с создания модели и таблицы базы данных, в которых будут содержаться ■мена пользователей и хэшированные пароли наших администраторов. Вместо наго чтобы хранить пароли в виде обыкновенного текста, мы пропустим их через преобразователь SHA1, выдающий 160-разрядный хэш.