From 5fa5361e3d70e4c7c0c9b554a60e255487c64a45 Mon Sep 17 00:00:00 2001 From: Gabe Berke-Williams Date: Tue, 15 Jun 2010 00:11:30 -0400 Subject: [PATCH] Add UserSessions scaffold with AuthLogic model --- app/controllers/user_sessions_controller.rb | 34 ++++++++++++++ app/helpers/user_sessions_helper.rb | 2 + app/views/layouts/user_sessions.html.erb | 17 +++++++ app/views/user_sessions/edit.html.erb | 20 +++++++++ app/views/user_sessions/index.html.erb | 22 +++++++++ app/views/user_sessions/new.html.erb | 19 ++++++++ app/views/user_sessions/show.html.erb | 13 ++++++ config/routes.rb | 2 + .../20100615040754_create_user_sessions.rb | 14 ++++++ db/schema.rb | 9 +++- test/fixtures/user_sessions.yml | 9 ++++ .../user_sessions_controller_test.rb | 45 +++++++++++++++++++ .../unit/helpers/user_sessions_helper_test.rb | 4 ++ test/unit/user_session_test.rb | 8 ++++ 14 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 app/controllers/user_sessions_controller.rb create mode 100644 app/helpers/user_sessions_helper.rb create mode 100644 app/views/layouts/user_sessions.html.erb create mode 100644 app/views/user_sessions/edit.html.erb create mode 100644 app/views/user_sessions/index.html.erb create mode 100644 app/views/user_sessions/new.html.erb create mode 100644 app/views/user_sessions/show.html.erb create mode 100644 db/migrate/20100615040754_create_user_sessions.rb create mode 100644 test/fixtures/user_sessions.yml create mode 100644 test/functional/user_sessions_controller_test.rb create mode 100644 test/unit/helpers/user_sessions_helper_test.rb create mode 100644 test/unit/user_session_test.rb diff --git a/app/controllers/user_sessions_controller.rb b/app/controllers/user_sessions_controller.rb new file mode 100644 index 0000000..82374fc --- /dev/null +++ b/app/controllers/user_sessions_controller.rb @@ -0,0 +1,34 @@ +class UserSessionsController < ApplicationController + # GET /user_sessions/new + # GET /user_sessions/new.xml + def new + @user_session = UserSession.new + + respond_to do |format| + format.html # new.html.erb + format.xml { render :xml => @user_session } + end + end + + # POST /user_sessions + # POST /user_sessions.xml + def create + @user_session = UserSession.new(params[:user_session]) + + if @user_session.save + flash[:notice] = "Successfully logged in." + redirect_to root_url + else + render :action => "new" + end + end + + # DELETE /user_sessions/1 + # DELETE /user_sessions/1.xml + def destroy + @user_session = UserSession.find # no arguments -> current session + @user_session.destroy + flash[:notice] = "Successfully logged out." + redirect_to root_url + end +end diff --git a/app/helpers/user_sessions_helper.rb b/app/helpers/user_sessions_helper.rb new file mode 100644 index 0000000..2018402 --- /dev/null +++ b/app/helpers/user_sessions_helper.rb @@ -0,0 +1,2 @@ +module UserSessionsHelper +end diff --git a/app/views/layouts/user_sessions.html.erb b/app/views/layouts/user_sessions.html.erb new file mode 100644 index 0000000..01555ab --- /dev/null +++ b/app/views/layouts/user_sessions.html.erb @@ -0,0 +1,17 @@ + + + + + + UserSessions: <%= controller.action_name %> + <%= stylesheet_link_tag 'scaffold' %> + + + +

<%= flash[:notice] %>

+ +<%= yield %> + + + diff --git a/app/views/user_sessions/edit.html.erb b/app/views/user_sessions/edit.html.erb new file mode 100644 index 0000000..fe634d7 --- /dev/null +++ b/app/views/user_sessions/edit.html.erb @@ -0,0 +1,20 @@ +

Editing user_session

+ +<% form_for(@user_session) do |f| %> + <%= f.error_messages %> + +

+ <%= f.label :username %>
+ <%= f.text_field :username %> +

+

+ <%= f.label :password %>
+ <%= f.text_field :password %> +

+

+ <%= f.submit 'Update' %> +

+<% end %> + +<%= link_to 'Show', @user_session %> | +<%= link_to 'Back', user_sessions_path %> \ No newline at end of file diff --git a/app/views/user_sessions/index.html.erb b/app/views/user_sessions/index.html.erb new file mode 100644 index 0000000..a460498 --- /dev/null +++ b/app/views/user_sessions/index.html.erb @@ -0,0 +1,22 @@ +

Listing user_sessions

