Skip to content

Commit f5d6698

Browse files
deivid-rodriguezjosepjaume
authored andcommitted
Fix class reloading issues (decidim#1749)
* Simplify "super" chain in `NeedsAuthorization` I think it's better that each module including `NeedsAuthorization` specifies the base ability class, instead of providing a default and then overriding it. * Explicit base ApplicationController class Otherwise we can get into code reloading issues. Better be explicit.
1 parent 8c05fa4 commit f5d6698

File tree

9 files changed

+23
-9
lines changed

9 files changed

+23
-9
lines changed

decidim-admin/app/controllers/decidim/admin/exports_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
module Decidim
44
module Admin
55
# This controller allows admins to manage proposals in a participatory process.
6-
class ExportsController < ApplicationController
6+
class ExportsController < Decidim::Admin::ApplicationController
77
include Concerns::ParticipatoryProcessAdmin
88
include Decidim::FeaturePathHelper
99

decidim-admin/app/controllers/decidim/admin/newsletters_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module Decidim
44
module Admin
55
# Controller that allows managing newsletters.
66
#
7-
class NewslettersController < ApplicationController
7+
class NewslettersController < Decidim::Admin::ApplicationController
88
def index
99
authorize! :index, Newsletter
1010
@newsletters = collection.order(Newsletter.arel_table[:created_at].desc)

decidim-admin/app/controllers/decidim/admin/user_groups_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module Decidim
44
module Admin
55
# Controller that allows managing user groups at the admin panel.
66
#
7-
class UserGroupsController < ApplicationController
7+
class UserGroupsController < Decidim::Admin::ApplicationController
88
layout "decidim/admin/users"
99

1010
def index

decidim-api/app/controllers/decidim/api/application_controller.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ class ApplicationController < ::DecidimController
88
include NeedsOrganization
99
include NeedsAuthorization
1010
include ImpersonateUsers
11+
12+
# Overwrites `cancancan`'s method to point to the correct ability class,
13+
# since the gem expects the ability class to be in the root namespace.
14+
def current_ability_klass
15+
Decidim::Abilities::BaseAbility
16+
end
1117
end
1218
end
1319
end

decidim-core/app/controllers/concerns/decidim/devise_controllers.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,11 @@ module DeviseControllers
2626

2727
layout "layouts/decidim/application"
2828
end
29+
30+
# Overwrites `cancancan`'s method to point to the correct ability class,
31+
# since the gem expects the ability class to be in the root namespace.
32+
def current_ability_klass
33+
Decidim::Abilities::BaseAbility
34+
end
2935
end
3036
end

decidim-core/app/controllers/concerns/decidim/needs_authorization.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@ def current_ability
2121
@current_ability ||= current_ability_klass.new(current_user, ability_context)
2222
end
2323

24-
def current_ability_klass
25-
Decidim::Abilities::BaseAbility
26-
end
27-
2824
def ability_context
2925
{
3026
current_settings: try(:current_settings),

decidim-core/app/controllers/decidim/application_controller.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,11 @@ def user_not_authorized_path
4646
def add_vary_header
4747
response.headers["Vary"] = "Accept"
4848
end
49+
50+
# Overwrites `cancancan`'s method to point to the correct ability class,
51+
# since the gem expects the ability class to be in the root namespace.
52+
def current_ability_klass
53+
Decidim::Abilities::BaseAbility
54+
end
4955
end
5056
end

decidim-core/app/controllers/decidim/errors_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

33
module Decidim
4-
class ErrorsController < ApplicationController
4+
class ErrorsController < Decidim::ApplicationController
55
skip_authorization_check
66

77
def not_found

decidim-proposals/spec/controllers/concerns/orderable_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
module Decidim
66
module Proposals
7-
class OrderableFakeController < ApplicationController
7+
class OrderableFakeController < Decidim::ApplicationController
88
include Orderable
99
end
1010

0 commit comments

Comments
 (0)