declarative_authorization Gem 无法处理 JSON/XML 请求
declarative_authorization Gem not working on JSON/XML requests
对 Rails 有点陌生。我目前使用 rails 4.1.8 和 declarative_authorization gem。当我从标准浏览器调用我的受保护 URL 之一时,我得到了我编入系统的预期 'not authorized' 错误。如果我从 Postman 调用相同的 url,我会得到我的数据。
不知何故 Rails 似乎忽略了 declarative_authorization,或者它无法处理任何将 header 设置为其他任何设置然后接受 text/html .
我的代码如下:
样品控制器。我正在使用 filter_access_to :all
class ShiftsController < ApplicationController
protect_from_forgery with: :null_session
filter_access_to :all
def index
qrtStr = 'shift_date between :from and :end'
if params.has_key?(:from)
parm = {:from => params[:from]}
else
parm = {:from => (Time.now.midnight - 30.day)}
end
在authorization_rules.rb中:
authorization do
role :superadmin do
has_omnipotence
end
role :admin do
end
role :guest do
has_permission_on :user_sessions, :to => [:new, :create]
end
role :calendarUser do
includes :baseUser
has_permission_on :shifts, :to => [:index, :show]
has_permission_on :calendar, :to => [:index]
end
routes.rb:
resources :shifts, except: [:new, :edit] do
patch 'submit', on: :member
patch 'acquire', on: :member
end
我错过了什么??或者 declarative_authorization 不能与 rails 4.1.8 一起正常工作??
非常感谢
他们的 .travis.yml
表明他们只针对 Ruby 1.8.7 和 1.9.3 进行测试,如果您使用的是较新的 ruby 那么您就在未知之地。你最好找一个维护得更积极的 gem.
对 Rails 有点陌生。我目前使用 rails 4.1.8 和 declarative_authorization gem。当我从标准浏览器调用我的受保护 URL 之一时,我得到了我编入系统的预期 'not authorized' 错误。如果我从 Postman 调用相同的 url,我会得到我的数据。
不知何故 Rails 似乎忽略了 declarative_authorization,或者它无法处理任何将 header 设置为其他任何设置然后接受 text/html .
我的代码如下:
样品控制器。我正在使用 filter_access_to :all
class ShiftsController < ApplicationController
protect_from_forgery with: :null_session
filter_access_to :all
def index
qrtStr = 'shift_date between :from and :end'
if params.has_key?(:from)
parm = {:from => params[:from]}
else
parm = {:from => (Time.now.midnight - 30.day)}
end
在authorization_rules.rb中:
authorization do
role :superadmin do
has_omnipotence
end
role :admin do
end
role :guest do
has_permission_on :user_sessions, :to => [:new, :create]
end
role :calendarUser do
includes :baseUser
has_permission_on :shifts, :to => [:index, :show]
has_permission_on :calendar, :to => [:index]
end
routes.rb:
resources :shifts, except: [:new, :edit] do
patch 'submit', on: :member
patch 'acquire', on: :member
end
我错过了什么??或者 declarative_authorization 不能与 rails 4.1.8 一起正常工作??
非常感谢
他们的 .travis.yml
表明他们只针对 Ruby 1.8.7 和 1.9.3 进行测试,如果您使用的是较新的 ruby 那么您就在未知之地。你最好找一个维护得更积极的 gem.