Domanda

Sto cercando di costruire un modulo Guestbook all'interno di un sito di rotaie usando il quadro di alchimio CMS. Non sembra essere molto in termini di documentazione per il modulo edificio con l'alchimia, quindi sto andando fuori da Questa pagina .

Ho creato due controller, che gli amministratori utilizzeranno chiamato GuestBook_Controller.RB e ha inserito questo sotto app / controller / admin

module Admin
  class GuestbookController < Alchemy::Admin::ResourcesController
    def index
      "index"
    end
  end
end
.

E un altro per gli ospiti per accedere sotto app / controller / guestbook_controller.rb

class GuestbookController < ActionController::Base
  def index
    "index"
  end
end
.

La mia intenzione è che i post dei libri degli ospiti verranno visualizzati sotto una delle pagine già all'interno dell'Alchemy e un modulo verrà visualizzato anche su questa pagina.

Il modello GuestBook lo è questo:

class GuestbookEntry < ActiveRecord::Base
  attr_accessible :location, :message, :name
end
.

Il mio file di percorsi sembra il seguente:

resources :guestbook

namespace :admin do
  resources :guestbook
end

mount Alchemy::Engine => '/'
.

E ho un file chiamato Authorization_rules.rb in Config che sembra: Autorizzazione DO

  role :admin do
    has_permission_on :guestbook, :to => [:manage]
  end

end
.

Il primo problema che sto incontrando è che andare al percorso / admin / guestbook mi dà l'errore "Non sei autorizzato", ma il file delle regole di autorizzazione dovrebbe essere chiamato dal mio Iitalizer, quindi perché sto ottenendo Questo errore?

# Registering guestbook module in Alchemy CMS
Alchemy::Modules.register_module(YAML.load_file(File.join(File.dirname(__FILE__), '../..', 'config/guestbook_module.yml')))

# Loading authorization rules and register them to auth engine instance
Alchemy::AuthEngine.get_instance.load(File.join(File.dirname(__FILE__), '../..', 'config/authorization_rules.rb'))
.

È stato utile?

Soluzione

Il problema con l'autorizzazione è facile. Hai solo bisogno di scrivere:

has_permission_on :admin_guestbook, :to => [:manage]
.

Un'altra cosa che ho notato: il tuo frontend guestbookcontroller dovrebbe ereditare dall'alchimia :: Basecontroller.

E dovresti assicurarti che la tua pagina che desideri rendering delle voci del Guestbook, non deve essere memorizzata nella cache dall'alchimia.Puoi farlo utilizzando l'opzione cache: false nella pagina_Layouts.yml per il layout della pagina.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top