Can't Get a Combined Create Account and Login Working

Hi -

I'm having problems getting a my dual purpose create account and login
page working.

If I try to login, the index method runs and throws errors based on
some checks I'm running from my user model. I'm pretty sure that the
problem is in the model, but I don't know how to tell rails to
conditionally validate based on which action I'm calling...

-- user Model --

#...
  validates_presence_of :username
  validates_presence_of :email
  validates_uniqueness_of :username
  validates_uniqueness_of :email
  attr_accessor :password_confirmation
  validates_confirmation_of :password
#...

-- UserController --

def index
  @user = User.new(params[:user])
  if request.post? and @user.save
    flash.now[:notice] = "Welcome #{@user.username} - you are all
set"
    @user = User.new
  end
end

def login
  session[:user_id] = nil
  session[:user_username] = nil
  if request.post?
    user = User.authenticate(params[:username], params[:password])
    if user
      session[:user_id] = user.id
      session[:user_username] = user.username
      flash[:notice] = "Welcome back #{user.username}!"
      redirect_to(:action => "index")
    else
      flash.now[:notice] = "Invalid user/password combination"
    end
  end
end

-- index.html.erb --

<div class="">
  <%= error_messages_for 'user' %>
  <fieldset>
    <legend>create account</legend>
    <% form_for :user do |form| %>
      <p>
        <label for="user_name">username:</label>
        <%= form.text_field :username, :size => 40 %>
      </p>
      <p>
        <label for="user_email">e-mail:</label>
        <%= form.text_field :email, :size => 40 %>
      </p>
      <p>
        <label for="user_password">password:</label>
        <%= form.password_field :password, :size => 40 %>
      </p>
      <p>
        <label for="user_password_confirmation">confirm:</label>
        <%= form.password_field :password_confirmation, :size => 40 %>
      </p>

      <%= submit_tag "create account", :controller => 'user', :action
=> 'index' %>
    <% end %>
  </fieldset>
</div>

<div class="">
  <fieldset>
  <legend>sign in</legend>
    <% form_tag do %>
      <p>
        <label for="user_name">username:</label>
        <%= text_field_tag :username, params[:user_name] %>
      </p>
      <p>
      <label for="password">password:</label>
        <%= password_field_tag :password, params[:password] %>
      </p>
      <p>
        <%= submit_tag "sign in", :controller => 'user', :action =>
'login' %>
      </p>
    <% end %>
  </fieldset>
</div>

Thanks in advance!