From d407be036e20e332db2bc33954cb749a26b1e212 Mon Sep 17 00:00:00 2001 From: Maxwell Salzberg Date: Fri, 29 Jul 2011 18:19:55 -0700 Subject: [PATCH] i am not a number! include username in the main url of a local user! --- app/controllers/people_controller.rb | 11 ++++++++++- app/helpers/application_helper.rb | 27 +++++++++++++++++++++------ config/routes.rb | 2 +- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb index 6f5c627b7..389729cca 100644 --- a/app/controllers/people_controller.rb +++ b/app/controllers/people_controller.rb @@ -61,7 +61,7 @@ class PeopleController < ApplicationController end def show - @person = Person.where(:id => params[:id]).first + @person = find_person_from_id_or_username if @person && @person.remote? && !user_signed_in? render :file => "#{Rails.root}/public/404.html", :layout => false, :status => 404 return @@ -156,4 +156,13 @@ class PeopleController < ApplicationController Resque.enqueue(Job::SocketWebfinger, current_user.id, account, opts) end + def find_person_from_id_or_username + if params[:id].present? + Person.where(:id => params[:id]).first + elsif params[:username].present? + User.find_by_username(params[:username]).person + else + nil + end + end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4121bdde5..936e9ce64 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -3,6 +3,9 @@ # the COPYRIGHT file. module ApplicationHelper + + + def how_long_ago(obj) timeago(obj.created_at) end @@ -48,9 +51,15 @@ module ApplicationHelper def person_link(person, opts={}) opts[:class] ||= "" opts[:class] << " self" if defined?(user_signed_in?) && user_signed_in? && current_user.person == person - " - #{h(person.name)} -".html_safe + if person.local? + " + #{h(person.name)} + ".html_safe + else + " + #{h(person.name)} + ".html_safe + end end def hard_link(string, path) @@ -62,9 +71,15 @@ module ApplicationHelper if opts[:to] == :photos link_to person_image_tag(person, opts[:size]), person_photos_path(person) else - " - #{person_image_tag(person)} -".html_safe + if person.local? + " + #{person_image_tag(person)} + ".html_safe + else + " + #{person_image_tag(person)} + ".html_safe + end end end diff --git a/config/routes.rb b/config/routes.rb index 42ff03d3f..d1f8260cf 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -154,7 +154,7 @@ Diaspora::Application.routes.draw do get 'mobile/toggle', :to => 'home#toggle_mobile', :as => 'toggle_mobile' - + get ':username' => 'people#show', :as => 'user_profile' # Startpage root :to => 'home#show'