Fix enterprise user being denied access to admin when spree dash configured (as on production)

This commit is contained in:
Rohan Mitchell
2016-11-24 13:35:49 +11:00
parent d8ce0e7d58
commit b7e9ffc9da
2 changed files with 43 additions and 1 deletions

View File

@@ -57,6 +57,7 @@ class AbilityDecorator
def add_group_management_abilities(user)
can [:admin, :index], :overview
can [:admin, :sync], :analytic
can [:admin, :index], EnterpriseGroup
can [:read, :edit, :update], EnterpriseGroup do |group|
user.owned_groups.include? group
@@ -69,6 +70,7 @@ class AbilityDecorator
can [:create, :search], nil
can [:admin, :index], :overview
can [:admin, :sync], :analytic
can [:admin, :index, :read, :create, :edit, :update_positions, :destroy], ProducerProperty

View File

@@ -110,5 +110,45 @@ feature %q{
end
end
end
context "with the spree dash configured" do
let(:d1) { create(:distributor_enterprise) }
before do
stub_jirafe
@enterprise_user.enterprise_roles.build(enterprise: d1).save
end
around do |example|
with_dash_configured { example.run }
end
it "has permission to sync analytics" do
visit '/admin'
expect(page).to have_content d1.name
end
end
end
end
private
def stub_jirafe
stub_request(:post, "https://api.jirafe.com/v1/applications/abc123/resources?token=").
to_return(:status => 200, :body => "", :headers => {})
end
def with_dash_configured(&block)
Spree::Dash::Config.preferred_app_id = 'abc123'
Spree::Dash::Config.preferred_site_id = 'abc123'
Spree::Dash::Config.preferred_token = 'abc123'
expect(Spree::Dash::Config.configured?).to be true
block.call
ensure
Spree::Dash::Config.preferred_app_id = nil
Spree::Dash::Config.preferred_site_id = nil
Spree::Dash::Config.preferred_token = nil
expect(Spree::Dash::Config.configured?).to be false
end
end