diff --git a/app/controllers/spree/admin/users_controller.rb b/app/controllers/spree/admin/users_controller.rb index 4611095a9c..34714ba233 100644 --- a/app/controllers/spree/admin/users_controller.rb +++ b/app/controllers/spree/admin/users_controller.rb @@ -33,8 +33,8 @@ module Spree @user.spree_roles = roles.compact_blank.collect{ |r| Spree::Role.find(r) } end - flash.now[:success] = Spree.t(:created_successfully) - render :edit + flash[:success] = Spree.t(:created_successfully) + redirect_to edit_admin_user_path(@user) else render :new end @@ -50,9 +50,11 @@ module Spree @user.spree_roles = roles.compact_blank.collect{ |r| Spree::Role.find(r) } end - flash.now[:success] = update_message + flash[:success] = update_message + redirect_to edit_admin_user_path(@user) + else + render :edit end - render :edit end protected diff --git a/spec/controllers/spree/admin/users_controller_spec.rb b/spec/controllers/spree/admin/users_controller_spec.rb index d2de374982..96e7cc4df4 100644 --- a/spec/controllers/spree/admin/users_controller_spec.rb +++ b/spec/controllers/spree/admin/users_controller_spec.rb @@ -22,6 +22,13 @@ describe Spree::Admin::UsersController do it "allows admins to update a user's show api key view" do user.spree_roles << Spree::Role.find_or_create_by(name: 'admin') spree_put :update, id: test_user.id, user: { show_api_key_view: true } + expect(response).to redirect_to spree.edit_admin_user_path(test_user) + end + + it "re-renders the edit form if error" do + user.spree_roles << Spree::Role.find_or_create_by(name: 'admin') + spree_put :update, id: test_user.id, user: { password: "blah", password_confirmation: "" } + expect(response).to render_template :edit end