users: add /settings page.
Add /settings page and link to it instead of /users/:id/edit.
This commit is contained in:
@@ -13,6 +13,16 @@ class UsersController < ApplicationController
|
||||
respond_with(@user)
|
||||
end
|
||||
|
||||
def settings
|
||||
@user = CurrentUser.user
|
||||
|
||||
if @user.is_anonymous?
|
||||
redirect_to new_session_path
|
||||
else
|
||||
respond_with(@user, template: "users/edit")
|
||||
end
|
||||
end
|
||||
|
||||
def index
|
||||
if params[:name].present?
|
||||
@user = User.find_by_name!(params[:name])
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
<li><%= link_to "Sign up", new_user_path %></li>
|
||||
<% else %>
|
||||
<li><%= link_to "Profile", profile_path %></li>
|
||||
<li><%= link_to "Settings", edit_user_path(CurrentUser.user) %></li>
|
||||
<li><%= link_to "Settings", settings_path %></li>
|
||||
<% if CurrentUser.is_gold? %>
|
||||
<li><%= link_to "Change name", new_user_name_change_request_path %></li>
|
||||
<% end %>
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
<% if @user && !@user.new_record? && !CurrentUser.user.is_anonymous? %>
|
||||
<li>|</li>
|
||||
<% if @user.id == CurrentUser.user.id %>
|
||||
<%= subnav_link_to "Settings", edit_user_path(CurrentUser.user) %>
|
||||
<%= subnav_link_to "Profile", profile_path %>
|
||||
<%= subnav_link_to "Settings", settings_path %>
|
||||
<%= subnav_link_to "Messages #{CurrentUser.user.dmail_count}", dmails_current_folder_path %>
|
||||
|
||||
<% if !@user.is_platinum? %>
|
||||
|
||||
@@ -411,6 +411,7 @@ Rails.application.routes.draw do
|
||||
get "/user/login" => redirect("/sessions/new")
|
||||
get "/user_record" => redirect {|params, req| "/user_feedbacks?search[user_id]=#{req.params[:user_id]}"}
|
||||
get "/profile", to: "users#profile", as: :profile
|
||||
get "/settings", to: "users#settings", as: :settings
|
||||
|
||||
get "/wiki" => redirect {|params, req| "/wiki_pages?page=#{req.params[:page]}"}
|
||||
get "/wiki/index" => redirect {|params, req| "/wiki_pages?page=#{req.params[:page]}"}
|
||||
|
||||
@@ -135,21 +135,27 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
||||
end
|
||||
|
||||
context "edit action" do
|
||||
setup do
|
||||
@user = create(:user)
|
||||
end
|
||||
|
||||
should "render" do
|
||||
get_auth edit_user_path(@user), @user
|
||||
assert_response :success
|
||||
end
|
||||
end
|
||||
|
||||
context "update action" do
|
||||
setup do
|
||||
@user = create(:user)
|
||||
context "settings action" do
|
||||
should "render" do
|
||||
get_auth settings_path, @user
|
||||
|
||||
assert_response :success
|
||||
assert_select "#page h1", "Settings"
|
||||
end
|
||||
|
||||
should "redirect anonymous users to the sign in page" do
|
||||
get settings_path
|
||||
assert_redirected_to new_session_path
|
||||
end
|
||||
end
|
||||
|
||||
context "update action" do
|
||||
should "update a user" do
|
||||
put_auth user_path(@user), @user, params: {:user => {:favorite_tags => "xyz"}}
|
||||
@user.reload
|
||||
|
||||
Reference in New Issue
Block a user