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'