diff options
| author | Luc Donnet | 2018-02-27 14:31:54 +0100 | 
|---|---|---|
| committer | GitHub | 2018-02-27 14:31:54 +0100 | 
| commit | 7faeee11f427c7d0fd9be18aae5b7f60ff3981a0 (patch) | |
| tree | f619876c9816635835533d4deb9724b4761f710d | |
| parent | d2c4ef4ae82f156cabf467814d76c2785a580e22 (diff) | |
| parent | 3d61b582389e0e1db73dc698d4c20f50153ea3fc (diff) | |
| download | chouette-core-7faeee11f427c7d0fd9be18aae5b7f60ff3981a0.tar.bz2 | |
Merge pull request #340 from af83/5950_allow_user_to_see_ccset_from_other_organisation
Refs #5950 Fix 404 error when user wants to see CCSet from other orga…
| -rw-r--r-- | app/controllers/compliance_control_sets_controller.rb | 18 | ||||
| -rw-r--r-- | app/policies/application_policy.rb | 1 | ||||
| -rw-r--r-- | app/policies/compliance_control_set_policy.rb | 4 | 
3 files changed, 15 insertions, 8 deletions
| diff --git a/app/controllers/compliance_control_sets_controller.rb b/app/controllers/compliance_control_sets_controller.rb index 8f9251155..6461b38c8 100644 --- a/app/controllers/compliance_control_sets_controller.rb +++ b/app/controllers/compliance_control_sets_controller.rb @@ -36,11 +36,15 @@ class ComplianceControlSetsController < ChouetteController    private    def collection -    scope = self.ransack_period_range(scope: ComplianceControlSet.all, error_message: t('imports.filters.error_period_filter'), query: :where_updated_at_between) -    @q_for_form = scope.ransack(params[:q]) -    compliance_control_sets = @q_for_form.result -    compliance_control_sets = joins_with_associated_objects(compliance_control_sets).order(sort_column + ' ' + sort_direction) if sort_column && sort_direction -    @compliance_control_sets = compliance_control_sets.paginate(page: params[:page], per_page: 30) +    @compliance_control_sets ||= begin +      scope = end_of_association_chain.all +      scope = self.ransack_period_range(scope: scope, error_message: t('imports.filters.error_period_filter'), query: :where_updated_at_between) +      @q_for_form = scope.ransack(params[:q]) +      compliance_control_sets = @q_for_form.result +      compliance_control_sets = joins_with_associated_objects(compliance_control_sets).order(sort_column + ' ' + sort_direction) if sort_column && sort_direction +      compliance_control_sets = compliance_control_sets.paginate(page: params[:page], per_page: 30) +    end +    end    def decorate_compliance_control_sets(compliance_control_sets) @@ -82,9 +86,9 @@ class ComplianceControlSetsController < ChouetteController      case params[:sort]        when 'owner_jdc'          collection.joins("LEFT JOIN organisations ON compliance_control_sets.organisation_id = organisations.id") -      when 'control_numbers'  +      when 'control_numbers'          collection.joins("LEFT JOIN compliance_controls ON compliance_controls.compliance_control_set_id = compliance_control_sets.id").group(:id) -      else  +      else          collection      end    end diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index c44937c9e..33d88660c 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -95,7 +95,6 @@ class ApplicationPolicy      referential.try(:organisation_id) || record.try(:organisation_id)    end -    #    #  Helpers    #  ------- diff --git a/app/policies/compliance_control_set_policy.rb b/app/policies/compliance_control_set_policy.rb index 011f6c0c7..55507ffd9 100644 --- a/app/policies/compliance_control_set_policy.rb +++ b/app/policies/compliance_control_set_policy.rb @@ -5,6 +5,10 @@ class ComplianceControlSetPolicy < ApplicationPolicy      end    end +  def show? +    organisation_match? +  end +    def destroy?      user.has_permission?('compliance_control_sets.destroy')    end | 
