At the moment Spree uses a hardcoded /admin path for accessing the backend.
I really, really would like if this was configurable.
The solution could be pretty simple:
file: /lib/spree_backend.rb (spree/backend/lib/spree_backend.rb)
module Spree::Backend
mattr_accessor :route_admin_path
@@route_admin_path = "/admin"
def self.config
yield self
end
end
Next in spree /config/routes.rb (spree/backend/config/routes.rb)
Spree::Core::Engine.add_routes do
namespace :admin, path: Spree::Backend.route_admin_path do
#.. everything remains the same, except this last line:
get Spree::Backend.route_admin_path, to: 'admin/root#index', as: :admin
end
end
And ready, you can now configure your admin path, via an initializer of your application
Spree::Backend.config do |config|
config.route_admin_path = '/super-secret-name'
end
I know it's security by obscurity, but it makes building automated attacks much more difficult.
Which is very important if there are known security issues.
Warning: Plugins are not converted and use the default /admin path. But these plugins can be changed easily by adding the path: Spree::Backend.route_admin_path option!
Please tell my what do you think of this solution?!?