diff --git a/app/helpers/people_helper.rb b/app/helpers/people_helper.rb index 906bf5d88..f215f4575 100644 --- a/app/helpers/people_helper.rb +++ b/app/helpers/people_helper.rb @@ -27,18 +27,14 @@ module PeopleHelper I18n.l bday, :format => I18n.t('date.formats.birthday_with_year') end end - + def person_link(person, opts={}) opts[:class] ||= "" opts[:class] << " self" if defined?(user_signed_in?) && user_signed_in? && current_user.person == person remote_or_hovercard_link = "/people/#{person.id}".html_safe - if person.local? - "#{h(person.name)}".html_safe - else - "#{h(person.name)}".html_safe - end + "#{h(person.name)}".html_safe end - + def person_image_tag(person, size=nil) size ||= :thumb_small "\"#{h(person.name)}\"".html_safe @@ -49,16 +45,20 @@ module PeopleHelper if opts[:to] == :photos link_to person_image_tag(person, opts[:size]), person_photos_path(person) else - if person.local? - " - #{person_image_tag(person, opts[:size])} - ".html_safe - else - " - #{person_image_tag(person, opts[:size])} - ".html_safe - end + " + #{person_image_tag(person, opts[:size])} + ".html_safe end end + def person_href(person) + if person.local? + username = person.diaspora_handle.split('@')[0] + unless username.include?('.') + return "href='/u/#{person.diaspora_handle.split('@')[0]}'" + end + end + return "href='/people/#{person.id}'" + end + end diff --git a/spec/helpers/people_helper_spec.rb b/spec/helpers/people_helper_spec.rb index 320dcddc5..0fb8e166c 100644 --- a/spec/helpers/people_helper_spec.rb +++ b/spec/helpers/people_helper_spec.rb @@ -58,6 +58,29 @@ describe PeopleHelper do person_link(@person).should_not include("

") end end - + + describe '#person_href' do + before do + @user = Factory(:user) + end + it "links by id if there is a period in the user's username" do + @user.username = "invalid.username" + @user.save(:validate => false).should == true + person = @user.person + person.diaspora_handle = "#{@user.username}@#{AppConfig[:pod_uri].authority}" + person.save! + + person_href(@user.person).should include("href='/people/#{@user.person.id}'") + end + + it 'links by username for a local user' do + person_href(@user.person).should include(@user.username) + end + it 'links by id for a remote person' do + person = Factory(:person) + person_href(person).should include("/people/#{person.id}") + end + end + end