+ + + + + + + +<% @user_sessions.each do |user_session| %> + + + + + + + +<% end %> +
UsernamePassword
<%=h user_session.username %><%=h user_session.password %><%= link_to 'Show', user_session %><%= link_to 'Edit', edit_user_session_path(user_session) %><%= link_to 'Destroy', user_session, :confirm => 'Are you sure?', :method => :delete %>
+ +
+ +<%= link_to 'New user_session', new_user_session_path %> \ No newline at end of file diff --git a/app/views/user_sessions/new.html.erb b/app/views/user_sessions/new.html.erb new file mode 100644 index 0000000..a49c2eb --- /dev/null +++ b/app/views/user_sessions/new.html.erb @@ -0,0 +1,19 @@ +

New user_session

+ +<% form_for(@user_session) do |f| %> + <%= f.error_messages %> + +

+ <%= f.label :username %>
+ <%= f.text_field :username %> +

+

+ <%= f.label :password %>
+ <%= f.text_field :password %> +

+

+ <%= f.submit 'Create' %> +

+<% end %> + +<%= link_to 'Back', user_sessions_path %> \ No newline at end of file diff --git a/app/views/user_sessions/show.html.erb b/app/views/user_sessions/show.html.erb new file mode 100644 index 0000000..61ef240 --- /dev/null +++ b/app/views/user_sessions/show.html.erb @@ -0,0 +1,13 @@ +

+ Username: + <%=h @user_session.username %> +

+ +

+ Password: + <%=h @user_session.password %> +

+ + +<%= link_to 'Edit', edit_user_session_path(@user_session) %> | +<%= link_to 'Back', user_sessions_path %> \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 61b0298..266a2c9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,6 @@ ActionController::Routing::Routes.draw do |map| + map.resources :user_sessions + map.resources :users map.resources :shows, :has_many => :episodes diff --git a/db/migrate/20100615040754_create_user_sessions.rb b/db/migrate/20100615040754_create_user_sessions.rb new file mode 100644 index 0000000..ec043c0 --- /dev/null +++ b/db/migrate/20100615040754_create_user_sessions.rb @@ -0,0 +1,14 @@ +class CreateUserSessions < ActiveRecord::Migration + def self.up + create_table :user_sessions do |t| + t.string :username + t.string :password + + t.timestamps + end + end + + def self.down + drop_table :user_sessions + end +end diff --git a/db/schema.rb b/db/schema.rb index 002bb29..3180d27 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -9,7 +9,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20100615034818) do +ActiveRecord::Schema.define(:version => 20100615040754) do create_table "episodes", :force => true do |t| t.string "name" @@ -26,6 +26,13 @@ t.datetime "updated_at" end + create_table "user_sessions", :force => true do |t| + t.string "username" + t.string "password" + t.datetime "created_at" + t.datetime "updated_at" + end + create_table "users", :force => true do |t| t.string "username" t.string "email" diff --git a/test/fixtures/user_sessions.yml b/test/fixtures/user_sessions.yml new file mode 100644 index 0000000..5de354e --- /dev/null +++ b/test/fixtures/user_sessions.yml @@ -0,0 +1,9 @@ +# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html + +one: + username: MyString + password: MyString + +two: + username: MyString + password: MyString diff --git a/test/functional/user_sessions_controller_test.rb b/test/functional/user_sessions_controller_test.rb new file mode 100644 index 0000000..2475765 --- /dev/null +++ b/test/functional/user_sessions_controller_test.rb @@ -0,0 +1,45 @@ +require 'test_helper' + +class UserSessionsControllerTest < ActionController::TestCase + test "should get index" do + get :index + assert_response :success + assert_not_nil assigns(:user_sessions) + end + + test "should get new" do + get :new + assert_response :success + end + + test "should create user_session" do + assert_difference('UserSession.count') do + post :create, :user_session => { } + end + + assert_redirected_to user_session_path(assigns(:user_session)) + end + + test "should show user_session" do + get :show, :id => user_sessions(:one).to_param + assert_response :success + end + + test "should get edit" do + get :edit, :id => user_sessions(:one).to_param + assert_response :success + end + + test "should update user_session" do + put :update, :id => user_sessions(:one).to_param, :user_session => { } + assert_redirected_to user_session_path(assigns(:user_session)) + end + + test "should destroy user_session" do + assert_difference('UserSession.count', -1) do + delete :destroy, :id => user_sessions(:one).to_param + end + + assert_redirected_to user_sessions_path + end +end diff --git a/test/unit/helpers/user_sessions_helper_test.rb b/test/unit/helpers/user_sessions_helper_test.rb new file mode 100644 index 0000000..20dabdf --- /dev/null +++ b/test/unit/helpers/user_sessions_helper_test.rb @@ -0,0 +1,4 @@ +require 'test_helper' + +class UserSessionsHelperTest < ActionView::TestCase +end diff --git a/test/unit/user_session_test.rb b/test/unit/user_session_test.rb new file mode 100644 index 0000000..334c3c2 --- /dev/null +++ b/test/unit/user_session_test.rb @@ -0,0 +1,8 @@ +require 'test_helper' + +class UserSessionTest < ActiveSupport::TestCase + # Replace this with your real tests. + test "the truth" do + assert true + end +end