[ruby-it] Re: Re: Gestione dati login: principiante in alto mare
Ashkey
ashkey80 a gmail.com
Gio 22 Feb 2007 10:18:56 CET
Il posto giusto per trovare una buona dose di esempi e snippet di
codice da usare è questo:
http://technoweenie.stikipad.com/plugins/show/User+Authentication
Io personalmente ho implementato nel model User il metodo "is_admin?"
dove controllo se l'utente dispone di questa qualifica (a te decidere
se è data da una tabella esterna ruoli, una colonna col flag adeguato
ecc.).
Se vuoi permettere l'accesso alle action "edit" e "create" del
controller "profile" ai soli admin, ad esempio, puoi fare così:
def authorized?(user)
user.is_admin? || !['edit', 'create'].include?(action_name)
end
Rispondendo in modo diretto alla tua domanda, potresti fare qualcosa
del genere nella view:
<h3>User profile</h3>
<% if logged_in? %>
<% for column in User.content_columns %>
<% if @user.is_admin? || !@user.send(column.name).empty? #
all'admin mostro tutte le colonne, all'user solo quelle non vuote %>
<p>
<b><%= column.human_name %>:</b> <%=h @user.send(column.name) %>
</p>
<% end %>
<% end %>
<% else %>
<p>Devi loggarti per visualizzare il tuo profilo</p>
<% end %>
Ma sinceramente, troverei più sicuro fare due view diverse ed usare il
primo metodo per definiri chi può accedere a cosa.
Il 21/02/07, Daneel Olivaw<daneel.olivaw.r a gmail.com> ha scritto:
> Innanzitutto grazie per le risposte :-)
> Il problema della pagina di login era dovuto alla versione vecchia di
> rails (se non erro) che faceva a pugni con act_as_authenticated. Ho
> trovato la soluzione, ma non ricordo il link '^_^
>
> Torno alla carica con un'altra cosa sempre legata all'utente: dovrei
> fare in modo che ogni utente si veda i suoi dati inseriti, mentre un
> amministratore può vederli tutti. Per ora mi basterebbe capire la prima
> parte; la seconda (amministratore che vede tutto) penso venga di
> conseguenza con un controllo in più.
> Sto cercando esempi in giro, ma finora non ne ho trovati che mi hanno
> messo nella giusta strada... avete per caso un pezzetto di codice che vi
> avanza che permette di mostrare i dati inseriti dall'utente, o c'è un
> sito con esempi ben commentati?
> Prometto che appena frego la carta di credito al capo compro i libri :-)
>
> Grazie per la pazienza e a presto :-)
> Daneel Olivaw (che comincia a capirci qualcosa... forse...)
>
> P.s.: mi sono appena accorto dell'immensa castronata scritta nel primo
> post: il database è in mysql, non in python... '-_-
>
> --
> Posted via http://www.ruby-forum.com/.
>
> _______________________________________________
> Ml mailing list
> Ml a lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml
>
>
--
Ashkey < Jules Piccotti
Maggiori informazioni sulla lista
Ml