Commit a2e3c514432adfd89f15ed23eeb7dfb95cfc12b4
1 parent
e36907e3
Exists in
master
and in
29 other branches
profile: be case insensitive on urls
Showing
3 changed files
with
31 additions
and
27 deletions
Show diff stats
config/routes.rb
@@ -56,37 +56,37 @@ Noosfero::Application.routes.draw do | @@ -56,37 +56,37 @@ Noosfero::Application.routes.draw do | ||
56 | match 'search(/:action(/*category_path))', :controller => 'search' | 56 | match 'search(/:action(/*category_path))', :controller => 'search' |
57 | 57 | ||
58 | # events | 58 | # events |
59 | - match 'profile/:profile/events_by_day', :controller => 'events', :action => 'events_by_day', :profile => /#{Noosfero.identifier_format_in_url}/ | ||
60 | - match 'profile/:profile/events_by_month', :controller => 'events', :action => 'events_by_month', :profile => /#{Noosfero.identifier_format_in_url}/ | ||
61 | - match 'profile/:profile/events/:year/:month/:day', :controller => 'events', :action => 'events', :year => /\d*/, :month => /\d*/, :day => /\d*/, :profile => /#{Noosfero.identifier_format_in_url}/ | ||
62 | - match 'profile/:profile/events/:year/:month', :controller => 'events', :action => 'events', :year => /\d*/, :month => /\d*/, :profile => /#{Noosfero.identifier_format_in_url}/ | ||
63 | - match 'profile/:profile/events', :controller => 'events', :action => 'events', :profile => /#{Noosfero.identifier_format_in_url}/ | 59 | + match 'profile/:profile/events_by_day', :controller => 'events', :action => 'events_by_day', :profile => /#{Noosfero.identifier_format_in_url}/i |
60 | + match 'profile/:profile/events_by_month', :controller => 'events', :action => 'events_by_month', :profile => /#{Noosfero.identifier_format_in_url}/i | ||
61 | + match 'profile/:profile/events/:year/:month/:day', :controller => 'events', :action => 'events', :year => /\d*/, :month => /\d*/, :day => /\d*/, :profile => /#{Noosfero.identifier_format_in_url}/i | ||
62 | + match 'profile/:profile/events/:year/:month', :controller => 'events', :action => 'events', :year => /\d*/, :month => /\d*/, :profile => /#{Noosfero.identifier_format_in_url}/i | ||
63 | + match 'profile/:profile/events', :controller => 'events', :action => 'events', :profile => /#{Noosfero.identifier_format_in_url}/i | ||
64 | 64 | ||
65 | # catalog | 65 | # catalog |
66 | - match 'catalog/:profile', :controller => 'catalog', :action => 'index', :profile => /#{Noosfero.identifier_format_in_url}/, :as => :catalog | 66 | + match 'catalog/:profile', :controller => 'catalog', :action => 'index', :profile => /#{Noosfero.identifier_format_in_url}/i, :as => :catalog |
67 | 67 | ||
68 | # invite | 68 | # invite |
69 | - match 'profile/:profile/invite/friends', :controller => 'invite', :action => 'invite_friends', :profile => /#{Noosfero.identifier_format_in_url}/ | ||
70 | - match 'profile/:profile/invite/:action', :controller => 'invite', :profile => /#{Noosfero.identifier_format_in_url}/ | 69 | + match 'profile/:profile/invite/friends', :controller => 'invite', :action => 'invite_friends', :profile => /#{Noosfero.identifier_format_in_url}/i |
70 | + match 'profile/:profile/invite/:action', :controller => 'invite', :profile => /#{Noosfero.identifier_format_in_url}/i | ||
71 | 71 | ||
72 | # feeds per tag | 72 | # feeds per tag |
73 | - match 'profile/:profile/tags/:id/feed', :controller => 'profile', :action =>'tag_feed', :id => /.+/, :profile => /#{Noosfero.identifier_format_in_url}/, :as => :tag_feed | 73 | + match 'profile/:profile/tags/:id/feed', :controller => 'profile', :action =>'tag_feed', :id => /.+/, :profile => /#{Noosfero.identifier_format_in_url}/i, :as => :tag_feed |
74 | 74 | ||
75 | # profile tags | 75 | # profile tags |
76 | - match 'profile/:profile/tags/:id', :controller => 'profile', :action => 'content_tagged', :id => /.+/, :profile => /#{Noosfero.identifier_format_in_url}/ | ||
77 | - match 'profile/:profile/tags(/:id)', :controller => 'profile', :action => 'tags', :profile => /#{Noosfero.identifier_format_in_url}/ | 76 | + match 'profile/:profile/tags/:id', :controller => 'profile', :action => 'content_tagged', :id => /.+/, :profile => /#{Noosfero.identifier_format_in_url}/i |
77 | + match 'profile/:profile/tags(/:id)', :controller => 'profile', :action => 'tags', :profile => /#{Noosfero.identifier_format_in_url}/i | ||
78 | 78 | ||
79 | # profile search | 79 | # profile search |
80 | - match 'profile/:profile/search', :controller => 'profile_search', :action => 'index', :profile => /#{Noosfero.identifier_format_in_url}/ | 80 | + match 'profile/:profile/search', :controller => 'profile_search', :action => 'index', :profile => /#{Noosfero.identifier_format_in_url}/i |
81 | 81 | ||
82 | # comments | 82 | # comments |
83 | - match 'profile/:profile/comment/:action/:id', :controller => 'comment', :profile => /#{Noosfero.identifier_format_in_url}/ | 83 | + match 'profile/:profile/comment/:action/:id', :controller => 'comment', :profile => /#{Noosfero.identifier_format_in_url}/i |
84 | 84 | ||
85 | # public profile information | 85 | # public profile information |
86 | - match 'profile/:profile(/:action(/:id))', :controller => 'profile', :action => 'index', :id => /[^\/]*/, :profile => /#{Noosfero.identifier_format_in_url}/, :as => :profile | 86 | + match 'profile/:profile(/:action(/:id))', :controller => 'profile', :action => 'index', :id => /[^\/]*/, :profile => /#{Noosfero.identifier_format_in_url}/i, :as => :profile |
87 | 87 | ||
88 | # contact | 88 | # contact |
89 | - match 'contact/:profile/:action(/:id)', :controller => 'contact', :action => 'index', :id => /.*/, :profile => /#{Noosfero.identifier_format_in_url}/ | 89 | + match 'contact/:profile/:action(/:id)', :controller => 'contact', :action => 'index', :id => /.*/, :profile => /#{Noosfero.identifier_format_in_url}/i |
90 | 90 | ||
91 | # map balloon | 91 | # map balloon |
92 | match 'map_balloon/:action/:id', :controller => 'map_balloon', :id => /.*/ | 92 | match 'map_balloon/:action/:id', :controller => 'map_balloon', :id => /.*/ |
@@ -98,8 +98,8 @@ Noosfero::Application.routes.draw do | @@ -98,8 +98,8 @@ Noosfero::Application.routes.draw do | ||
98 | ## Controllers that are profile-specific (for profile admins ) | 98 | ## Controllers that are profile-specific (for profile admins ) |
99 | ###################################################### | 99 | ###################################################### |
100 | # profile customization - "My profile" | 100 | # profile customization - "My profile" |
101 | - match 'myprofile/:profile', :controller => 'profile_editor', :action => 'index', :profile => /#{Noosfero.identifier_format_in_url}/ | ||
102 | - match 'myprofile/:profile/:controller(/:action(/:id))', :controller => Noosfero.pattern_for_controllers_in_directory('my_profile'), :profile => /#{Noosfero.identifier_format_in_url}/, :as => :myprofile | 101 | + match 'myprofile/:profile', :controller => 'profile_editor', :action => 'index', :profile => /#{Noosfero.identifier_format_in_url}/i |
102 | + match 'myprofile/:profile/:controller(/:action(/:id))', :controller => Noosfero.pattern_for_controllers_in_directory('my_profile'), :profile => /#{Noosfero.identifier_format_in_url}/i, :as => :myprofile | ||
103 | 103 | ||
104 | 104 | ||
105 | ###################################################### | 105 | ###################################################### |
@@ -127,14 +127,14 @@ Noosfero::Application.routes.draw do | @@ -127,14 +127,14 @@ Noosfero::Application.routes.draw do | ||
127 | # cache stuff - hack | 127 | # cache stuff - hack |
128 | match 'public/:action/:id', :controller => 'public' | 128 | match 'public/:action/:id', :controller => 'public' |
129 | 129 | ||
130 | - match ':profile/*page/versions', :controller => 'content_viewer', :action => 'article_versions', :profile => /#{Noosfero.identifier_format_in_url}/, :constraints => EnvironmentDomainConstraint.new | 130 | + match ':profile/*page/versions', :controller => 'content_viewer', :action => 'article_versions', :profile => /#{Noosfero.identifier_format_in_url}/i, :constraints => EnvironmentDomainConstraint.new |
131 | match '*page/versions', :controller => 'content_viewer', :action => 'article_versions' | 131 | match '*page/versions', :controller => 'content_viewer', :action => 'article_versions' |
132 | 132 | ||
133 | - match ':profile/*page/versions_diff', :controller => 'content_viewer', :action => 'versions_diff', :profile => /#{Noosfero.identifier_format_in_url}/, :constraints => EnvironmentDomainConstraint.new | 133 | + match ':profile/*page/versions_diff', :controller => 'content_viewer', :action => 'versions_diff', :profile => /#{Noosfero.identifier_format_in_url}/i, :constraints => EnvironmentDomainConstraint.new |
134 | match '*page/versions_diff', :controller => 'content_viewer', :action => 'versions_diff' | 134 | match '*page/versions_diff', :controller => 'content_viewer', :action => 'versions_diff' |
135 | 135 | ||
136 | # match requests for profiles that don't have a custom domain | 136 | # match requests for profiles that don't have a custom domain |
137 | - match ':profile(/*page)', :controller => 'content_viewer', :action => 'view_page', :profile => /#{Noosfero.identifier_format_in_url}/, :constraints => EnvironmentDomainConstraint.new | 137 | + match ':profile(/*page)', :controller => 'content_viewer', :action => 'view_page', :profile => /#{Noosfero.identifier_format_in_url}/i, :constraints => EnvironmentDomainConstraint.new |
138 | 138 | ||
139 | # match requests for content in domains hosted for profiles | 139 | # match requests for content in domains hosted for profiles |
140 | match '/(*page)', :controller => 'content_viewer', :action => 'view_page' | 140 | match '/(*page)', :controller => 'content_viewer', :action => 'view_page' |
lib/needs_profile.rb
@@ -21,7 +21,11 @@ module NeedsProfile | @@ -21,7 +21,11 @@ module NeedsProfile | ||
21 | protected | 21 | protected |
22 | 22 | ||
23 | def load_profile | 23 | def load_profile |
24 | - @profile ||= environment.profiles.find_by_identifier(params[:profile]) | 24 | + if params[:profile] |
25 | + params[:profile].downcase! | ||
26 | + @profile ||= environment.profiles.where(identifier: params[:profile]).first | ||
27 | + end | ||
28 | + | ||
25 | if @profile | 29 | if @profile |
26 | profile_hostname = @profile.hostname | 30 | profile_hostname = @profile.hostname |
27 | if profile_hostname && profile_hostname != request.host | 31 | if profile_hostname && profile_hostname != request.host |
lib/noosfero/plugin/routes.rb
@@ -19,15 +19,15 @@ Dir.glob(Rails.root.join(plugins_root, '*', 'controllers')) do |controllers_dir| | @@ -19,15 +19,15 @@ Dir.glob(Rails.root.join(plugins_root, '*', 'controllers')) do |controllers_dir| | ||
19 | controllers.each do |controller| | 19 | controllers.each do |controller| |
20 | controller_name = controller.gsub("#{plugin_name}_plugin_",'') | 20 | controller_name = controller.gsub("#{plugin_name}_plugin_",'') |
21 | if %w[profile myprofile].include?(folder.to_s) | 21 | if %w[profile myprofile].include?(folder.to_s) |
22 | - match "#{prefixes_by_folder[folder]}/#{plugin_name}/#{controller_name}(/:action(/:id))", :controller => controller, :profile => /#{Noosfero.identifier_format}/ | 22 | + match "#{prefixes_by_folder[folder]}/#{plugin_name}/#{controller_name}(/:action(/:id))", controller: controller, profile: /#{Noosfero.identifier_format_in_url}/i |
23 | else | 23 | else |
24 | - match "#{prefixes_by_folder[folder]}/#{plugin_name}/#{controller_name}(/:action(/:id))", :controller => controller | 24 | + match "#{prefixes_by_folder[folder]}/#{plugin_name}/#{controller_name}(/:action(/:id))", controller: controller |
25 | end | 25 | end |
26 | end | 26 | end |
27 | end | 27 | end |
28 | 28 | ||
29 | - match 'plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin' | ||
30 | - match 'profile/:profile/plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin_profile', :profile => /#{Noosfero.identifier_format}/ | ||
31 | - match 'myprofile/:profile/plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin_myprofile', :profile => /#{Noosfero.identifier_format}/ | ||
32 | - match 'admin/plugin/' + plugin_name + '(/:action(/:id))', :controller => plugin_name + '_plugin_admin' | 29 | + match 'plugin/' + plugin_name + '(/:action(/:id))', controller: plugin_name + '_plugin' |
30 | + match 'profile/:profile/plugin/' + plugin_name + '(/:action(/:id))', controller: plugin_name + '_plugin_profile', profile: /#{Noosfero.identifier_format_in_url}/i | ||
31 | + match 'myprofile/:profile/plugin/' + plugin_name + '(/:action(/:id))', controller: plugin_name + '_plugin_myprofile', profile: /#{Noosfero.identifier_format_in_url}/i | ||
32 | + match 'admin/plugin/' + plugin_name + '(/:action(/:id))', controller: plugin_name + '_plugin_admin' | ||
33 | end | 33 | end |