diff options
| author | Robert | 2017-11-29 18:17:38 +0100 | 
|---|---|---|
| committer | Robert | 2017-11-29 18:17:38 +0100 | 
| commit | 42b6bcdf4b6a378d53e377e9a350b5f0d66a3202 (patch) | |
| tree | 07617ae120431104edf3f7f5e0b1b90607b754d6 | |
| parent | e0a3661e0946f634c7733a5ab932e7f695597ce1 (diff) | |
| download | chouette-core-4824-create_line_referentials.tar.bz2 | |
Fixes: #4824@0.5h; Implemented Policies4824-create_line_referentials
| -rw-r--r-- | app/policies/company_policy.rb | 20 | ||||
| -rw-r--r-- | app/policies/line_policy.rb | 12 | ||||
| -rw-r--r-- | app/policies/network_policy.rb | 11 | ||||
| -rw-r--r-- | app/policies/stop_area_policy.rb | 12 | ||||
| -rw-r--r-- | spec/fixtures/zip/.gitkeep | 0 | ||||
| -rw-r--r-- | spec/policies/access_link_policy_spec.rb | 10 | ||||
| -rw-r--r-- | spec/policies/company_policy_spec.rb | 10 | ||||
| -rw-r--r-- | spec/policies/line_policy_spec.rb | 10 | ||||
| -rw-r--r-- | spec/policies/network_policy_spec.rb | 10 | ||||
| -rw-r--r-- | spec/policies/stop_area_policy_spec.rb | 10 | 
10 files changed, 76 insertions, 29 deletions
| diff --git a/app/policies/company_policy.rb b/app/policies/company_policy.rb index 45386aba4..eb2b868d9 100644 --- a/app/policies/company_policy.rb +++ b/app/policies/company_policy.rb @@ -1,7 +1,19 @@  class CompanyPolicy < ApplicationPolicy -    class Scope < Scope -      def resolve -        scope -      end +  class Scope < Scope +    def resolve +      scope      end    end + +  def create? +    !archived? && organisation_match? && user.has_permission?('companies.create') +  end + +  def update? +    !archived? && organisation_match? && user.has_permission?('companies.update') +  end + +  def destroy? +    !archived? && organisation_match? && user.has_permission?('companies.destroy') +  end +end diff --git a/app/policies/line_policy.rb b/app/policies/line_policy.rb index acb0d79e7..a39beb788 100644 --- a/app/policies/line_policy.rb +++ b/app/policies/line_policy.rb @@ -6,6 +6,18 @@ class LinePolicy < ApplicationPolicy      end    end +  def create? +    !archived? && organisation_match? && user.has_permission?('lines.create') +  end + +  def update? +    !archived? && organisation_match? && user.has_permission?('lines.update') +  end + +  def destroy? +    !archived? && organisation_match? && user.has_permission?('lines.destroy') +  end +    def create_footnote?      !archived? && organisation_match? && user.has_permission?('footnotes.create')    end diff --git a/app/policies/network_policy.rb b/app/policies/network_policy.rb index 9f86451a5..7adc48589 100644 --- a/app/policies/network_policy.rb +++ b/app/policies/network_policy.rb @@ -4,4 +4,15 @@ class NetworkPolicy < ApplicationPolicy        scope      end    end +  def create? +    !archived? && organisation_match? && user.has_permission?('networks.create') +  end + +  def update? +    !archived? && organisation_match? && user.has_permission?('networks.update') +  end + +  def destroy? +    !archived? && organisation_match? && user.has_permission?('networks.destroy') +  end  end diff --git a/app/policies/stop_area_policy.rb b/app/policies/stop_area_policy.rb index de8ecda8d..6f147efef 100644 --- a/app/policies/stop_area_policy.rb +++ b/app/policies/stop_area_policy.rb @@ -4,4 +4,16 @@ class StopAreaPolicy < ApplicationPolicy        scope      end    end + +  def create? +    !archived? && organisation_match? && user.has_permission?('stop_areas.create') +  end + +  def update? +    !archived? && organisation_match? && user.has_permission?('stop_areas.update') +  end + +  def destroy? +    !archived? && organisation_match? && user.has_permission?('stop_areas.destroy') +  end  end diff --git a/spec/fixtures/zip/.gitkeep b/spec/fixtures/zip/.gitkeep new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/spec/fixtures/zip/.gitkeep diff --git a/spec/policies/access_link_policy_spec.rb b/spec/policies/access_link_policy_spec.rb index 6194ae55c..65b7bbee9 100644 --- a/spec/policies/access_link_policy_spec.rb +++ b/spec/policies/access_link_policy_spec.rb @@ -3,18 +3,18 @@ RSpec.describe AccessLinkPolicy, type: :policy do    let( :record ){ build_stubbed :access_link }    permissions :create? do -      it_behaves_like 'permitted policy and same organisation', "access_links.create", archived: true +    it_behaves_like 'permitted policy and same organisation', "access_links.create", archived: true    end    permissions :destroy? do -      it_behaves_like 'permitted policy and same organisation', "access_links.destroy", archived: true +    it_behaves_like 'permitted policy and same organisation', "access_links.destroy", archived: true    end    permissions :edit? do -      it_behaves_like 'permitted policy and same organisation', "access_links.update", archived: true +    it_behaves_like 'permitted policy and same organisation', "access_links.update", archived: true    end    permissions :new? do -      it_behaves_like 'permitted policy and same organisation', "access_links.create", archived: true +    it_behaves_like 'permitted policy and same organisation', "access_links.create", archived: true    end    permissions :update? do -      it_behaves_like 'permitted policy and same organisation', "access_links.update", archived: true +    it_behaves_like 'permitted policy and same organisation', "access_links.update", archived: true    end  end diff --git a/spec/policies/company_policy_spec.rb b/spec/policies/company_policy_spec.rb index 2d249a2be..152b61199 100644 --- a/spec/policies/company_policy_spec.rb +++ b/spec/policies/company_policy_spec.rb @@ -24,19 +24,19 @@ RSpec.describe CompanyPolicy, type: :policy do    context 'Destructive actions →' do      permissions :create? do -      it_behaves_like 'always forbidden', 'companies.create', archived: true +      it_behaves_like 'permitted policy and same organisation', 'companies.create', archived: true      end      permissions :destroy? do -      it_behaves_like 'always forbidden', 'companies.destroy', archived: true +      it_behaves_like 'permitted policy and same organisation', 'companies.destroy', archived: true      end      permissions :edit? do -      it_behaves_like 'always forbidden', 'companies.update', archived: true +      it_behaves_like 'permitted policy and same organisation', 'companies.update', archived: true      end      permissions :new? do -      it_behaves_like 'always forbidden', 'companies.create', archived: true +      it_behaves_like 'permitted policy and same organisation', 'companies.create', archived: true      end      permissions :update? do -      it_behaves_like 'always forbidden', 'companies.update', archived: true +      it_behaves_like 'permitted policy and same organisation', 'companies.update', archived: true      end    end  end diff --git a/spec/policies/line_policy_spec.rb b/spec/policies/line_policy_spec.rb index 334073506..da99d1726 100644 --- a/spec/policies/line_policy_spec.rb +++ b/spec/policies/line_policy_spec.rb @@ -24,19 +24,19 @@ RSpec.describe LinePolicy, type: :policy do    context 'Destructive actions →' do      permissions :create? do -      it_behaves_like 'always forbidden', 'lines.create', archived: true +      it_behaves_like 'permitted policy and same organisation', 'lines.create', archived: true      end      permissions :destroy? do -      it_behaves_like 'always forbidden', 'lines.destroy', archived: true +      it_behaves_like 'permitted policy and same organisation', 'lines.destroy', archived: true      end      permissions :edit? do -      it_behaves_like 'always forbidden', 'lines.update', archived: true +      it_behaves_like 'permitted policy and same organisation', 'lines.update', archived: true      end      permissions :new? do -      it_behaves_like 'always forbidden', 'lines.create', archived: true +      it_behaves_like 'permitted policy and same organisation', 'lines.create', archived: true      end      permissions :update? do -      it_behaves_like 'always forbidden', 'lines.update', archived: true +      it_behaves_like 'permitted policy and same organisation', 'lines.update', archived: true      end    end diff --git a/spec/policies/network_policy_spec.rb b/spec/policies/network_policy_spec.rb index c09546c22..aeffdd0d2 100644 --- a/spec/policies/network_policy_spec.rb +++ b/spec/policies/network_policy_spec.rb @@ -24,19 +24,19 @@ RSpec.describe Chouette::NetworkPolicy, type: :policy do    context 'Destructive actions →' do      permissions :create? do -      it_behaves_like 'always forbidden', 'networks.create', archived: true +      it_behaves_like 'permitted policy and same organisation', 'networks.create', archived: true      end      permissions :destroy? do -      it_behaves_like 'always forbidden', 'networks.destroy', archived: true +      it_behaves_like 'permitted policy and same organisation', 'networks.destroy', archived: true      end      permissions :edit? do -      it_behaves_like 'always forbidden', 'networks.update', archived: true +      it_behaves_like 'permitted policy and same organisation', 'networks.update', archived: true      end      permissions :new? do -      it_behaves_like 'always forbidden', 'networks.create', archived: true +      it_behaves_like 'permitted policy and same organisation', 'networks.create', archived: true      end      permissions :update? do -      it_behaves_like 'always forbidden', 'networks.update', archived: true +      it_behaves_like 'permitted policy and same organisation', 'networks.update', archived: true      end    end  end diff --git a/spec/policies/stop_area_policy_spec.rb b/spec/policies/stop_area_policy_spec.rb index 8fe59c8e3..45a938564 100644 --- a/spec/policies/stop_area_policy_spec.rb +++ b/spec/policies/stop_area_policy_spec.rb @@ -24,19 +24,19 @@ RSpec.describe StopAreaPolicy, type: :policy do    context 'Destructive actions →' do      permissions :create? do -      it_behaves_like 'always forbidden', 'stop_areas.create', archived: true +      it_behaves_like 'permitted policy and same organisation', 'stop_areas.create', archived: true      end      permissions :destroy? do -      it_behaves_like 'always forbidden', 'stop_areas.destroy', archived: true +      it_behaves_like 'permitted policy and same organisation', 'stop_areas.destroy', archived: true      end      permissions :edit? do -      it_behaves_like 'always forbidden', 'stop_areas.update', archived: true +      it_behaves_like 'permitted policy and same organisation', 'stop_areas.update', archived: true      end      permissions :new? do -      it_behaves_like 'always forbidden', 'stop_areas.create', archived: true +      it_behaves_like 'permitted policy and same organisation', 'stop_areas.create', archived: true      end      permissions :update? do -      it_behaves_like 'always forbidden', 'stop_areas.update', archived: true +      it_behaves_like 'permitted policy and same organisation', 'stop_areas.update', archived: true      end    end  end | 
