Il 10/12/2010 15:01, Dino D. ha scritto:
- voglio un area di login ( /login ) in cui l’amministratore si logga
per poter gestire i post e le category, quindi non ho bisogno di
registrare gli utenti, devo gestire solo l’amministratore.
io partire da questo articolo:
http://asciicasts.com/episodes/160-authlogic
ho sempre usato authlogic per queste cose. se poi hai bisogno di un
sistema pi
avanzato (registrazioni, conferme, reminders, etc…), allora vai con
devise
- vorrei che le azioni index edit new destroy di ogni controller fossero
ammesse solo all’utente loggato
nell’articolo che ti ho linkato spiega come ottenere l’utente loggato
(current_user), per controllare che ci sia un utente loggato, basta
aggiungere
questo metodo in ApplicationController:
…
def authorize
@user_session ||= UserSession.find
unless (@user_session && @user_session.record)
flash[:error] = “Devi essere autenticato.”
redirect_to login_path
end
end
…
infine, devi inserire questa macro:
before_filter :authorize
decidi tu dove metterla:
-
singolarmente su ciascun controller
-
in ApplicationController in modo da applicarlo per default a tutti i
controllers della tua applicazione, andando poi a scremare eventuali
azioni/controllers che ritieni pubblici, usando la direttiva:
skip_before_filter :authorize
personalmente uso sempre il secondo metodo, in questo modo posso solo
rischiare
di negare l’accesso al pubblico, ma non rischio di offrire una pagina di
amministrazione a chi non autorizzato ( un ragionamento che volgarmente
chiamo “blocca tutto tranne…”)
- vorrei (una volta che l’utente si loggato) far comparire un div nel
layout con i link per le action index dei due controller
l’articolo sopra spiega anche questo
ho visto che ci sono diversi plugin, authlogic, devise,
restful_authentication ma quale si adatta meglio alle mie esigenze?
quale il pi semplice da installare e gestire?
ho provato solo authlogic e devise, nel tuo caso sicuramente opterei per
authlogic, oppure la soluzione che ti ha indicato Gabriele Renzi
voi come vi comportereste in questo caso?
se solo un blog con il quale fare esperimenti ed evitare di duplicare
troppo
codice, potresti creare un BlogController che si occupa di offrire:
* un layout per la grafica da mostrare al pubblico
* la index dei posts (es. esempio.com)
* la show di un singolo Post (es. esempio.com/id-o-permalink-post)
* i posts di una singola Category (es.
esempio.com/category/id-o-permalink-categoria)
i controllers e le views generati con lo scaffold, li userai per
l’amministrazione, lasciando il layout di default, magari aggiungendo
una barra
links per spostarti tra i Posts e le Categories, o fare logout.
pi semplice e veloce di cos, non mi viene in mente altro
ciao,
A.
–
http://twitter.com/apeacox