# Login

**URL:** <https://www.ruby-forum.com/t/login/65819>\
**Category:** IT\
**Created:** [August 21, 2006, 6:04pm UTC](https://www.ruby-forum.com/t/login/65819 "2006-08-21T18:04:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![gnugnaman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a9a28c/32.png) [@gnugnaman](https://www.ruby-forum.com/u/gnugnaman)\
**Post date:** [August 21, 2006, 6:04pm UTC](https://www.ruby-forum.com/t/login/65819/1 "2006-08-21T18:04:57Z")

</div>

Ciao a tutti, ho un problema con login. Seguendo l’esempio del libro  
“Sviluppare applicazioni con ROR” ho creato un logincontroller,l’azione  
di login viene eseguita (il confronto con la tabella USER del DB viene  
fatto bene) solo che invece di darmi il redirect a una pagina di INDEX  
mi redirecta di nuovo al login…credo sia un problema relativo al  
numero della session (nel file di log ogni operazione porta un diverso  
numero di session), ma non so davvero come agire…qualcuno puÃ² darmi  
una mano (?) Grazie, Giovanno.

---

<div class="post-metadata">

**Author:** ![gnugnaman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a9a28c/32.png) [@gnugnaman](https://www.ruby-forum.com/u/gnugnaman)\
**Post date:** [August 21, 2006, 8:03pm UTC](https://www.ruby-forum.com/t/login/65819/2 "2006-08-21T20:03:39Z")

</div>

Ti mando un esempio funzionante di controller e index.rhtml di una mia  
applicazione:

class LoginController \< ApplicationController  
layout “admin”

before\_filter :authorize, :except =\> :login

def index  
@total\_requirements = Requirement.count  
@pending\_requirements = Requirement.count\_pending  
@charged\_requirements = Requirement.count\_charged  
@discharged\_requirements = Requirement.count\_discharged  
@today\_requirements = Requirement.count\_today  
flash[:notice] = “Status richieste”  
end

def add\_user  
if request.get?  
@user = User.new  
flash[:notice] = ‘Aggiungi amministratore.’  
else  
@user = User.new(params[:user])  
if @user.save  
redirect\_to\_index(“User #{@user.name} created”)  
end  
end  
end

def login  
if request.get?  
session[:user\_id] = nil  
@user = User.new  
else  
@user = User.new(params[:user])  
logged\_in\_user = @user.try\_to\_login

```
  if logged_in_user
    session[:user_id] = logged_in_user.id
    redirect_to(:action => "index")
  else
    flash[:notice] = "Combinazione user/password non valida"
  end
end

```

end  
end

questo e’ index.rhtml in view\login

### \<%= link\_to 'Tutte le richieste pervenute', :controller =\> 'admin',:action =\> 'list' %\> \<%= @total\_requirements %\>

### \<%= link\_to 'Richieste soddisfatte:', :controller =\> 'admin',:action =\> 'list\_discharged' %\> \<%= @discharged\_requirements %\>

### \<%= link\_to 'Richieste in esame:', :controller =\> 'admin',:action =\> 'list\_charged' %\> \<%= @charged\_requirements %\>

### \<%= link\_to 'Richieste pendenti:', :controller =\> 'admin',:action =\> 'list\_pending' %\> \<%= @pending\_requirements %\>

### \<%= link\_to 'Richieste pervenute oggi:', :controller =\> 'admin',:action =\> 'list\_today' %\> \<%= @today\_requirements %\>

B.M.

---

<div class="post-metadata">

**Author:** ![gnugnaman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/a9a28c/32.png) [@gnugnaman](https://www.ruby-forum.com/u/gnugnaman)\
**Post date:** [August 24, 2006, 9:25pm UTC](https://www.ruby-forum.com/t/login/65819/3 "2006-08-24T21:25:41Z")

</div>

Grazie Biagio,vedo solo ora la tua risposta.Anche io ho preso il  
login\_controller dal libro “Agile Developement etc…” perÃ² se io vado  
su [http://localhost:3000/login/login](http://localhost:3000/login/login) e inserisco un username e password  
validi (registrati su database) vengo reistradato alla pagina di login  
stessa. Credo che questo dipenda dalla authorize definita  
nell’application.rb. Inoltre io non ho un controller admin, ma i tre  
controller delle mie tre classi. Vorrei che una volta loggato venissi  
reistradato su contact\cerca ad esempio. Dal file di log noto che ogni  
azione Ã¨ registrata con un numero di sessione differente. Credo che sia  
questo che impedisce a rails di riconoscere che la sessione appartiene  
ad un utente correttamente loggato. Se puoi aiutarmi te ne sarei grato.  
Ciao,Giovanni.

Biagio M. wrote:

> Ti mando un esempio funzionante di controller e index.rhtml di una mia  
> applicazione:
> 
> class LoginController \< ApplicationController  
> layout “admin”
> 
> before\_filter :authorize, :except =\> :login
> 
> def index  
> @total\_requirements = Requirement.count  
> @pending\_requirements = Requirement.count\_pending  
> @charged\_requirements = Requirement.count\_charged  
> @discharged\_requirements = Requirement.count\_discharged  
> @today\_requirements = Requirement.count\_today  
> flash[:notice] = “Status richieste”  
> end
> 
> def add\_user  
> if request.get?  
> @user = User.new  
> flash[:notice] = ‘Aggiungi amministratore.’  
> else  
> @user = User.new(params[:user])  
> if @user.save  
> redirect\_to\_index(“User #{@user.name} created”)  
> end  
> end  
> end
> 
> def login  
> if request.get?  
> session[:user\_id] = nil  
> @user = User.new  
> else  
> @user = User.new(params[:user])  
> logged\_in\_user = @user.try\_to\_login
> 
> ```
> if logged_in_user
> session[:user_id] = logged_in_user.id
> redirect_to(:action => "index")
> else
> flash[:notice] = "Combinazione user/password non valida"
> end
> end
> 
> ```
> 
> end  
> end
> 
> questo e’ index.rhtml in view\login
> 
> ### \<%= link\_to 'Tutte le richieste pervenute', :controller =\> 'admin',:action =\> 'list' %\> \<%= @total\_requirements %\>
> 
> ### \<%= link\_to 'Richieste soddisfatte:', :controller =\> 'admin',:action =\> 'list\_discharged' %\> \<%= @discharged\_requirements %\>
> 
> ### \<%= link\_to 'Richieste in esame:', :controller =\> 'admin',:action =\> 'list\_charged' %\> \<%= @charged\_requirements %\>
> 
> ### \<%= link\_to 'Richieste pendenti:', :controller =\> 'admin',:action =\> 'list\_pending' %\> \<%= @pending\_requirements %\>
> 
> ### \<%= link\_to 'Richieste pervenute oggi:', :controller =\> 'admin',:action =\> 'list\_today' %\> \<%= @today\_requirements %\>
> 
> B.M.
