Forum: Italian Ruby user group Gestione dati login: principiante in alto mare

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Daneel O. (Guest)
on 2007-02-15 13:17
Buongiorno lista.
Sono un nuovo utente che dovendo realizzare un applicativo via web e
dovendosi imparare un linguaggio dopo vari esperimenti ha deciso che
Ruby è quello più facile da usare :-)
Dovrei fare una cosa del genere: un sito in cui degli utenti abilitati
possano inserire dei dati che poi un operatore gestirà.
Come sistema per l'accesso l'unico che sono stato in grado di far
funzionare alla meno peggio è LoginGenerator (
http://wiki.rubyonrails.com/rails/pages/LoginGenerator ); ho fatto due
tabelle in un database python, una per gli utenti e una per i dati; in
quest'ultima oltre a ciò che inserirà l'utente dovrebbero finirci il
nome dell'utente che li ha imputati ed altre cose che potrebbero servire
presenti sempre tra i dati utente, in modo da permettere all'operatore
di sapere chi ha inserito e poter effettuare delle ricerche, ma non
riesco a capire come fare per recuperare il nome dell'utente loggato e
di conseguenza non riesco a compilare automaticamente i campi in cui
inserire i dati. Come esempio ho seguito questa guida:
http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html , ma
naturalmente mi sono miseramente bloccato. Sicuramente mi sfuggirà una
sciocchezza, ma più provo e più mi impantano.
Avete suggerimenti, esempi, altre guide, pezzi di codice che vi
avanzano, ecc.?

Mi scuso per la banalità del quesito (e anche dei futuri '^_^), ma
partire da zero è sempre dura, portate pazienza... almeno per un po' :-)

Grazie e a presto.
Daneel O.
stb (Guest)
on 2007-02-15 14:20
(Received via mailing list)
Ciao,

prova questo
http://technoweenie.stikipad.com/plugins/show/Acts...

è un plugin per gestire l' accesso utente, e l' utente loggato lo
recuperi
con la variabile current_user

Io e a quanto pare quasi tutti usiamo questo plugin.

Saluti Andrea

----- Original Message -----
From: "Daneel O." <removed_email_address@domain.invalid>
To: <removed_email_address@domain.invalid>
Sent: Thursday, February 15, 2007 12:17 PM
Subject: [ruby-it] Gestione dati login: principiante in alto mare


> quest'ultima oltre a ciò che inserirà l'utente dovrebbero finirci il
> avanzano, ecc.?
>
> Mi scuso per la banalità del quesito (e anche dei futuri '^_^), ma
> partire da zero è sempre dura, portate pazienza... almeno per un po' :-)
>
> Grazie e a presto.
> Daneel O.
>
> --
> Posted via http://www.ruby-forum.com/.
>


--------------------------------------------------------------------------------
Daneel O. (Guest)
on 2007-02-15 16:15
stb wrote:
> Ciao,
>
> prova questo
> http://technoweenie.stikipad.com/plugins/show/Acts...
>
> è un plugin per gestire l' accesso utente, e l' utente loggato lo
> recuperi
> con la variabile current_user

L'avevo provato, ma non capivo come funzionava. Ci sono appena tornato
su, pare funzionare, la pagina di signin (iscrizione dell'account)
funziona, ma la pagina di login non va; ho lasciato il codice standard
che c'è, ma pare che non venga letto: se carico la pagina col browser e
guardo il sorgente, non compare niente, o al massimo ciò che ci metto a
mano io (commenti, titoli, scritte, ecc.), ma non c'è verso che carichi
il codice ruby che dovrebbe creare le caselle per l'inserimento di nome
utente e password... qualcuno ha mai visto cose del genere?
Visto che ci sono, ecco qui che c'è in app/views/account/login.rhtml del
sito:

<% form_tag do -%>
<p><label for="login">Login</label><br/>
<%= text_field_tag 'login' %></p>

<p><label for="password">Password</label><br/>
<%= password_field_tag 'password' %></p>

<!-- Uncomment this if you want this functionality -->
<p><label for="remember_me">Remember me:</label>
<%= check_box_tag 'remember_me' %></p>


<p><%= submit_tag 'Log in' %></p>
<% end -%>

In quanti millimetri di acqua mi sto perdendo? :-)

Daneel O.
stb (Guest)
on 2007-02-15 16:30
(Received via mailing list)
se non sbaglio dovrebbe già farlo lui, probabilmente stai facendo
qualche
casino col db, il plugin si basa sulla tabella users presente nel db,
magari
tu per le tue cose stai usando un' altra tabella, cmq per quanto
riguarda i
form creati un automatico si può ma non li ho mai usati, prova a creare
uno
scaffold giusto per vedere come fa, se non sbaglio li usa.

----- Original Message -----
From: "Daneel O." <removed_email_address@domain.invalid>
To: <removed_email_address@domain.invalid>
Sent: Thursday, February 15, 2007 3:15 PM
Subject: [ruby-it] Re: Gestione dati login: principiante in alto mare


> L'avevo provato, ma non capivo come funzionava. Ci sono appena tornato
> <% form_tag do -%>
>
> <p><%= submit_tag 'Log in' %></p>
> <% end -%>
>
> In quanti millimetri di acqua mi sto perdendo? :-)
>
> Daneel O.
>
> --
> Posted via http://www.ruby-forum.com/.
>


--------------------------------------------------------------------------------
Daneel O. (Guest)
on 2007-02-21 18:34
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 O. (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... '-_-
Ashkey (Guest)
on 2007-02-22 11:19
(Received via mailing list)
Il posto giusto per trovare una buona dose di esempi e snippet di
codice da usare è questo:
http://technoweenie.stikipad.com/plugins/show/User...

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 O.<removed_email_address@domain.invalid> ha scritto:
stb (Guest)
on 2007-02-22 14:21
(Received via mailing list)
http://technoweenie.stikipad.com/plugins/show/Acts...

questo è uno dei plugin più usati, è anche ben documentato e alla fine è
abbastanza facile da usare

PS: se cerchi nell' archivio della mailing troverai già altri topic su
questo argomento.

Saluti Andrea

----- Original Message -----
From: "Ashkey" <removed_email_address@domain.invalid>
To: <removed_email_address@domain.invalid>
Sent: Thursday, February 22, 2007 10:18 AM
Subject: Re: [ruby-it] Re: Re: Gestione dati login: principiante in alto
mare


Il posto giusto per trovare una buona dose di esempi e snippet di
codice da usare è questo:
http://technoweenie.stikipad.com/plugins/show/User...

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 O.<removed_email_address@domain.invalid> ha scritto:
> messo nella giusta strada... avete per caso un pezzetto di codice che vi
> --
> Posted via http://www.ruby-forum.com/.
>
> _______________________________________________
> Ml mailing list
> removed_email_address@domain.invalid
> http://lists.ruby-it.org/mailman/listinfo/ml
>
>


--
Ashkey < Jules Piccotti
_______________________________________________
Ml mailing list
removed_email_address@domain.invalid
http://lists.ruby-it.org/mailman/listinfo/ml
Daneel O. (Guest)
on 2007-02-22 17:53
stb wrote:
> http://technoweenie.stikipad.com/plugins/show/Acts...
>
> questo � uno dei plugin pi� usati, � anche ben documentato e alla fine �
abbastanza facile da usare
>
> PS: se cerchi nell' archivio della mailing troverai gi� altri topic su
> questo argomento.

Visto tutto...


> Il posto giusto per trovare una buona dose di esempi e snippet di
> codice da usare � questo:
> http://technoweenie.stikipad.com/plugins/show/User...

... e anche questo.

Siete troppo ottimisti rigurado le mie capacità, per ora sono incagliato
sul far vedere all'utente solo i suoi dati...
In teoria pensavo di dire una cosa del genere:"Dei dati presenti nella
tabella guarda il campo id utente (c'è il campo users_id che contiene
l'id dell'utente che inserisce il dato, per l'appunto) e confrontalo con
l'id dell'utente loggato (lo recupero da current_user.id); se sono
uguali, mostra i dati presenti (la tabella dati è fatta pressapoco con
questi campi: id, users_id, nome_utente_inserente_dato, informazione1,
informazione2, ... informazione_n).

Una volta che so come tradurre in codice tutto ciò sono a posto, ma
finora sono solo riuscito a capire come NON fare. Ho trovato un po' di
esempi di selezione di dati, ma nessuno con una logica simile e andare
per tentativi ad un certo punto è deleterio. Per chi si sta chiedendo
perché non mi studi prima un po' di teoria, procedo così perché capisco
di più vedendo le cose... specialmente se ci sbatto contro frontalmente
:-)

Per la parte dell'amministratore, ci penso appena il lato utente è a
posto.

A presto.
Daneel O. (che si sente molto luser '^_^)
Luca M. (Guest)
on 2007-02-22 18:17
(Received via mailing list)
Daneel O. wrote:
> In teoria pensavo di dire una cosa del genere:"Dei dati presenti nella
> tabella guarda il campo id utente (c'è il campo users_id che contiene
> l'id dell'utente che inserisce il dato, per l'appunto) e confrontalo con
> l'id dell'utente loggato (lo recupero da current_user.id); se sono
> uguali, mostra i dati presenti (la tabella dati è fatta pressapoco con
> questi campi: id, users_id, nome_utente_inserente_dato, informazione1,
> informazione2, ... informazione_n).
>
dunque dunque...

se hai seguito acts_as_authenticated hai in @current_user l'utente
loggato.

quindi se nella tua tabella (chiamiamola items) hai uno user_id, nei
tuoi modelli avrai

class Item < ActiveRecord::Base
   belongs_to :user
end

class Item < ActiveRecord::Base
   has_many :items
end

allora nel controller potrai fare:

@items_utente = @current_user.items

@items_utente conterra tutti gli items dell'utente

questo e' tutto quello che serve ed e' anche la forma consigliata per
accedere agli oggetti "protetti" i.e. posseduti da un utente.

spero che aiuti!
Luca

--

Web:   http://spazidigitali.com - http://thetyper.com
Email mailto://removed_email_address@domain.invalid
Skype callto://l.mearelli
This topic is locked and can not be replied to.