in misc

Spree Commerce, custom admin routes

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?!?