Sha256: 8ddaf03600c907a0b7d82f0683d52f7bc4b68038b0e6b46c7af8901f9a65bad6

Contents?: true

Size: 1.62 KB

Versions: 4

Compression:

Stored size: 1.62 KB

Contents

require_relative "../app/constraints/panda_cms/admin_constraint"

PandaCms::Engine.routes.draw do
  constraints PandaCms::AdminConstraint.new { |user| user.present? } do
    namespace PandaCms.admin_path_symbol.to_sym, as: :admin, module: :admin do
      resources :files
      resources :forms, only: %i[index show]
      resources :menus
      resources :pages do
        resources :block_contents, only: %i[update]
      end
      resources :posts

      get "settings", to: "settings#index"
      namespace :settings, as: :settings do
        get "bulk_editor", to: "bulk_editor#new"
        post "bulk_editor", to: "bulk_editor#create"
      end
    end

    get PandaCms.admin_path, to: "admin/dashboard#show", as: :admin_dashboard
  end

  ### PUBLIC ROUTES ###

  # Authentication routes
  get PandaCms.admin_path, to: "admin/sessions#new", as: :admin_login
  # Get and post options here are for OmniAuth coming back in, not going out
  match "#{PandaCms.admin_path}/auth/:provider/callback", to: "admin/sessions#create", as: :admin_login_callback, via: %i[get post]
  match "#{PandaCms.admin_path}/auth/failure", to: "admin/sessions#failure", as: :admin_login_failure, via: %i[get post]
  # OmniAuth additionally adds a GET route for "#{PandaCms.admin_path}/auth/:provider" but doesn't name it
  delete PandaCms.admin_path, to: "admin/sessions#destroy", as: :admin_logout

  if PandaCms.posts
    # TODO: Allow multiple types of post in future
    get PandaCms.posts[:prefix], to: "posts#index", as: :posts
    get "#{PandaCms.posts[:prefix]}/:slug", to: "posts#show", as: :post
  end

  ### APPENDED ROUTES ###

  # See lib/panda_cms/engine.rb
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
panda_cms-0.3.15 config/routes.rb
panda_cms-0.3.14 config/routes.rb
panda_cms-0.3.13 config/routes.rb
panda_cms-0.3.12 config/routes.rb