Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## users_controller_test.rb
- def test_should_login_user_valid
- params = {:user => {:username => users(:valid).username, :password => users(:valid).password}}
- post :login, params
- assert_redirected_to dashboard_url
- end
- ## users_controller.rb
- def login
- if request.post?
- @user = User.authenticate(params[:user][:username], MD5.new(params[:user][:password]).hexdigest)
- unless @user.nil?
- session[:user] = @user
- flash[:notice] = "Successfully logged in. Welcome #{session[:user].username}"
- redirect_to dashboard_url
- else
- flash.now[:warning] = "You could not be logged in with the provided credentials."
- end
- end
- end
- ## users/_login.html.erb
- <% form_for(:user) do |u| %>
- <%= u.label :username %><%= u.text_field :username %><br />
- <%= u.label :password %><%= u.password_field :password %><br />
- <br />
- <%= u.submit "Login", :disable_with => "Logging in..." %>
- <br />
- <% end %>
- ## models/user.rb
- def self.authenticate(username, password)
- find(:first, :conditions => ["username = ? AND password = ?", username, password])
- end
- ## fixtures/users.yml
- valid:
- username: ValidUser1
- password: <%= MD5.new('test').hexdigest %>
- email: validEmail@email.com
- created_at: <%= 3.months.ago.to_s(:db) %>
- updated_at: <%= 2.weeks.ago.to_s(:db) %>
Add Comment
Please, Sign In to add comment