Sha256: 1a075a43c760bd4744acaf522d4ae591233790a355b167fc384c6de7712bdcfb
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
# frozen_string_literal: true module Decidim module Templates module Admin # this is here due a bug in Decidim 0.28 when they introduced proposal answer templates # they didn't take into account that valuators can answer proposals # This can be removed after https://github.com/decidim/decidim/pull/12765 is merge & backported class Permissions < Decidim::DefaultPermissions def permissions return permission_action if permission_action.scope != :admin return permission_action unless user return permission_action if context[:current_organization] != user.organization if user_has_a_role? && (permission_action.subject == :template && permission_action.action == :read) allow! else return permission_action unless user.admin? case permission_action.subject when :template allow! if [:read, :create, :update, :destroy, :copy].include? permission_action.action when :templates allow! if permission_action.action == :index when :questionnaire allow! end end permission_action end private def participatory_space @participatory_space ||= context[:proposal].try(:participatory_space) end def user_roles @user_roles ||= participatory_space.try(:user_roles) end def user_has_a_role? return unless user_roles user_roles.exists?(user:) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
decidim-reporting_proposals-0.6.0 | app/permissions/decidim/templates/admin/permissions.rb |