Nejdříve si napíšeme nejjednodušší možnou metodu pro zjištění uživatele a povolení jeho přístupu. Tuto metodu deklarujeme jako privátní a uvedeme ji v řadiči aplikace app/controllers/application.rb.
class ApplicationController < ActionController::Base
…
private
def authenticate
authenticate_or_request_with_http_basic do |username, password|
username == 'admin' && password == 'heslo'
end
end
endPokud máme uživatelů více a nechceme volit složitější řešení. Tedy pokud nám na penvo zakódované účty a hesla vyhovují, můžeme telo metody napsat nepříklad takto.
authenticate_or_request_with_http_basic do |username, password|
( username == 'admin' && password == 'heslo' )
|| ( username == 'ja' && password == 'mojeheslo )
|| …
endV konfiguraci Apache, pokud jej používáme jako WWW server je třeba upravit jedno přepisovací pravidlo.
RewriteRule ^(.*)$ dispatch.fcgi [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]Autentikační fukci pak voláme z řadiče aplikace či z konkrétních řadičů. V následujícím příkladu se kontrola uživatele vztahuje na všechna volání řadiče ProduktyController s výjimkou volání nabidka.
class ProduktyController < ApplicationController
before_filter :authenticate, :except => [:nabidka]
…