do not unnecessary build the feed in users_controller#public when we want to redirect anyway

This commit is contained in:
Arzumy MD 2011-06-08 16:30:56 +08:00
parent 31c081a19f
commit c0f5571795
2 changed files with 14 additions and 26 deletions

View file

@ -1,6 +1,7 @@
# Copyright (c) 2010, Diaspora Inc. This file is # Copyright (c) 2010, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See # licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file. # the COPYRIGHT file.
class UsersController < ApplicationController class UsersController < ApplicationController
require File.join(Rails.root, 'lib/diaspora/ostatus_builder') require File.join(Rails.root, 'lib/diaspora/ostatus_builder')
require File.join(Rails.root, 'lib/diaspora/exporter') require File.join(Rails.root, 'lib/diaspora/exporter')
@ -20,7 +21,6 @@ class UsersController < ApplicationController
end end
def update def update
password_changed = false password_changed = false
if u = params[:user] if u = params[:user]
@user = current_user @user = current_user
@ -52,16 +52,8 @@ class UsersController < ApplicationController
end end
respond_to do |format| respond_to do |format|
format.js{ format.js { render :nothing => true, :status => 204 }
render :nothing => true, :status => 204 format.all { redirect_to password_changed ? new_user_session_path : edit_user_path }
}
format.all{
if password_changed
redirect_to new_user_session_path
else
redirect_to edit_user_path
end
}
end end
end end
@ -74,20 +66,17 @@ class UsersController < ApplicationController
end end
def public def public
user = User.find_by_username(params[:username]) if user = User.find_by_username(params[:username])
if user
posts = StatusMessage.where(:author_id => user.person.id, :public => true).order('created_at DESC')
director = Diaspora::Director.new
ostatus_builder = Diaspora::OstatusBuilder.new(user, posts)
respond_to do |format| respond_to do |format|
format.atom{ format.atom do
posts = StatusMessage.where(:author_id => user.person.id, :public => true).order('created_at DESC')
director = Diaspora::Director.new
ostatus_builder = Diaspora::OstatusBuilder.new(user, posts)
render :xml => director.build(ostatus_builder), :content_type => 'application/atom+xml' render :xml => director.build(ostatus_builder), :content_type => 'application/atom+xml'
} end
format.html{
redirect_to person_path(user.person.id) format.html { redirect_to person_path(user.person.id) }
} end
end
else else
redirect_to root_url, :error => I18n.t('users.public.does_not_exist', :username => params[:username]) redirect_to root_url, :error => I18n.t('users.public.does_not_exist', :username => params[:username])
end end
@ -113,7 +102,6 @@ class UsersController < ApplicationController
@friends ||= [] @friends ||= []
end end
if @step == 3 && @friends.length == 0 if @step == 3 && @friends.length == 0
@user.update_attributes(:getting_started => false) @user.update_attributes(:getting_started => false)
flash[:notice] = I18n.t('users.getting_started.could_not_find_anyone') flash[:notice] = I18n.t('users.getting_started.could_not_find_anyone')

View file

@ -34,7 +34,7 @@ describe UsersController do
end end
it 'redirects to a profile page if html is requested' do it 'redirects to a profile page if html is requested' do
Diaspora::OstatusBuilder.should_not_receive(:new)
get :public, :username => @user.username get :public, :username => @user.username
response.should be_redirect response.should be_redirect
end end
@ -44,7 +44,6 @@ describe UsersController do
before do before do
@params = { :id => @user.id, @params = { :id => @user.id,
:user => { :diaspora_handle => "notreal@stuff.com" } } :user => { :diaspora_handle => "notreal@stuff.com" } }
end end
it "doesn't overwrite random attributes" do it "doesn't overwrite random attributes" do
@ -133,6 +132,7 @@ describe UsersController do
Resque.should_receive(:enqueue).with(Job::DeleteAccount, alice.id) Resque.should_receive(:enqueue).with(Job::DeleteAccount, alice.id)
delete :destroy delete :destroy
end end
it 'locks the user out' do it 'locks the user out' do
delete :destroy delete :destroy
alice.reload.access_locked?.should be_true alice.reload.access_locked?.should be_true