Проблема безопасности с миграцией при использовании гема декларативной авторизации

Я пытаюсь выполнить миграцию (просто добавляя столбец и фактически инициализируя его), но декларативная авторизация (gem) запрещает мне доступ, потому что она использует «гостевого» пользователя.

Это сообщение об ошибке, которое я получил:

No matching rules found for update for #<Authorization::AnonymousUser:0xaf100b8 @role_symbols=[:guest]>

Конечно, пользователь «гость» вообще не имеет доступа, определенного в config/authorization.rb. Более того, я применил безопасность модели с опцией «using_access_control» декларативной авторизации.

Как я могу запустить миграцию от имени пользователя декларативной авторизации «admin»?

Я уже сталкивался с такой проблемой в прошлом и нашел решение в ответах stackoferflow, но я не могу найти его снова.

Спасибо за любую помощь

=== ОБНОВЛЕНИЕ ===

Я нашел возможное решение, поместив свой блок миграции в блок метода «без контроля_доступа» из гем декларативной авторизации :

class AddDateToProjMesure < ActiveRecord::Migration

  def change
    add_column :proj_mesures, :date_reference, :date

    Authorization::Maintenance::without_access_control do
      ProjMesure.all.each do |proj_mesure|
        proj_mesure.update_attributes! :date_reference => Time.zone.today
      end # ProjMesure.all.each
    end # Authorization::Maintenance::without_access_control

  end
end

но я получил следующую ошибку:

неинициализированная константа Authorization::Maintenance/var/www-opf/opf/db/migrate/20130607103809_add_date_to_proj_mesure.rb:41:in `change'

Любая идея, почему? и если мне нужно использовать оператор require, на что он должен указывать? ( папка vendor/plugins/ пуста !!!! )


person Douglas    schedule 07.06.2013    source источник


Ответы (1)


В документации сказано добавить следующее, но это неправильно, так как папка поставщика Rails 3 больше не существует в rails 3 и 4:

require "vendor/plugins/declarative_authorization/lib/maintenance"

Я задал вопрос в группе Google, и мне дали правильный линия :

require 'declarative_authorization/maintenance'

Меня устраивает !

person Douglas    schedule 19.06.2013