app/permissions/decidim/initiatives/admin/permissions.rb in decidim-initiatives-0.26.10 vs app/permissions/decidim/initiatives/admin/permissions.rb in decidim-initiatives-0.27.0.rc1
- old
+ new
@@ -17,10 +17,11 @@
if !user.admin? && initiative&.has_authorship?(user)
initiative_committee_action?
initiative_user_action?
attachment_action?
+ initiatives_settings_action?
return permission_action
end
if !user.admin? && has_initiatives?
@@ -34,10 +35,11 @@
initiative_type_action?
initiative_type_scope_action?
initiative_committee_action?
initiative_admin_user_action?
initiative_export_action?
+ initiatives_settings_action?
moderator_action?
allow! if permission_action.subject == :attachment
permission_action
end
@@ -132,16 +134,14 @@
return unless permission_action.subject == :initiative
case permission_action.action
when :read
toggle_allow(Decidim::Initiatives.print_enabled)
- when :publish
+ when :publish, :discard
toggle_allow(initiative.validating?)
when :unpublish
toggle_allow(initiative.published?)
- when :discard
- toggle_allow(initiative.validating?)
when :export_pdf_signatures
toggle_allow(initiative.published? || initiative.accepted? || initiative.rejected?)
when :export_votes
toggle_allow(initiative.offline_signature_type? || initiative.any_signature_type?)
when :accept
@@ -161,10 +161,16 @@
end
end
def initiative_export_action?
allow! if permission_action.subject == :initiatives && permission_action.action == :export
- allow! if permission_action.action == :export && permission_action.subject == :component_data
+ end
+
+ def initiatives_settings_action?
+ return unless permission_action.action == :update &&
+ permission_action.subject == :initiatives_settings
+
+ toggle_allow(user.admin?)
end
def moderator_action?
return unless permission_action.subject == :moderation