Проблема безопасности с миграцией при использовании декларативного гема авторизации
Я пытаюсь запустить миграцию (просто добавив столбец и фактически инициализировав его), но декларативная авторизация (gem) лишает меня доступа, потому что она использует "гостевого" пользователя.
Это сообщение об ошибке, которое я получил:
No matching rules found for update for #<Authorization::AnonymousUser:0xaf100b8 @role_symbols=[:guest]>
Конечно, "гостевой" пользователь вообще не имеет доступа, определенного в config / authorization.rb. Более того, я обеспечил безопасность модели с опцией "using_access_control" декларативной авторизации.
Как я могу запустить свою миграцию как пользователь "admin" с декларативной авторизацией?
Я уже сталкивался с такой проблемой в прошлом и нашел решение в ответах stackoferflow, но я не могу найти его снова.
Спасибо за любую помощь
=== ОБНОВЛЕНИЕ ===
Я нашел возможное решение, поместив свой блок миграции в блок метода "less_access_control "из декларативного гема авторизации:
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: в `change'
есть идеи почему? и если мне нужно использовать оператор require, на что он должен указывать? ( vendor/plugins/ папка пуста!!!!)
1 ответ
В документации сказано добавить следующее, но это неправильно, поскольку вендорская папка Rails 3 больше не существует в рельсах 3 и 4:
require "vendor/plugins/declarative_authorization/lib/maintenance"
Я спросил в группе Google, и они дают мне правильную строку:
require 'declarative_authorization/maintenance'
Меня устраивает!