Commit 767f7d171de42b84621a375f9249a1c9b832ce0a

Fix user activation routing

Commit diff

app/controllers/users_controller.rb

 
2727 current_user.activate
2828 flash[:notice] = "Your account has been activated, welcome!"
2929 end
30 else
31 flash[:error] = "Invalid activation code"
3032 end
3133 redirect_back_or_default('/')
3234 end
toggle raw diff

config/routes.rb

 
2323 map.resource :account, :member => {:password => :get, :update_password => :put} do |account|
2424 account.resources :keys
2525 end
26 map.connect "users/activate/:activation_code", :controller => "users", :action => "activate"
2627 map.resources :users, :requirements => {:id => /.+/}
2728 map.resource :sessions
2829 map.with_options(:controller => "projects", :action => "category") do |project_cat|
6363 session.logout '/logout', :action => 'destroy'
6464 end
6565
66 map.connect "users/activate/:activation_code", :controller => "users", :action => "activate"
67
6866 map.about "about", :controller => "site", :action => "about"
6967
7068 # Install the default route as the lowest priority.
toggle raw diff

spec/controllers/users_controller_spec.rb

 
6666 User.authenticate('moe@example.com', 'test').should == users(:moe)
6767 end
6868
69 it "flashes a message when the activation code is invalid" do
70 get :activate, :activation_code => "fubar"
71 response.should redirect_to('/')
72 flash[:notice].should be(nil)
73 flash[:error].should == "Invalid activation code"
74 User.authenticate('moe@example.com', 'test').should == nil
75 end
76
6977 it "shows the user" do
7078 get :show, :id => users(:johan).login
7179 response.should be_success
8383 it "recognizes routing with dots in it" do
8484 params_from(:get, "/users/j.s")[:id].should == "j.s"
8585 end
86
87 it "recognizes activate routes" do
88 p = params_from(:get, "/users/activate/abc123")
89 p[:controller].should == "users"
90 p[:action].should == "activate"
91 p[:activation_code].should == "abc123"
92 end
8693
8794end
toggle raw diff